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