def extractParaviewLineData(caseDir, varList, coords, calcDict, csvOutputVar, time): try: reader = ps.OpenFOAMReader(FileName=caseDir + '/case.foam') except: ps.Connect() reader = ps.OpenFOAMReader(FileName=caseDir + '/case.foam') try: reader.CellArrays = varList except: print("Variables {} were not found in results. Exiting ...".format( varList)) reader.MeshRegions = ['internalMesh'] if (time in reader.TimestepValues): reader.SMProxy.UpdatePipeline(time) reader.UpdatePipelineInformation() #view = ps.CreateRenderView() #view.ViewTime = time else: print("Time-directory {} does not exist. Exiting ...".format(time)) sys.exit(1) if (calcDict): calc = ps.Calculator(reader) calc.Function = calcDict["Function"] calc.ResultArrayName = calcDict["ResultArrayName"] plotLine = ps.PlotOverLine(Source="High Resolution Line Source") plotLine.Source.Resolution = 450 plotLine.Source.Point1 = coords[0] # [0.0, 0.0008, 0.0] plotLine.Source.Point2 = coords[1] # [0.59, 0.0008, 0.0] filePath = caseDir + "/tmp.csv" writer = ps.CreateWriter(filePath, plotLine) writer.WriteAllTimeSteps = False writer.UseScientificNotation = 1 #print("Writing file tmp.csv ... ") writer.UpdatePipeline() #print("Done!") ps.Delete(reader) ps.Delete(calc) #; ps.Delete(writer) ps.Delete(plotLine) reader = None del reader calc = None del calc plotLine = None del plotLine del writer if (np.mod((100. * time), 1) == 0): print("Disconnecting ... ") ps.Disconnect() # Clear memory occasionally. data = extractFromCSV("tmp.csv", csvOutputVar) return data
def remove(self): """ Reset ParaView and Vizard stuff to default. """ self.origin_node.remove() for filter in reversed(self._filters): pv.Delete(filter) pv.servermanager.ProxyManager().UnRegisterProxies() pv.Disconnect() pv.Connect()
def runTest(): options = servermanager.vtkProcessModule.GetProcessModule().GetOptions() url = options.GetServerURL() smp.Connect(getHost(url), getPort(url)) sphere = smp.Sphere() f = smp.ProgrammableFilter(sphere) # test that vtk is imported automatically and contains the name vtkPolyData script = 'assert vtk.vtkPolyData' assert testScript(f, script) # test that variables can be passed using the Parameters property script = 'assert foo == "bar"' f.SetPropertyWithName('Parameters', ['foo', '"bar"']) assert testScript(f, script) smp.Disconnect()
def ArrowsScript(Input1, Input2, Output, CamDirVec=None, CamUpVec=None): #### disable automatic camera reset on 'Show' pvs._DisableFirstRenderCameraReset() # create a new 'XML Unstructured Grid Reader' VTU1 = pvs.XMLUnstructuredGridReader(FileName=[Input1]) VTU1.PointArrayStatus = ['Curvature'] # create a new 'XML Unstructured Grid Reader' VTU2 = pvs.XMLUnstructuredGridReader(FileName=[Input2]) VTU2.PointArrayStatus = ['Curvature'] # get active view renderView1 = pvs.GetActiveViewOrCreate('RenderView') # show data in view VTU1Display = pvs.Show(VTU1, renderView1) VTU1Display.Representation = 'Surface' VTU1Display.Diffuse = 0.85 VTU1Display.Ambient = 0.25 makeGlyph(VTU1, renderView1, scale=40.0, color=[1.0, 0.0, 0.0]) makeGlyph(VTU2, renderView1, scale=30.0, color=[0.0, 0.0, 1.0]) # Save Screenshot AdjustCameraAndSave(renderView1, Output, ImageResolution=(2048, 2048), CamDirVec=CamDirVec, CamUpVec=CamUpVec) # set active source pvs.SetActiveSource(None) pvs.SetActiveView(None) pvs.Disconnect()
def test_contour(self): pv.Connect() # using a dedicated server state for each test print "\nTEST_CONTOUR" # set up some processing task view_proxy = pv.CreateRenderView() view_proxy.OrientationAxesVisibility = 0 view_proxy.ViewSize = [1024, 768] s = pv.Wavelet() contour = pv.Contour(Input=s, ContourBy='RTData', ComputeScalars=1) sliceRep = pv.Show(contour) # make or open a cinema data store to put results in fname = "/tmp/test_pv_contour/info.json" cs = file_store.FileStore(fname) cs.add_metadata({'type': 'parametric-image-stack'}) cs.add_metadata({'store_type': 'FS'}) cs.add_metadata({'version': '0.0'}) cs.filename_pattern = "{phi}_{theta}_{contour}_{color}_contour.png" cs.add_parameter( "phi", store.make_parameter('phi', [90, 120, 140])) cs.add_parameter( "theta", store.make_parameter('theta', [-90, -30, 30, 90])) cs.add_parameter( "contour", store.make_parameter('contour', [50, 100, 150, 200])) cs.add_parameter( "color", store.make_parameter( 'color', ['white', 'RTData_1'], typechoice='list')) # associate control points with parameters of the data store cam = pv_explorers.Camera( [0, 0, 0], [0, 1, 0], 75.0, view_proxy) filt = pv_explorers.Contour("contour", contour) colorChoice = pv_explorers.ColorList() colorChoice.AddSolidColor('white', [1, 1, 1]) colorChoice.AddLUT('POINTS', 'RTData_1', 'X') col = pv_explorers.Color("color", colorChoice, sliceRep) params = ["phi", "theta", "contour", "color"] e = pv_explorers.ImageExplorer( cs, params, [cam, filt, col], view_proxy) # run through all parameter combinations and put data into the store e.explore() # Reproduce an entry and compare vs. loaded # First set the parameters to reproduce cam.execute(store.Document({'theta': 30, 'phi': 140})) filt.execute(store.Document({'contour': 100})) col.execute(store.Document({'color': 'RTData_1'})) imageslice = ch.pvRenderToArray(view_proxy) # Now load the corresponding cs2 = file_store.FileStore(fname) cs2.load() docs = [] for doc in cs2.find( {'theta': 30, 'phi': 140, 'contour': 100, 'color': 'RTData_1'}): docs.append(doc.data) # compare the two l2error = ch.compare_l2(imageslice, docs[0]) ncc = ch.compare_ncc(imageslice, docs[0]) success = (l2error < 1.0) and (ncc > 0.99) if not success: print "\n l2-error = ", l2error, " ; ncc = ", ncc, "\n" self.assertTrue(success) pv.Disconnect() # using a dedicated server state for each test
def test_composite(self): pv.Connect() # get a new context like a normal script would print "\nTEST_COMPOSITE" # set up some processing task view_proxy = pv.CreateRenderView() view_proxy.OrientationAxesVisibility = 0 s = pv.Wavelet() contour = pv.Contour(Input=s, ContourBy='RTData', ComputeScalars=1) sliceRep = pv.Show(contour) # make or open a cinema data store to put results in fname = "/tmp/test_pv_composite/info.json" cs = file_store.FileStore(fname) cs.add_metadata({'type': 'composite-image-stack'}) cs.add_metadata({'store_type': 'FS'}) cs.add_metadata({'version': '0.1'}) cs.filename_pattern = "results.png" cs.add_parameter( "phi", store.make_parameter('phi', [90, 120, 140])) cs.add_parameter( "theta", store.make_parameter('theta', [-90, -30, 30, 90])) cs.add_layer( "vis", store.make_parameter("vis", ['contour'])) contours = [50, 100, 150, 200] cs.add_control("isoval", store.make_parameter('isoval', contours)) cs.assign_parameter_dependence("isoval", "vis", ['contour']) cs.add_field("color", store.make_field('color', {'white': 'rgb', 'depth': 'depth', 'lum': 'luminance', 'RTData_1': 'lut'},), "isoval", contours) # associate control points with parameters of the data store cam = pv_explorers.Camera([0, 0, 0], [0, 1, 0], 75.0, view_proxy) showcontour = pv_explorers.SourceProxyInLayer("contour", sliceRep, contour) layertrack = explorers.Layer("vis", [showcontour]) filt = pv_explorers.Contour("isoval", contour) # additional specification necessary for the color field colorChoice = pv_explorers.ColorList() colorChoice.AddSolidColor('white', [1, 1, 1]) colorChoice.AddLUT('POINTS', 'RTData_1', 'X') colorChoice.AddDepth('depth') colorChoice.AddLuminance('lum') col = pv_explorers.Color("color", colorChoice, sliceRep) paramNames = ["phi", "theta", "vis", "isoval", "color"] trackList = [cam, layertrack, filt, col] e = pv_explorers.ImageExplorer(cs, paramNames, trackList, view_proxy) # run through all parameter combinations and put data into the store e.explore() # Reproduce an entry and compare vs. loaded # First set the parameters to reproduce cam.execute(store.Document({'theta': 30, 'phi': 140})) filt.execute(store.Document({'isoval': 100})) col.execute(store.Document({'color': 'RTData_1'})) imageslice = ch.pvRenderToArray(view_proxy) # Now load the corresponding cs2 = file_store.FileStore(fname) cs2.load() docs = [] for doc in cs2.find({'theta': 30, 'phi': 140, 'isoval': 100, 'color': 'RTData_1'}): docs.append(doc.data) # compare the two l2error = ch.compare_l2(imageslice, docs[0]) ncc = ch.compare_ncc(imageslice, docs[0]) success = (l2error < 1.0) and (ncc > 0.99) if not success: print "\n l2-error = ", l2error, " ; ncc = ", ncc, "\n" self.assertTrue(success) pv.Disconnect() # using a dedicated server state for each test
def test_slice(self): pv.Connect() # using a dedicated server state for each test print "\nTEST_SLICE" # set up some processing task view_proxy = pv.CreateRenderView() view_proxy.OrientationAxesVisibility = 0 s = pv.Sphere() sliceFilt = pv.Slice( SliceType="Plane", Input=s, SliceOffsetValues=[0.0]) sliceFilt.SliceType.Normal = [0, 1, 0] sliceRep = pv.Show(sliceFilt) # make or open a cinema data store to put results in fname = "/tmp/test_pv_slice/info.json" cs = file_store.FileStore(fname) cs.add_metadata({'type': 'parametric-image-stack'}) cs.add_metadata({'store_type': 'FS'}) cs.add_metadata({'version': '0.0'}) cs.filename_pattern = "{phi}_{theta}_{offset}_{color}_slice.png" cs.add_parameter( "phi", store.make_parameter('phi', [90, 120, 140])) cs.add_parameter( "theta", store.make_parameter('theta', [-90, -30, 30, 90])) cs.add_parameter( "offset", store.make_parameter('offset', [-.4, -.2, 0, .2, .4])) cs.add_parameter( "color", store.make_parameter( 'color', ['yellow', 'cyan', "purple"], typechoice='list')) colorChoice = pv_explorers.ColorList() colorChoice.AddSolidColor('yellow', [1, 1, 0]) colorChoice.AddSolidColor('cyan', [0, 1, 1]) colorChoice.AddSolidColor('purple', [1, 0, 1]) # associate control points with parameters of the data store cam = pv_explorers.Camera([0, 0, 0], [0, 1, 0], 10.0, view_proxy) filt = pv_explorers.Slice("offset", sliceFilt) col = pv_explorers.Color("color", colorChoice, sliceRep) params = ["phi", "theta", "offset", "color"] e = pv_explorers.ImageExplorer( cs, params, [cam, filt, col], view_proxy) # run through all parameter combinations and put data into the store e.explore() # Reproduce an entry and compare vs. loaded # First set the parameters to reproduce cam.execute(store.Document({'theta': -30, 'phi': 120})) filt.execute(store.Document({'offset': -.4})) col.execute(store.Document({'color': 'cyan'})) imageslice = ch.pvRenderToArray(view_proxy) # Now load the corresponding entry cs2 = file_store.FileStore(fname) cs2.load() docs = [] for doc in cs2.find( {'theta': -30, 'phi': 120, 'offset': -.4, 'color': 'cyan'}): docs.append(doc.data) # print "gen entry: \n", # imageslice, "\n", # imageslice.shape,"\n", # "loaded: \n", # docs[0], "\n", # docs[0].shape # compare the two l2error = ch.compare_l2(imageslice, docs[0]) ncc = ch.compare_ncc(imageslice, docs[0]) self.assertTrue((l2error < 1.0) and (ncc > 0.99)) pv.Disconnect() # using a dedicated server state for each test
def _start_web_server(): server.start_webserver(options=ParaViewIPython.webArguments, protocol=ParaViewIPython.webProtocol) from paraview import simple simple.Disconnect() ParaViewIPython.localController.TriggerBreakRMIs()
LabelFormat='%-#6.3g') view.Representations.append(scalarbar) # Update camera manipulator manipulatorsProperty = view.GetProperty('Camera3DManipulators') newList = [] for index in xrange(manipulatorsProperty.GetNumberOfProxies()): manipulator = servermanager._getPyProxy( manipulatorsProperty.GetProxy(index)) if manipulator.ManipulatorName != 'Rotation': if manipulator.ManipulatorName == 'Pan2': manipulator.Shift = 0 newList.append(manipulator) manipulatorsProperty.RemoveAllProxies() for manipulator in newList: manipulatorsProperty.AddProxy(manipulator.SMProxy) view.CameraParallelProjection = 1 view.CameraParallelScale = 2000000 simple.Render() scalarbar.Visibility = True legend.Text = "123" simple.Render() if not smtesting.DoRegressionTesting(view.SMProxy): raise smtesting.TestError, 'Test failed.' simple.Disconnect()
def pvDisconnect(self, message): """Free the current active session""" simple.Disconnect()
def StreamlinesScript(Input1, Input2, Output, N1=None, N2=None, Offset1=0.0, Offset2=0.0, CamDirVec=None, CamUpVec=None, Origin=None): ''' Creates an image with the streamlines from two VTUs. Inputs: Input1 - VTU with first direction of curvatures Input2 - VTU with second direction of curvatures N1 - List of normal of slice for VTU1 N2 - List of normal of slice for VTU2 Offset1 - Value of offset for slice of VTU1 Offset2 - Value of offset for slice of VTU2 CamDirVec - Vector for camera direction CamUpVec - Vector for camera up direction Origin - Vector with the position for the origin''' #### disable automatic camera reset on 'Show' pvs._DisableFirstRenderCameraReset() # create a new 'XML Unstructured Grid Reader' VTU1 = pvs.XMLUnstructuredGridReader(FileName=[Input1]) VTU1.PointArrayStatus = ['Curvature'] ## Fix data for Slices if N1 is None: N1 = [0.9, 0.4, 0.2] if N2 is None: # N2 = np.cross(N1,[0,0,1]) N2 = [-0.8, 0.5, 0.16] if Origin is None: Origin = paraview.servermanager.Fetch( pvs.IntegrateVariables(Input=VTU1)).GetPoint(0) # create a new 'XML Unstructured Grid Reader' VTU2 = pvs.XMLUnstructuredGridReader(FileName=[Input2]) VTU2.PointArrayStatus = ['Curvature'] # get active view renderView1 = pvs.GetActiveViewOrCreate('RenderView') # show data in view VTU1Display = pvs.Show(VTU1, renderView1) VTU1Display.Representation = 'Surface' VTU1Display.Diffuse = 0.85 VTU1Display.Ambient = 0.25 # show data in view VTU2Display = pvs.Show(VTU2, renderView1) VTU2Display.Representation = 'Surface' VTU2Display.Diffuse = 0.85 VTU2Display.Ambient = 0.25 # create a new 'Slice' slice1 = pvs.Slice(Input=VTU1) slice1.SliceType.Origin = Origin slice1.SliceType.Normal = N1 slice1.SliceType.Offset = 0.0 slice1.SliceOffsetValues = [Offset1] # create a new 'Slice' slice2 = pvs.Slice(Input=VTU2) slice2.SliceType.Origin = Origin slice2.SliceType.Normal = N2 slice2.SliceType.Offset = 0.0 slice2.SliceOffsetValues = [Offset2] # make stremlines makestream(VTU1, slice1, renderView1, [1.0, 0.0, 0.0]) makestream(VTU2, slice2, renderView1, [0.0, 0.0, 1.0]) # Save Screenshot AdjustCameraAndSave(renderView1, Output, ImageResolution=(2048, 2048), CamDirVec=CamDirVec, CamUpVec=CamUpVec) # set active source pvs.SetActiveSource(None) pvs.SetActiveView(None) pvs.Disconnect()
fileparts = str.split(file, '/') nameparts = str.split(fileparts[-1], '.') currentfile.FileNames = [file] # currentfile.Update() print("Writing Processed File") # writer = pv.CreateWriter("{0}{2}_{1}.vts".format(outdir, segment, nameparts[0]), calc) writer = pv.CreateWriter( "{0}MHD_{1}.vts".format(outdir, segment, nameparts[0]), calc) writer.UpdatePipeline() segment += 1 print("Files Loaded") pv.Disconnect() # try: paraview.simple # except: from paraview.simple import * # paraview.simple._DisableFirstRenderCameraReset() # # # # ElkStorm_mhd_20131002T000500Z_hdf = vtkLFMReader( FileNames=['/Volumes/Data 1/PhD Data/MHD/Oct_02_2013/ElkStorm_mhd_2013-10-02T00-05-00Z.hdf'] ) # # ElkStorm_mhd_20131002T000500Z_hdf # # RenderView1 = GetRenderView() # RenderView1.CenterOfRotation = [-100495451136.0, 40808787968.0, 1104775808.0] # # DataRepresentation1 = Show()