timprove data handling in postprocessing module - slidergrid - grid of elastic … | |
git clone git://src.adamsgaard.dk/slidergrid | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 067dee70d100c7598d44a8a595e50a32f90c8578 | |
parent c75d7fcd51c3d68c8063daf7493815f71331bb39 | |
Author: Anders Damsgaard <[email protected]> | |
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(-) | |
--- | |
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 |