From 5f0a3578dc6208fede1dc0da0d35fac03e5474d7 Mon Sep 17 00:00:00 2001 From: Samo Penic <samo.penic@gmail.com> Date: Sat, 14 Jan 2017 08:52:24 +0000 Subject: [PATCH] Additional functionality in VTU renderer. Added capability to specify optional timestep within the run --- nir_log | 13 ++++++++++--- trisurf/VTKRendering.py | 8 ++++++-- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/nir_log b/nir_log index 6e896f5..2b92f9b 100644 --- a/nir_log +++ b/nir_log @@ -98,8 +98,10 @@ #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 table=trisurf.Statistics(run.Dir.fullpath(),filename='data_tspoststat.csv').getTable() def running_avg(col): import numpy as np @@ -107,15 +109,20 @@ for i in range(0,len(col)): avg.append(np.average(col[:-i])) return avg + fig=plt.figure(1) ra=running_avg(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)) + vtk.Renderer(kwargs.get('args', None),kwargs.get('host',None),run, math.floor(event.xdata)) + 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]]) diff --git a/trisurf/VTKRendering.py b/trisurf/VTKRendering.py index 0ddb5a0..bc07bc2 100644 --- a/trisurf/VTKRendering.py +++ b/trisurf/VTKRendering.py @@ -80,10 +80,11 @@ class Renderer: - def __init__(self,args,host,run): + def __init__(self,args,host,run, timestep=-1): self.host=host self.args=args self.run=run + self.timestep=timestep self.renderer = vtkRenderer() self.actor=self.lastActor() self.textactor=self.textActor() @@ -128,7 +129,10 @@ return textactor def lastActor(self): - self.filename=self.lastVTU() + if(self.timestep<0): + self.filename=self.lastVTU() + else: + self.filename=os.path.join("./",self.run.Dir.fullpath(),'timestep_{:06d}.vtu'.format(self.timestep)) reader=vtkXMLUnstructuredGridReader() reader.SetFileName(self.filename) reader.Update() # Needed because of GetScalarRange -- Gitblit v1.9.3