try: paraview.simple except: from paraview.simple import * from array import array paraview.simple._DisableFirstRenderCameraReset() import time import csv import os, sys def GetaViewProps(rv): res=dict() # print 'Properties of the RenderView' for prop in ["CenterOfRotation","CameraViewUp","CameraFocalPoint","CameraClippingRange","CameraPosition"]: res[prop]=rv.GetProperty(prop).GetData() print prop, "--->", res[prop] return(res) def PrintView(V): for p in V.keys(): print p,"--->",V[p] def AnimateViews(V1,V2,steps): RV = GetRenderView() for i in range(steps): t= float( i ) / float(steps) # print 'i,t',i,t # print V1.keys() for p in V1.keys(): # print p if(V2.has_key(p)): Vec1=V1[p] Vec2=V2[p] # print Vec1,Vec2 Vec=array('f',range(len(Vec1))) for c in range (len(Vec1)): # print p,c,Vec1[c],Vec2[c] Vec[c]=Vec1[c] * t + Vec2[c] * (1.0 -t ) RV.SetPropertyWithName(p,Vec) # print p, Vec Render() def ZoomRendering(V1,array1): for n in array1: V1[2] = n # print V1 Render() return(V1) file_data="/gpfs/scratch/userinternal/cin0849a/VizSimula/data_samples/xdmf/test.xdmf" path_file_out="/gpfs/scratch/userinternal/cin0849a/VizSimula/benchmark_paraview" name_file_out="bench_out.csv" list_time=['np'] # OPEN # print "Opening, Reading and Outline Rendering of the file: " print file_data start=time.time() test_xdmf = XDMFReader( FileName=file_data) test_xdmf.PointArrays = ['scalars'] test_xdmf.Grids = ['singlegrid'] test_xdmf.Sets = [] RenderView1 = GetRenderView() a1_scalars_PVLookupTable = GetLookupTableForArray( "scalars", 1, Discretize=0, RGBPoints=[0.0, 0.0, 0.0, 1.0, 58631.66015625, 1.0, 0.0, 0.0], VectorMode='Magnitude', NanColor=[0.4980392156862745, 0.4980392156862745, 0.4980392156862745], ColorSpace='HSV', ScalarRangeInitialized=1.0 ) a1_scalars_PiecewiseFunction = CreatePiecewiseFunction( Points=[0.0, 0.0, 58631.66015625, 1.0] ) DataRepresentation1 = Show() DataRepresentation1.Representation = 'Volume' DataRepresentation1.ScalarOpacityFunction = a1_scalars_PiecewiseFunction DataRepresentation1.ColorArrayName = 'scalars' DataRepresentation1.LookupTable = a1_scalars_PVLookupTable DataRepresentation1.SelectMapper ='GPU' RenderView1.CenterOfRotation = [255.5, 255.5, 255.5] RenderView1.CameraViewUp = [0.0, 1.0, 0.0] RenderView1.CameraFocalPoint = [255.5, 255.5, 255.5] RenderView1.CameraClippingRange = [1119.61, 2309.195] RenderView1.CameraPosition = [255.5, 255.5, 1900.0] Render() ttcompute= time.time()-start list_time.append(str('%.4f' %ttcompute)) print "wall time of reading and GPU-volume rendering of the file:",ttcompute # ZOOM and ANIMATE GPU-based # print "Zoom in of the GPU-Volume Rendering:" RenderView1.CameraPosition = [255.5, 255.5, 1900.0] print "Start CameraPosition=",RenderView1.CameraPosition array1=[1700,1600,1500,1400,1300,1200,1100,1000,900,800,700] start=time.time() ZoomRendering(RenderView1.CameraPosition,array1) ttcompute=time.time()-start list_time.append(str('%.4f' %ttcompute)) print "Wall time GPU-Volume Rendering + Zoom= ",ttcompute print "GPU-Volume Rendering animate" RenderView1 = GetRenderView() RenderView1.CameraPosition = [300,300,1000] print "View1=" View1=GetaViewProps(RenderView1) Render() RenderView1 = GetRenderView() RenderView1.CameraPosition = [ -1217.5473492856797, 1345.508773271151, -148.81810614214157] print "View2=" View2=GetaViewProps(RenderView1) start=time.time() AnimateViews(View1,View2,20) AnimateViews(View2,View1,20) ttcompute=time.time()-start list_time.append(str('%.4f' %ttcompute)) print "Wall time GPU-Volume Rendering animate",ttcompute # ZOOM and ANIMATE FIXED POINT-based # print "Zoom in of the Volume Rendering, no GPU:" DataRepresentation1.SelectMapper ='Fixed point' RenderView1.CenterOfRotation = [255.5, 255.5, 255.5] RenderView1.CameraViewUp = [0.0, 1.0, 0.0] RenderView1.CameraFocalPoint = [255.5, 255.5, 255.5] RenderView1.CameraClippingRange = [1119.61, 2309.195] RenderView1.CameraPosition = [255.5, 255.5, 1900.0] print "Start CameraPosition=",RenderView1.CameraPosition array1=[1700,1600,1500,1400,1300,1200,1100,1000,900,800,700] start=time.time() ZoomRendering(RenderView1.CameraPosition,array1) ttcompute=time.time()-start list_time.append(str('%.4f' %ttcompute)) print "Wall time Volume Rendering + Zoom no GPU= ",ttcompute print "Volume Rendering animate, no GPU" RenderView1 = GetRenderView() RenderView1.CameraPosition = [300,300,1000] print "View1=" View1=GetaViewProps(RenderView1) Render() RenderView1 = GetRenderView() RenderView1.CameraPosition = [ -1217.5473492856797, 1345.508773271151, -148.81810614214157] print "View2=" View2=GetaViewProps(RenderView1) start=time.time() AnimateViews(View1,View2,20) AnimateViews(View2,View1,20) ttcompute=time.time()-start list_time.append(str('%.4f' %ttcompute)) print "Wall time Volume Rendering animate, no GPU",ttcompute # CONTOUR # print "Contour" start = time.time() Contour1 = Contour( PointMergeMethod="Uniform Binning" ) Contour1.PointMergeMethod = "Uniform Binning" Contour1.ContourBy = ['POINTS', 'scalars'] Contour1.Isosurfaces = [200.0] DataRepresentation2 = Show() DataRepresentation2.ColorArrayName='' DataRepresentation2.EdgeColor = [0.0, 0.0, 0.5000076295109483] DataRepresentation1.Visibility = 0 print "Rotazione del Contour" RenderView1 = GetRenderView() RenderView1.CameraPosition = [300,300,1000] print "View1=" View1=GetaViewProps(RenderView1) Render() RenderView1 = GetRenderView() RenderView1.CameraPosition = [ -1217.5473492856797, 1345.508773271151, -148.81810614214157] print "View2=" View2=GetaViewProps(RenderView1) AnimateViews(View1,View2,200) AnimateViews(View2,View1,200) ttcompute=time.time()-start list_time.append(str('%.4f' %ttcompute)) print 'Contour + Animate wall time',ttcompute print "Zoom in of the Contour Rendering" RenderView1 = GetRenderView() RenderView1.CameraPosition = [255.5, 255.5, 1900.0] print "Start CameraPosition=",RenderView1.CameraPosition array1=[1700,1600,1500,1400,1300,1200,1100,1000,900,800,700] start=time.time() ZoomRendering(RenderView1.CameraPosition,array1) ttcompute=time.time()-start print "CameraPosition=",RenderView1.CameraPosition print " Contour Zoom wall time= ",ttcompute list_time.append(str('%.4f' %ttcompute)) RenderView1.CameraPosition = [255.5, 255.5, 1900.0] Render() print "Loop on Contour-plot" RenderView1 = GetRenderView() RenderView1.CameraPosition = [255.5, 255.5, 1900.0] print "Start CameraPosition=",RenderView1.CameraPosition Contour1.Isosurfaces = [1500.0] DataRepresentation2 = Show() DataRepresentation2.EdgeColor = [0.0, 0.0, 0.5000076295109483] array2=[1500,1400,1300,1200,1100,1000,900,800,700,600,500,450,400,350,300,250,200] start=time.time() for n in array2: Contour1.Isosurfaces = n # print "Contour-point=",Contour1.Isosurfaces Render() ttcompute=time.time()-start print "CameraPosition=",RenderView1.CameraPosition print " Loop Contourwall time= ",ttcompute list_time.append(str('%.4f' %ttcompute)) RenderView1.CameraPosition = [255.5, 255.5, 1900.0] Render() print "time:",list_time list_path=os.listdir(path_file_out) test=[elem for elem in list_path if elem==name_file_out] file_output=path_file_out+'/'+name_file_out print 'file_output=',file_output print 'test=',test,'len(test)=',len(test) if len(test)==0: csvfile = open(file_output,"w") writer=csv.writer(csvfile) intestazione=['Procs','Read','Zoom_VR_GPU','Animate_VR_GPU', 'Zoom_VR_noGPU', 'Animate_VR_noGPU','Animate_Contour','Zoom_Contour','Loop_Contour'] writer.writerow(intestazione) else: csvfile = open(file_output,"a") writer=csv.writer(csvfile) writer.writerow(list_time) csvfile.close() print 'END'