timprove data handling in postprocessing module - slidergrid - grid of elastic sliders on a frictional surface
(HTM) git clone git://src.adamsgaard.dk/slidergrid
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit 067dee70d100c7598d44a8a595e50a32f90c8578
(DIR) parent c75d7fcd51c3d68c8063daf7493815f71331bb39
(HTM) Author: Anders Damsgaard <anders.damsgaard@geo.au.dk>
Date: Tue, 5 Apr 2016 12:35:23 -0700
improve data handling in postprocessing module
Diffstat:
M postprocessing.py | 40 +++++++++++++++++++++----------
1 file changed, 27 insertions(+), 13 deletions(-)
---
(DIR) diff --git a/postprocessing.py b/postprocessing.py
t@@ -1,7 +1,6 @@
#!/usr/bin/env python
import sys
import getopt
-import os
import csv
import numpy as np
import matplotlib.pyplot as plt
t@@ -44,6 +43,7 @@ class slidergrid:
for raw in reader:
self.version = float(raw[0])
# self.id = raw[1]
+ self.file_number = extract_file_number(filename)
self.N = int(raw[2])
self.time = float(raw[3])
self.time_end = float(raw[4])
t@@ -52,21 +52,30 @@ class slidergrid:
self.iteration = int(raw[7])
self.bond_length_limit = float(raw[8])
- def plot_sliders(self):
+ def plot_sliders(self, verbose=True):
+
+ fig = plt.figure()
+
+ # plot positions
plt.plot(self.pos[:, 0], self.pos[:, 1], '+')
- outfile = self.folder + '/' + self.filename + '.pdf'
- print(outfile)
+
+ plt.xlabel('$x$ [m]')
+ plt.ylabel('$y$ [m]')
+ outfile = self.folder + '/' + self.id + \
+ '.sliders.{:0=6}'.format(self.file_number) + '.pdf'
+ plt.legend(loc='best')
+ plt.tight_layout()
plt.savefig(outfile)
+ if verbose:
+ print(outfile)
plt.clf()
+ plt.close(fig)
- def plot_all_sliders(self):
- for filename in os.listdir(self.folder):
- if 'sliders' in filename \
- and '.txt' in filename \
- and '.pdf' not in filename \
- and '.png' not in filename:
- self.read_sliders(filename)
- self.plot_sliders()
+ def plot_all_sliders(self, verbose=False):
+ sim = slidergrid(self.folder)
+ for i in range(sim.status()):
+ sim.read_step(i + 1, verbose=verbose)
+ sim.plot_sliders()
def current_time(self):
return self.time
t@@ -95,7 +104,7 @@ class slidergrid:
sim = slidergrid(self.folder)
for i in range(self.status()):
- sim.read_step(i+1, verbose=verbose)
+ sim.read_step(i + 1, verbose=verbose)
self.t_series.append(sim.time)
E_t, E_r = sim.current_kinetic_energy()
self.E_t_series.append(E_t)
t@@ -149,6 +158,7 @@ class slidergrid:
if verbose:
print('input file: ' + filename)
+ self.file_number = extract_file_number(filename)
raw = np.loadtxt(self.filename)
self.pos = raw[:, 0:3]
self.vel = raw[:, 3:6]
t@@ -180,6 +190,10 @@ def iterate_over_folders_and_files(folders,
print('No actions specified. Bye.')
+def extract_file_number(string):
+ return int(re.findall('\d+', string)[0])
+
+
def main(argv):
folders = []
plot_sliders = False