def save_window(): visit.ResetView() v = visit.GetView3D() v.RotateAxis(0,-90) visit.SetView3D(v) swatts= visit.SaveWindowAttributes() swatts.outputToCurrentDirectory = 1 swatts.outputDirectory = "." swatts.fileName = "chunk_render" swatts.family = 0 swatts.format = swatts.PNG swatts.width = 1024 swatts.height = 1024 swatts.screenCapture = 0 swatts.saveTiled = 0 swatts.quality = 100 swatts.progressive = 0 swatts.binary = 0 swatts.stereo = 0 swatts.compression = swatts.PackBits swatts.forceMerge = 0 swatts.resConstraint = swatts.NoConstraint swatts.advancedMultiWindowSave = 0 visit.SetSaveWindowAttributes(swatts) visit.SaveWindow()
def make_slide(time): plasma_file = vtk_path + plasma_file_head + str(time) +'.vtk' paraxial_file = vtk_path + paraxial_file_head + str(time) + '.vtk' fullwave_file = vtk_path + fullwave_file_head + str(time) + '.vtk' print('opening plamsa file:' + plasma_file) sts = vi.OpenDatabase(plasma_file,0,'VTK') if (sts != 1): print('open file failed! error code:' + str(sts)) return sts = vi.AddPlot('Pseudocolor','cutoff') vi.DrawPlots() po = vi.GetPlotOptions() vi.LoadAttribute(plasma_attr_file,po) vi.SetPlotOptions(po) print('opening paraxial file:' + paraxial_file) sts = vi.OpenDatabase(paraxial_file,0,'VTK') if (sts != 1): print('open file failed! error code:' + str(sts)) return sts = vi.AddPlot('Pseudocolor','Er_para') vi.DrawPlots() po = vi.GetPlotOptions() vi.LoadAttribute(wave_attr_file,po) vi.SetPlotOptions(po) print('opening fullwave file:' + fullwave_file) sts = vi.OpenDatabase(fullwave_file,0,'VTK') if (sts != 1): print('open file failed! error code:' + str(sts)) return sts = vi.AddPlot('Pseudocolor','Er_fullw') vi.DrawPlots() po = vi.GetPlotOptions() vi.LoadAttribute(wave_attr_file,po) vi.SetPlotOptions(po) view_attr = vi.GetView3D() vi.LoadAttribute(view_attr_file,view_attr) vi.SetView3D(view_attr) anno_attr = vi.GetAnnotationAttributes() vi.LoadAttribute(annotation_attr_file,anno_attr) vi.SetAnnotationAttributes(anno_attr) anno_names = vi.GetAnnotationObjectNames() for name in anno_names: legend = vi.GetAnnotationObject(name) legend.numberFormat = "%# -9.2g" legend.drawMinMax = 0 legend.controlTicks = 1 legend.numTicks = 3 vi.SaveWindow()
def setDimension(self, dim): """Sets the dimension, which is used in controlling the view""" self.dim = dim if dim == 2: self.view = v.GetView2D() elif dim == 3: self.view = v.GetView3D() else: raise RuntimeError("Invalid dimension %s"%str(dim))
def write_window(f, prefix): # Window setup f.write('width, height = %d, %d\n' % visit.GetWindowInformation().windowSize) f.write( 'win = GetGlobalAttributes().windows[GetGlobalAttributes().activeWindow]\n' ) f.write('ResizeWindow(win, width, height)\n') f.write('SetActiveWindow(win) # Synchronize\n') f.write('size = GetWindowInformation().windowSize\n') f.write('if width < size[0] or height < size[1]:\n') f.write( ' ResizeWindow(win, width + (size[0] - width), height + (size[1] - height))\n' ) f.write('DeleteAllPlots()\n') f.write('for name in GetAnnotationObjectNames():\n') f.write(' DeleteAnnotationObject(name)\n') f.write('\n') # Write the plots. write_plots(f) f.write('DrawPlots()\n\n') # Set the view f.write('# Set the view\n') if visit.GetWindowInformation().viewDimension == 1: view = visit.GetViewCurve() elif visit.GetWindowInformation().viewDimension == 2: view = visit.GetView2D() else: view = visit.GetView3D() write_state_object(f, view, "view") if visit.GetWindowInformation().viewDimension == 1: f.write('SetViewCurve(view)\n') elif visit.GetWindowInformation().viewDimension == 2: f.write('SetView2D(view)\n') else: f.write('SetView3D(view)\n') f.write('\n') # Get the annotation attributes f.write('# Set the annotation attributes\n') annot = visit.GetAnnotationAttributes() if write_state_object_diffs(f, annot, visit.AnnotationAttributes(), "annot"): f.write('SetAnnotationAttributes(annot)\n\n') else: f.write('#SetAnnotationAttributes(annot)\n\n') set_annotation_objects(f, prefix)
def test_visit(): import visit VISIT_ARGS = os.environ.get('VISIT_ARGS', ["-nosplash"]) if isinstance(VISIT_ARGS, str): VISIT_ARGS = VISIT_ARGS.split() for arg in VISIT_ARGS: visit.AddArgument(arg) visit.Launch() print "visit is installed in", os.path.dirname(visit.__file__) print "visit version", visit.Version() visit.ResetView() v3D = visit.GetView3D() v3D.SetViewUp(0, 0, 1) v3D.SetViewNormal(-0.5, -0.8, 0.4) v3D.SetImageZoom(1.0) visit.SetView3D(v3D) aa = visit.AnnotationAttributes() aa.SetAxesType(2) # outside edges aa.SetDatabaseInfoFlag(False) aa.SetUserInfoFlag(False) visit.SetAnnotationAttributes(aa) t = visit.CreateAnnotationObject("Text2D") t.SetText("Hello VisIt!") t.SetPosition(0.4, 0.9) # (0,0) is lower left corner t.SetFontFamily(0) # 0: Arial, 1: Courier, 2: Times t.SetWidth(0.25) # 25% t.SetTextColor((0, 0, 0)) t.SetUseForegroundForTextColor(False) t.SetVisible(True) visit.OpenDatabase("tmp_.vtk") visit.AddPlot("Mesh", "scalars") ma = visit.MeshAttributes() visit.SetPlotOptions(ma) visit.AddPlot("Pseudocolor", "scalars") pa = visit.PseudocolorAttributes() visit.SetPlotOptions(pa) visit.RedrawWindow() visit.DrawPlots() wait()
def scatterPlot(self, coords=["var00", "var01", "var02", "var03"], colorTable="hot", pixelSize=5, stay=False): visit.AddWindow() if len(visit.ListPlots()) > 0: visit.SetActivePlots(0) visit.HideActivePlots() plot = visit.AddPlot("Scatter", coords[0]) p = visit.ScatterAttributes() # Variables if coords[1]: p.var2 = coords[1] if coords[2]: p.var3 = coords[2] if coords[3]: p.var4 = coords[3] #Role Variable Roles take intergers as inputs, not strings p.var1Role = 0 p.var2Role = 1 p.var3Role = 2 p.var4Role = 3 p.scaleCube = 0 #p.colorType = "ColorByColorTable" p.pointSizePixels = pixelSize p.colorTableName = colorTable #p.colorScaling = "Log" v = visit.GetView3D() v.viewNormal = (-0.571619, 0.405393, 0.713378) v.viewUp = (0.308049, 0.911853, -0.271346) visit.SetPlotOptions(p) visit.SetView3D(v) visit.DrawPlots() count = 0 time.sleep(5) return visit.SaveWindow()
f.write(response.read()) print("Successfully downloaded example silo") visit.LaunchNowin() saveatts = visit.SaveWindowAttributes() saveatts.fileName = 'result-visit.png' saveatts.family = 0 saveatts.width = 1024 saveatts.height = 768 saveatts.resConstraint = saveatts.NoConstraint saveatts.outputToCurrentDirectory = 1 visit.SetSaveWindowAttributes(saveatts) visit.OpenDatabase('example.silo') visit.AddPlot('Contour', 'density') c = visit.ContourAttributes() c.colorType = c.ColorByColorTable c.colorTableName = "hot" visit.SetPlotOptions(c) visit.DrawPlots() v = visit.GetView3D() v.viewNormal = (-0.554924, 0.703901, 0.443377) v.viewUp = (0.272066, -0.3501, 0.896331) visit.SetView3D(v) visit.SaveWindow() visit.DeleteAllPlots() visit.CloseDatabase('example.silo') print("Successfully rendered output raster") print("All done!")
aatts.axes3D.bboxFlag = 0 aatts.userInfoFlag = 0 aatts.timeInfoFlag = 0 aatts.legendInfoFlag = 0 aatts.databaseInfoFlag = 0 if args.time: aatts.timeInfoFlag = 1 if args.legend: aatts.legendInfoFlag = 1 if args.dbase: aatts.databaseInfoFlag = 1 v.SetAnnotationAttributes(aatts) # Set initial view cc = v.GetView3D() cc.viewNormal = tuple(args.normal) # View x-plane cc.viewUp = (0, 0, 1) # Z-axis points up cc.imageZoom = args.zoom cc.imagePan = tuple(args.pan) cc.perspective = 0 v.SetView3D(cc) # Set box selection if args.bbox: v.AddOperator('Box') batts = v.BoxAttributes() batts.amount = batts.All # Some, All batts.minx = args.bbox[0] batts.maxx = args.bbox[1] batts.miny = args.bbox[2]
import sys # visit sys.path.append("/home/neo/visit/2.11.0/linux-x86_64/lib/site-packages") import visit as vs vs.Launch() vs.OpenDatabase("visit-data/noise.silo") vs.AddPlot("Pseudocolor", "hardyglobal") vs.AddPlot("Mesh", "Mesh") vs.DrawPlots() v = vs.GetView3D() print "The view is: ", v v.viewNormal = (-0.571619, 0.405393, 0.713378) v.viewUp = (0.308049, 0.911853, -0.271346) vs.SetView3D(v) d = input('Press anything to quit')
def visit_config(geometry_file, data_file, args): """ Convert geometry file to stl, convert data file to vtk, load each file into VisIt, and create and load a session file containing four plot windows. 1) A cube with a slice through an octant. 2) XY plane slice through the centroid. 3) XZ plane slice through the centroid. 4) YZ plane slice through the centroid. Each window has a mesh plot with the "STL_mesh" variable, a Pseudocolor plot with the "TALLY_TAG" variable, and the second, third, and fourth windows have Contour plots with the "ERROR_TAG" variable. If the user has indicated to, launch VisIt and load the session file. Input: ______ geometry_file: h5m file User supplied geometry file. data_file: h5m or vtk file User supplied data file. args: Namespace User supplied geometry file location, data file location, and indication if the user wants images of the plot windows with a timestamp and the session file saved and opened in VisIt. Returns: ________ None """ # Create a list of dictionaries indicating the data, plot, and variable in VisIt. Files = [{ "file_name": data_file, "plot_type": "Pseudocolor", "data_tag": "TALLY_TAG" }, { "file_name": data_file, "plot_type": "Contour", "data_tag": "ERROR_TAG" }, { "file_name": geometry_file, "plot_type": "Mesh", "data_tag": "STL_mesh" }] # Launch VisIt and add appropriate plots. Vi.LaunchNowin() for file in Files: Vi.OpenDatabase(file["file_name"]) Vi.AddPlot(file["plot_type"], file["data_tag"]) # Hide the contour plot in the first plot window. Vi.SetActivePlots(1) Vi.HideActivePlots() # Create the plot of the cube by activating the mesh and pseudocolor plots. Vi.SetActivePlots((0, 2)) # Set the view normal to the first octant. v = Vi.GetView3D() v.viewNormal = (1, 1, 1) Vi.SetView3D(v) # Apply a clip through the first octant. Vi.AddOperator("Clip") c = Vi.ClipAttributes() c.plane1Origin = (40, 40, 40) c.plane1Normal = (1, 1, 1) Vi.SetOperatorOptions(c) # Include the CNERG logo in the bottom left corner of the plot. image = Vi.CreateAnnotationObject("Image") image.image = os.path.dirname(os.path.abspath(__file__)) + "/cnerg.jpg" image.position = (0.02, 0.02) image.width = 10 image.height = 10 Vi.DrawPlots() if args.images: if args.timestamp: attributes = Vi.GetAnnotationAttributes() attributes.userInfoFlag = 0 Vi.SetAnnotationAttributes(attributes) Vi.SaveWindow() # Create the second plot of the XY plane slice. plane_slice_plotting(2, 2, "XY Plane", args.images, args.timestamp) # Create the third plot of the XZ plane slice. plane_slice_plotting(3, 1, "XZ Plane", args.images, args.timestamp) # Create the fourth plot of the YZ plane slice. plane_slice_plotting(4, 0, "ZY Plane", args.images, args.timestamp) # Display the four windows in a 2x2 grid. Vi.SetWindowLayout(4) # Save the session file with the default VisIt output to the current directory. visit_output = "VisitDefaultOutput.session" Vi.SaveSession(visit_output) Vi.Close() # Retrieve the path to the VisIt session file. session_file_path = os.path.join(os.getcwd(), visit_output) # If the user has indicated to, open the session file with the VisIt GUI. if args.openvisit: os.system("visit -sessionfile {} &".format(session_file_path)) # If the user has indicated to, remove the session file after VisIt has opened. if not args.sessionfile: os.system("sleep 10; rm {}".format(session_file_path))
}] Vi.LaunchNowin() for file in Files: Vi.OpenDatabase(file["file_name"]) Vi.AddPlot(file["plot_type"], file["data_tag"]) # Hide the contour plot in the first plot window. Vi.SetActivePlots(2) Vi.HideActivePlots() # Create the plot of the cube by activating the mesh and pseudocolor plots. Vi.SetActivePlots((0, 1)) # Set the view normal to the first octant. v = Vi.GetView3D() v.viewNormal = (1, 1, 1) Vi.SetView3D(v) # Apply a clip through the first octant. Vi.AddOperator("Clip") c = Vi.ClipAttributes() c.plane1Origin = (40, 40, 40) c.plane1Normal = (1, 1, 1) Vi.SetOperatorOptions(c) # Include the CNERG logo in the bottom left corner of the plot. image = Vi.CreateAnnotationObject("Image") image.image = os.path.dirname(os.path.abspath(__file__)) + "/cnerg.jpg" image.position = (0.02, 0.02) image.width = 10
def Orbit(Files, OrbitOptions, OperatorSet=False): """ Take multiple views around vertically, horizontally, or both. Views are evenly spaced. OrbitOptions = (<axis>, <number of views>). The higher the number of views the smoother the rotation. This assumes the following positive axis orientation: y - Up x - Right z - Out from screen """ Pa.PathCreator() # Creates necessary folders. OrbitOptions = tuple(OrbitOptions) Line = str(OrbitOptions[0]) Number = int(OrbitOptions[1]) Increment = 360.0 / float(Number) # Degrees Image = Mk.MakeImages(Files) Image.Plot() # Multiple Operators. try: for multiitem in OperatorSet: # Apply dictionary operator. try: Operator = (multiitem.keys())[0] List = (multiitem.values())[0] Image.Operator(Operator, List, SliceProject=0) except Exception: pass # Apply list operator. try: Operator = multiitem[0] List = multiitem[1] Image.Operator(Operator, List, SliceProject=0) except Exception: pass except Exception: pass # Define which orbits to do. orbitSettings = {} orbitSettings["vertical"] = {"Line": 0} orbitSettings["horizontal"] = {"Line": 1} # Choose which orbits to do. if OrbitOptions[0].lower() == "both": OrbitOptions = ["vertical", "horizontal"] for orbit in OrbitOptions: Vi.ResetView() try: Line = orbitSettings[orbit]["Line"] v = Vi.GetView3D() v.viewNormal = (0, 0, 1) v.viewUp = (0, 1, 0) Degrees = 0 while 360.0 > Degrees: # Turning shading False yields black images. Image.Save(Shading=True) v.RotateAxis(Line, Increment) Vi.SetView3D(v) Degrees += Increment except Exception: pass
"""Script for saving the changed attribute files """ import visit as vi view_attr_file = 'view_attr.xml' annotation_attr_file = 'anno_attr.xml' plasma_attr_file = 'plasma_attr.xml' wave_attr_file = 'wave_attr.xml' vi.SaveAttribute(view_attr_file, vi.GetView3D()) vi.SaveAttribute(annotation_attr_file, vi.GetAnnotationAttributes()) vi.SetActivePlots(0) vi.SaveAttribute(plasma_attr_file, vi.GetPlotOptions()) vi.SetActivePlots(1) vi.SaveAttribute(wave_attr_file, vi.GetPlotOptions())