Python wrapper for running instances of trisurf-ng
Samo Penic
2018-05-06 a2f05726379d1440f8709eb9b81913e1ca72f771
trisurf/analyses.py
@@ -1,6 +1,22 @@
from . import trisurf
def analysis(*args):
   """Decorator for adding the analysis functions to function lists"""
   def analysis_decorator(analysis_function):
      trisurf._analysis_list[analysis_name]=analysis_function
      def wrapper(*args, **kwargs):
         analysis_function(*args,**kwargs)
      return wrapper
   if len(args) == 1 and callable(args[0]): #no arguments
      analysis_name=args[0].__name__
      return analysis_decorator(args[0])
   else:
      analysis_name=args[0]
      return analysis_decorator
@analysis
def demo(run, **kwargs):
   host=kwargs.get('host', None)
   print("Demo analysis")
@@ -14,12 +30,13 @@
# can be wrapped to specify scalar_field)
@analysis('plotrunningavginteractive')
def plotrunningavginteractive(run, scalar_field='vertices_idx', **kwargs):
   import matplotlib.pyplot as plt
   from trisurf import VTKRendering as vtk
   import math
   from multiprocessing import Process
   table=trisurf.Statistics(run.Dir.fullpath(),filename='data_tspoststat.csv').getTable()
   table=trisurf.Statistics(run.Dir.fullpath(),filename='poststat.csv').getTable()
   def running_avg(col):
      import numpy as np
      avg=[]   
@@ -48,8 +65,8 @@
# -------------------------------
# these functions should be wrapped
# -------------------------------
def plotColumnFromPostProcess(run, filename='data_tspoststat.csv', column='hbar', **kwargs):
@analysis('plotColumnFromPostProcess')
def plotColumnFromPostProcess(run, filename='poststat.csv', column='hbar', **kwargs):
   import matplotlib.pyplot as plt
   def smooth(y, box_pts):