From a4f8eb21f85326596a491b39e0330882ee8017f0 Mon Sep 17 00:00:00 2001 From: Samo Penic <samo.penic@gmail.com> Date: Sun, 17 Sep 2017 20:09:51 +0000 Subject: [PATCH] Added wrapper to libtrisurf --- trisurf/analyses.py | 28 +++++++++++++++++++++++----- 1 files changed, 23 insertions(+), 5 deletions(-) diff --git a/trisurf/analyses.py b/trisurf/analyses.py index 9a063d7..1569eb9 100644 --- a/trisurf/analyses.py +++ b/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") @@ -13,12 +29,14 @@ print(kwargs.get('args',None)) -def plotrunningavginteractive(run, **kwargs): +# 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=[] @@ -26,7 +44,7 @@ avg.append(np.average(col[:-i])) return avg def spawned_viewer(n): - vtk.Renderer(kwargs.get('args', None),kwargs.get('host',None),run, n) + vtk.Renderer(kwargs.get('args', None),kwargs.get('host',None),run, timestep=n,scalar_field=scalar_field) fig=plt.figure(1) ra=running_avg(table['hbar']) @@ -47,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): -- Gitblit v1.9.3