Python wrapper for running instances of trisurf-ng
Samo Penic
2017-01-14 991e1333b1bccc0df551d6929617ff30d5cef5cd
nir_log
@@ -70,6 +70,12 @@
   host=kwargs.get('host', None)
   print("Demo analysis")
   print("Analysis on host "+host['name']+" for run "+run.Dir.fullpath()+" completed")
   print("here comes info on the run variable:")
   print(run)
   print("here comes info on the host variable:")
   print(host)
   print("here comes info on the args variable:")
   print(kwargs.get('args',None))
def plothbar(run, **kwargs):
   import matplotlib.pyplot as plt
@@ -92,8 +98,11 @@
   #if return False or no return statement, the analysis will continue with next running instance in the list. if return True, the analysis will stop after this run.
   return False
def plotrunningavg(run, **kwargs):
def plotrunningavginteractive(run, **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()
   def running_avg(col):
      import numpy as np
@@ -101,15 +110,25 @@
      for i in range(0,len(col)):
         avg.append(np.average(col[:-i]))
      return avg
   def spawned_viewer(n):
      vtk.Renderer(kwargs.get('args', None),kwargs.get('host',None),run, n)
   fig=plt.figure(1)
   ra=running_avg(table['hbar'])
   l=len(table['hbar'])
   plt.plot(ra)
   plt.title('Running average')
   plt.ylabel('1/n sum_i=niter^n(hbar_i)')
   plt.xlabel('n')
   def onclick(event):
      #print('button=%d, x=%d, y=%d, xdata=%f, ydata=%f' % (event.button, event.x, event.y, event.xdata, event.ydata))
      p=Process(target=spawned_viewer, args=(l-math.floor(event.xdata)-1,))
      p.start()
   cid = fig.canvas.mpl_connect('button_press_event', onclick)
   plt.show()
   plt.close(1)
#start manager with configured runs
tsmgr.start(Runs, analyses={'analyze1':analyze, 'plotrunningavg':plotrunningavg, 'plothbar':plothbar})
tsmgr.start(Runs, analyses={'analyze1':analyze, 'plotrunningavg':plotrunningavginteractive, 'plothbar':plothbar})
#statistics.combine(Runs)
#statistics.combine([Runs[1],Runs[2]])