#!/usr/bin/python import sys import os import re # =============================== sys.path.append("/usr/local/visit/2.9.1/linux-x86_64/lib/site-packages/visit") import visit file_in = sys.argv[1] cur_dir = os.getcwd() file_input = os.path.join(cur_dir, file_in) visit.Launch() visit.OpenDatabase(file_input) visit.AddPlot("Mesh", "ESSI Domain Mesh") # visit.AddPlot("Pseudocolor","Generalized Displacemnets") visit.AddPlot("Pseudocolor", "Generalized Displacements_magnitude") visit.DrawPlots() # Generalized_Displacements # # save picture option h5_filename = os.path.basename(file_input) out_filename = re.split(r'\.(?!\d)', h5_filename) out_filename = out_filename[0] # print out_filename s = visit.SaveWindowAttributes()
def __init__(self): Window.__init__(self) visit.OpenDatabase(db) visit.AddPlot("Pseudocolor", "d") visit.DrawPlots()
def make_moving_frame_of_reference_line_plot(point1, point2, velocity, variable_name, input_directory, input_file_name, output_directory, output_file_name, start_frame=-1, end_frame=-1, frame_skip_dt=1.0): ''' Function for making a line plot of some variable with a moving frame of reference :param point1 The starting point of the line (must be an array of size 3) :param point2 The ending point of the line (must be an array of size 3) :param velocity The velocity vector of the frame of reference (must be an array of size 3) :param variable_name Name of the variable (For ex \"rho\") :param input_directory The path to the directory where the files are :param input_file_name Name of the files (For ex \"bulk.*.silo\") :param output_directory Directory where to output the movie :param output_file_name Name of the outputted file (For ex \"RHOMOVIE\") :param start_frame Starting frame for the movie (if -1, equals 0, -1 by default) :param end_frame Ending frame for the movie (if -1, equals the last frame, -1 by default) :param frame_skip_dt The number of seconds one skip in frame equals (1.0 by default) (Note: This may change depending on the run and should always be checked) ''' if len(point1) != 3 or len(point2) != 3 or len(velocity) != 3: print "BAD INPUT IN make_moving_frame_of_reference_line_plot, POINT1, POINT2 AND VELOCITY MUST BE ARRAYS OF SIZE 3" # OPTIONS ################################################################# # Input the boundary box for starting coordinates (Starting values) startX = point1[0] # The left x-boundary of the box endX = point2[0] # The right x-boundary of the box startY = point1[1] # The bottom y-boundary of the box endY = point2[1] # The upper y-boundary of the box startZ = poin1[2] # The left z-boundary of the box endZ = point2[2] # The right z-boundary of the box # Input frame properties startFrame = start_frame # Note: if startFrame is set to -1 the start frame gets set to 0 endFrame = end_frame # Note: if endFrame is set to -1 the endFrame is automatically the number of frames in the database frameInSeconds = frame_skip_dt # Set how many seconds one frame skip is screenWidth = 3000 screenHeight = 3000 # Input speed in x and y direction speedX = velocity[0] # Meters per second speedY = velocity[1] # Meters per second speedZ = velocity[2] # Meters per second # Input variable name # Note: needs to have operators/Lineout/ for visit to recognize it as line plot. Additionally, visit does not accept any '/' in the variable name which is why they're removed. The curve definitions are in loadvisitsettings.py and in there the curve expressions are defined so that there's no '/' in the variable name variableName = "operators/Lineout/" + variable_name.replace("/", "") # Input directory and file names outputDir = output_directory # Set the output directory (Where .png s are saved) outputFileName = output_file_name # The file names for the png files. These for ex. will be saved visit0000.png, visit0001.png, .. databaseName = "localhost:" + input_directory + input_file_name + " database" # For navigating to the silo files # visitBinDirectory = "/usr/lvariableNameocal/visit/bin" #Nevermind this # Note: a slice of the plot in z-axis is taken automatically ################################################################# dx = speedX * frameInSeconds # Note: This is in meters per frame! dy = speedY * frameInSeconds # Note: This is in meters per frame! dz = speedZ * frameInSeconds # Note: This is in meters per frame! vis.OpenDatabase(databaseName, 0) #Load settings visSettings.load_visit_settings() vis.AddPlot("Curve", variableName, 1, 1) vis.LineoutAtts = vis.LineoutAttributes() vis.LineoutAtts.point1 = (startX, startY, 0) vis.LineoutAtts.point2 = (endX, endY, 0) vis.LineoutAtts.interactive = 0 vis.LineoutAtts.ignoreGlobal = 0 vis.LineoutAtts.samplingOn = 0 vis.LineoutAtts.numberOfSamplePoints = 50 vis.LineoutAtts.reflineLabels = 0 vis.SetOperatorOptions(vis.LineoutAtts, 1) vis.CurveAtts = vis.CurveAttributes() vis.CurveAtts.showLines = 1 vis.CurveAtts.lineStyle = vis.CurveAtts.SOLID # SOLID, DASH, DOT, DOTDASH vis.CurveAtts.lineWidth = 2 vis.CurveAtts.showPoints = 1 vis.CurveAtts.symbol = vis.CurveAtts.Point # Point, TriangleUp, TriangleDown, Square, Circle, Plus, X vis.CurveAtts.pointSize = 5 vis.CurveAtts.pointFillMode = vis.CurveAtts.Static # Static, Dynamic vis.CurveAtts.pointStride = 1 vis.CurveAtts.symbolDensity = 50 vis.CurveAtts.curveColorSource = vis.CurveAtts.Custom # Cycle, Custom vis.CurveAtts.curveColor = (0, 0, 0, 255) vis.CurveAtts.showLegend = 1 vis.CurveAtts.showLabels = 0 vis.CurveAtts.designator = "" vis.CurveAtts.doBallTimeCue = 0 vis.CurveAtts.ballTimeCueColor = (0, 0, 0, 255) vis.CurveAtts.timeCueBallSize = 0.01 vis.CurveAtts.doLineTimeCue = 0 vis.CurveAtts.lineTimeCueColor = (0, 0, 0, 255) vis.CurveAtts.lineTimeCueWidth = 0 vis.CurveAtts.doCropTimeCue = 0 vis.CurveAtts.timeForTimeCue = 0 vis.SetPlotOptions(vis.CurveAtts) vis.DrawPlots() # Iterate through frames for i in xrange(startFrame, endFrame + 1): vis.SetTimeSliderState(i) frame = i - startFrame vis.LineoutAtts = vis.LineoutAttributes() vis.LineoutAtts.point1 = (startX + frame * dx, startY + frame * dy, 0) vis.LineoutAtts.point2 = (endX + frame * dx, endY + frame * dy, 0) vis.LineoutAtts.interactive = 0 vis.LineoutAtts.ignoreGlobal = 0 vis.LineoutAtts.samplingOn = 0 vis.LineoutAtts.numberOfSamplePoints = 50 vis.LineoutAtts.reflineLabels = 0 vis.SetOperatorOptions(vis.LineoutAtts, 1) vis.SaveWindowAtts = vis.SaveWindowAttributes() vis.SaveWindowAtts.outputToCurrentDirectory = 0 vis.SaveWindowAtts.outputDirectory = outputDir vis.SaveWindowAtts.fileName = outputFileName vis.SaveWindowAtts.family = 1 vis.SaveWindowAtts.format = vis.SaveWindowAtts.PNG # BMP, CURVE, JPEG, OBJ, PNG, POSTSCRIPT, POVRAY, PPM, RGB, STL, TIFF, ULTRA, VTK, PLY vis.SaveWindowAtts.width = screenWidth vis.SaveWindowAtts.height = screenHeight vis.SaveWindowAtts.screenCapture = 0 vis.SaveWindowAtts.saveTiled = 0 vis.SaveWindowAtts.quality = 80 vis.SaveWindowAtts.progressive = 0 vis.SaveWindowAtts.binary = 0 vis.SaveWindowAtts.stereo = 0 vis.SaveWindowAtts.compression = vis.SaveWindowAtts.PackBits # None, PackBits, Jpeg, Deflate vis.SaveWindowAtts.forceMerge = 0 vis.SaveWindowAtts.resConstraint = vis.SaveWindowAtts.ScreenProportions # NoConstraint, EqualWidthHeight, ScreenProportions vis.SaveWindowAtts.advancedMultiWindowSave = 0 vis.SetSaveWindowAttributes(vis.SaveWindowAtts) vis.SaveWindow() vis.DeleteActivePlots() vis.CloseDatabase(databaseName) # Make the movie: framerate = 5 subprocess.call([ pythonLibDirectoryPath + pyVisitPath + "moviecompilescript.sh", outputDir, outputFileName, framerate ])
l1 = [(0, -0.0305 / 2, 5.11), (0, 0.0305 / 2, 5.11)] locations = [l1] for case in cases: for sim in sims: filename = input_folder + case + "/" + sim + '/01_VISIT/' + sim + '_*_average.case' for db in sorted(glob.glob(filename), key=numericalSort): print "Current File Being Processed is: " + db aux = [int(x) for x in numbers.findall(db)] timestep = str(aux[-1]).zfill(6) visit.OpenDatabase(db) for variable in variables: i = 0 for location in locations: i += 1 LineoutAtts = visit.LineoutAttributes() LineoutAtts.point1 = location[0] LineoutAtts.point2 = location[1] LineoutAtts.samplingOn = 1 LineoutAtts.numberOfSamplePoints = 1000
def setUp(self): visit.OpenDatabase(db) visit.AddPlot("Pseudocolor","d") visit.DrawPlots()
def visit_plot_pseudocolor_2d(xdmf_path, name, value_range=(-5.0, 5.0), curve2d_paths=None, config_view=None, out_dir=os.getcwd(), out_prefix=None, figsize=(1024, 1024), state=None, states=None, states_range=[0, None, 1]): visit_initialize() # Create database correlation with optional Curve2D files. num_bodies = 0 databases = [str(xdmf_path)] if curve2d_paths is not None: num_bodies = len(curve2d_paths) databases = [str(path) for path in curve2d_paths] databases.append(str(xdmf_path)) visit.CreateDatabaseCorrelation('common', databases[num_bodies:], 0) # Open the file with the coordinates of the immersed boundary. if num_bodies > 0: for i in range(num_bodies): visit.OpenDatabase(databases[i], 0) # Add plot the mesh points. visit.AddPlot('Curve', 'curve', 1, 1) # Set attributes of the curve. CurveAtts = visit.CurveAttributes() CurveAtts.lineWidth = 1 CurveAtts.curveColorSource = CurveAtts.Custom CurveAtts.curveColor = (0, 0, 0, 255) CurveAtts.showLegend = 0 CurveAtts.showLabels = 0 visit.SetPlotOptions(CurveAtts) # Open the XMF file for the spanwise-averaged z-component of the vorticity. visit.OpenDatabase(databases[-1], 0) # Add a pseudocolor plot of the scalar field. visit.AddPlot('Pseudocolor', name, 1, 1) # Set attributes of the pseudocolor. PseudocolorAtts = visit.PseudocolorAttributes() PseudocolorAtts.minFlag = 1 PseudocolorAtts.min = value_range[0] PseudocolorAtts.maxFlag = 1 PseudocolorAtts.max = value_range[1] PseudocolorAtts.colorTableName = 'viridis' visit.SetPlotOptions(PseudocolorAtts) # Parse the 2D view configuration file. if config_view is not None: View2DAtts = visit_get_view(config_view, '2D') visit.SetView2D(View2DAtts) # Remove time and user info. AnnotationAtts = visit.AnnotationAttributes() AnnotationAtts.userInfoFlag = 0 AnnotationAtts.timeInfoFlag = 1 visit.SetAnnotationAttributes(AnnotationAtts) visit.SetActiveWindow(1) states = visit_get_states(state=state, states=states, states_range=states_range) if out_prefix is None: out_prefix = name + '_' visit_render_save_states(states, out_dir=out_dir, out_prefix=out_prefix, figsize=figsize) visit_finalize() return
def visit_plot_qcrit_wx_3d(xdmf_dir, wx_range=(-5.0, 5.0), q_value=0.1, config_view=None, out_dir=os.getcwd(), out_prefix='qcrit_wx_', figsize=(1024, 1024), state=None, states=None, states_range=[0, None, 1]): visit_initialize() # Define some variables to get the q_crit and wx_cc. p_xdmf_path = os.path.join(str(xdmf_dir), 'p.xmf') visit.OpenDatabase(p_xdmf_path, 0) # Define cell-centered velocity vector field. ux_xdmf_path = os.path.join(str(xdmf_dir), 'u.xmf') uy_xdmf_path = os.path.join(str(xdmf_dir), 'v.xmf') uz_xdmf_path = os.path.join(str(xdmf_dir), 'w.xmf') vel_expr = ('{' + 'pos_cmfe(<{}[0]id:u>, <p Grid>, 1.0),'.format(ux_xdmf_path) + 'pos_cmfe(<{}[0]id:v>, <p Grid>, 0.0),'.format(uy_xdmf_path) + 'pos_cmfe(<{}[0]id:w>, <p Grid>, 0.0)'.format(uz_xdmf_path) + '}') visit.DefineVectorExpression('velocity', vel_expr) # Define Q-criterion. qcrit_expr = ('q_criterion(' + 'gradient(velocity[0]),' + 'gradient(velocity[1]),' + 'gradient(velocity[2])' + ')') visit.DefineScalarExpression('q_crit', qcrit_expr) # Define cell-centered streamwise vorticity. wx_xdmf_path = os.path.join(str(xdmf_dir), 'wx.xmf') wx_exp = 'pos_cmfe(<{}[0]id:wx>, <p Grid>, 0.0)'.format(wx_xdmf_path) visit.DefineScalarExpression('wx_cc', wx_exp) # Add a pseudocolor of the cell-centered streamwise vorticity. visit.AddPlot('Pseudocolor', 'wx_cc', 1, 1) PseudocolorAtts = visit.PseudocolorAttributes() PseudocolorAtts.minFlag = 1 PseudocolorAtts.min = wx_range[0] PseudocolorAtts.maxFlag = 1 PseudocolorAtts.max = wx_range[1] PseudocolorAtts.colorTableName = 'viridis' PseudocolorAtts.invertColorTable = 0 PseudocolorAtts.opacityType = PseudocolorAtts.Constant PseudocolorAtts.opacity = 0.8 PseudocolorAtts.legendFlag = 0 visit.SetPlotOptions(PseudocolorAtts) # Add an isosurface of the Q-criterion. visit.AddOperator('Isosurface', 1) IsosurfaceAtts = visit.IsosurfaceAttributes() IsosurfaceAtts.variable = 'q_crit' IsosurfaceAtts.contourMethod = IsosurfaceAtts.Value IsosurfaceAtts.contourValue = (q_value) IsosurfaceAtts.scaling = IsosurfaceAtts.Linear visit.SetOperatorOptions(IsosurfaceAtts, 1) # Remove info about user, time, database, and legend. AnnotationAtts = visit.AnnotationAttributes() AnnotationAtts.userInfoFlag = 0 AnnotationAtts.databaseInfoFlag = 0 AnnotationAtts.timeInfoFlag = 0 AnnotationAtts.legendInfoFlag = 0 AnnotationAtts.axes3D.visible = 0 AnnotationAtts.axes3D.triadFlag = 1 AnnotationAtts.axes3D.bboxFlag = 0 visit.SetAnnotationAttributes(AnnotationAtts) # Parse the 3D view configuration file. if config_view is not None: View3DAtts = visit_get_view(config_view, '3D') visit.SetView3D(View3DAtts) visit.SetActiveWindow(1) states = visit_get_states(state=state, states=states, states_range=states_range) visit_render_save_states(states, out_dir=out_dir, out_prefix=out_prefix, figsize=figsize) visit_finalize() return
def setUp(self): self.data_path = pjoin(tests_dir, "_data", "rect2d.silo") visit.OpenDatabase(self.data_path) print ""
import time import sys sys.path.append("/home/tbent/packages/visit2_7_0/2.7.0/linux-x86_64/lib/site-packages/") import visit visit.Launch('/home/tbent/packages/visit2_7_0/bin/') filename_prefix = 'solution_' filename_prefix = 'init_refinement_' for i in range(12): time.sleep(0.5) visit.DeleteAllPlots() visit.OpenDatabase('./data/test/' + filename_prefix + str(i) + '.0000.pvtu') visit.DefineScalarExpression('logabsoldszx', 'log(abs(old_szx))') # visit.AddPlot('Pseudocolor', 'logabsoldszx') visit.AddPlot('Pseudocolor', 'vel') # visit.AddPlot('Mesh', 'mesh') visit.DrawPlots()
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/globe.silo") vs.DefineScalarExpression("myvar", "sin(u) + cos(w)") # Plot the scalar expression variable. vs.AddPlot("Pseudocolor", "myvar") vs.DrawPlots() # Plot a vector expression variable. vs.DefineVectorExpression("myvec", "{u,v,w}") vs.AddPlot("Vector", "myvec") vs.DrawPlots() d = input('Press anything to quit')
databaseName = "movie.visit" variableName = "n1" valMin = 0.5 valMax = 2.5 colorTableName = "gray" xlo = 0 # domain range xhi = 256 ylo = 0 yhi = 256 width = 256 # image size height = 256 filename = "test" # image filename prefix # visit script visit.OpenDatabase(databaseName) visit.AddPlot("Pseudocolor", variableName) pa = visit.PseudocolorAttributes() pa.minFlag = 1 pa.min = valMin pa.maxFlag = 1 pa.max = valMax pa.colorTableName = colorTableName visit.SetPlotOptions(pa) aa = visit.AnnotationAttributes() aa.axes2D.visible = 0 aa.userInfoFlag = 0 aa.databaseInfoFlag = 0 aa.legendInfoFlag = 0
def make_distribution_movie(cellids, rotated, inputDirectory, outputDirectory, outputFileName, zoom=1.0, viewNormal=[0.488281, 0.382966, -0.784167], minThreshold=1e-18, maxThreshold=1e37): '''Makes a distribution movie of some given distribution data Example usage: make_distribution_movie(cellids=[18302, 19432, 19042], rotated=True, inputDirectory=\"/home/hannukse/meteo/stornext/field/vlasiator/2D/AAJ/silo_files/\", outputDirectory=\"/home/hannukse/MOVIES/\", outputFileName=\"testmovie\", zoom=0.8, viewNormal=[0.488281, 0.382966, -0.784167], minThreshold=1e-17, maxThreshold=1.2e37) Note: viewNormal determines the angle of view (straight from visit) ''' if len(viewNormal) != 3: print "ERROR, INVALID VIEWNORMAL LENGTH, SHOULD BE 3" return for cell in sorted(cellids): # OPTIONS ########################################################### cellid = str(cell) #databaseName = "localhost:/home/hannukse/meteo/lustre/tmp/hannuksela/AAM/velgrid.rotated." + cellid + ".*.silo database" if rotated == True: rotateFix = "rotated." else: rotateFix = "" inputFileName = "velgrid." + rotateFix + cellid + ".*.silo" databaseName = "localhost:" + inputDirectory + inputFileName + " database" outputDir = outputDirectory fileName = outputFileName + "_" + cellid + "_" WIDTH = 3000 HEIGHT = 3000 # Threshold values: # TODO: USE VLSV READER TO AUTOMATE THIS minimumThreshold = minThreshold maximumThreshold = maxThreshold ########################################################### vis.OpenDatabase(databaseName, 0) #Load settings visSettings.load_visit_settings() #Make a plot vis.AddPlot("Pseudocolor", "avgs", 1, 1) vis.SetActivePlots(0) vis.AddOperator("Threshold", 1) vis.ThresholdAtts = vis.ThresholdAttributes() vis.ThresholdAtts.outputMeshType = 0 vis.ThresholdAtts.listedVarNames = ("default") vis.ThresholdAtts.zonePortions = (1) vis.ThresholdAtts.lowerBounds = (minimumThreshold) vis.ThresholdAtts.upperBounds = (maximumThreshold) vis.ThresholdAtts.defaultVarName = "avgs" vis.ThresholdAtts.defaultVarIsScalar = 1 vis.SetOperatorOptions(vis.ThresholdAtts, 1) vis.DrawPlots() # Begin spontaneous state vis.View3DAtts = vis.View3DAttributes() vis.View3DAtts.viewNormal = (viewNormal[0], viewNormal[1], viewNormal[2]) vis.View3DAtts.focus = (-634.56, 91.3781, -13.7891) vis.View3DAtts.viewUp = (-0.102795, 0.917551, 0.3841) vis.View3DAtts.viewAngle = 30 vis.View3DAtts.parallelScale = 1.45614e+06 vis.View3DAtts.nearPlane = -2.91228e+06 vis.View3DAtts.farPlane = 2.91228e+06 vis.View3DAtts.imagePan = (0, 0) vis.View3DAtts.imageZoom = zoom vis.View3DAtts.perspective = 1 vis.View3DAtts.eyeAngle = 2 vis.View3DAtts.centerOfRotationSet = 0 vis.View3DAtts.centerOfRotation = (-634.56, 91.3781, -13.7891) vis.View3DAtts.axis3DScaleFlag = 0 vis.View3DAtts.axis3DScales = (1, 1, 1) vis.View3DAtts.shear = (0, 0, 1) vis.SetView3D(vis.View3DAtts) # End spontaneous state vis.ViewCurveAtts = vis.ViewCurveAttributes() vis.ViewCurveAtts.domainCoords = (0, 1) vis.ViewCurveAtts.rangeCoords = (0, 1) vis.ViewCurveAtts.viewportCoords = (0.2, 0.95, 0.15, 0.95) vis.ViewCurveAtts.domainScale = vis.ViewCurveAtts.LINEAR # LINEAR, LOG vis.ViewCurveAtts.rangeScale = vis.ViewCurveAtts.LINEAR # LINEAR, LOG vis.SetViewCurve(vis.ViewCurveAtts) vis.View2DAtts = vis.View2DAttributes() vis.View2DAtts.windowCoords = (0, 1, 0, 1) vis.View2DAtts.viewportCoords = (0.2, 0.95, 0.15, 0.95) vis.View2DAtts.fullFrameActivationMode = vis.View2DAtts.Auto # On, Off, Auto vis.View2DAtts.fullFrameAutoThreshold = 100 vis.View2DAtts.xScale = vis.View2DAtts.LINEAR # LINEAR, LOG vis.View2DAtts.yScale = vis.View2DAtts.LINEAR # LINEAR, LOG vis.View2DAtts.windowValid = 0 vis.SetView2D(vis.View2DAtts) vis.View3DAtts = vis.View3DAttributes() vis.View3DAtts.viewNormal = (viewNormal[0], viewNormal[1], viewNormal[2]) vis.View3DAtts.focus = (-634.56, 91.3781, -13.7891) vis.View3DAtts.viewUp = (-0.102795, 0.917551, 0.3841) vis.View3DAtts.viewAngle = 30 vis.View3DAtts.parallelScale = 1.45614e+06 vis.View3DAtts.nearPlane = -2.91228e+06 vis.View3DAtts.farPlane = 2.91228e+06 vis.View3DAtts.imagePan = (0, 0) vis.View3DAtts.imageZoom = zoom vis.View3DAtts.perspective = 1 vis.View3DAtts.eyeAngle = 2 vis.View3DAtts.centerOfRotationSet = 0 vis.View3DAtts.centerOfRotation = (-634.56, 91.3781, -13.7891) vis.View3DAtts.axis3DScaleFlag = 0 vis.View3DAtts.axis3DScales = (1, 1, 1) vis.View3DAtts.shear = (0, 0, 1) vis.SetView3D(vis.View3DAtts) vis.ViewAxisArrayAtts = vis.ViewAxisArrayAttributes() vis.ViewAxisArrayAtts.domainCoords = (0, 1) vis.ViewAxisArrayAtts.rangeCoords = (0, 1) vis.ViewAxisArrayAtts.viewportCoords = (0.15, 0.9, 0.1, 0.85) vis.SetViewAxisArray(vis.ViewAxisArrayAtts) for i in range(0, vis.GetDatabaseNStates()): vis.SetTimeSliderState(i) vis.SaveWindowAtts = vis.SaveWindowAttributes() vis.SaveWindowAtts.outputToCurrentDirectory = 0 vis.SaveWindowAtts.outputDirectory = outputDir vis.SaveWindowAtts.fileName = fileName vis.SaveWindowAtts.family = 1 vis.SaveWindowAtts.format = vis.SaveWindowAtts.PNG # BMP, CURVE, JPEG, OBJ, PNG, POSTSCRIPT, POVRAY, PPM, RGB, STL, TIFF, ULTRA, VTK, PLY vis.SaveWindowAtts.width = WIDTH vis.SaveWindowAtts.height = HEIGHT vis.SaveWindowAtts.screenCapture = 0 vis.SaveWindowAtts.saveTiled = 0 vis.SaveWindowAtts.quality = 100 vis.SaveWindowAtts.progressive = 0 vis.SaveWindowAtts.binary = 0 vis.SaveWindowAtts.stereo = 0 vis.SaveWindowAtts.compression = vis.SaveWindowAtts.PackBits # None, PackBits, Jpeg, Deflate vis.SaveWindowAtts.forceMerge = 0 vis.SaveWindowAtts.resConstraint = vis.SaveWindowAtts.ScreenProportions # NoConstraint, EqualWidthHeight, ScreenProportions vis.SaveWindowAtts.advancedMultiWindowSave = 0 vis.SetSaveWindowAttributes(vis.SaveWindowAtts) vis.SaveWindow() vis.DeleteActivePlots() vis.CloseDatabase(databaseName) # Make the movie: framerate = 5 subprocess.call([ pythonLibDirectoryPath + pyVisitPath + "moviecompilescript.sh", outputDir, fileName, framerate ])
def draw_mesh(gridname): print 'Opening database...' visit.OpenDatabase(gridname) visit.AddPlot('Mesh', 'mesh')
import sys import time import scipy import scipy.io import scipy.interpolate import numpy as np import string import datetime sys.path.append( '/home/ubuntu/visit2_12_2.linux-x86_64/2.12.2/linux-x86_64/lib/site-packages/' ) import visit visit.LaunchNowin() visit.OpenDatabase('solution.visit') visit.AddPlot("Pseudocolor", "pressure") visit.DrawPlots() times = pickle.load(open('output.pkl', 'rb'))['times'] model = pickle.load(open('model.pkl', 'rb'))['model'] datacols = {} datacols['pf'] = 4 datacols['ux'] = 1 datacols['uy'] = 2 datacols['uz'] = 3 datacols['exx'] = 11 datacols['eyy'] = 12 datacols['ezz'] = 13
import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D from MeshClass import * from DataClass import * from CaseClass import * Loc = "OpenFoamCases/" Files = ['elbow/','Coutte_Flow_40x40-FixedTemperature/','forwardStep/'] Loc = Loc + Files[0] # Reading Mesh Data and Evaluating the initail points case = Case() case.loadOpenFoamFile(Loc) case.print_output_vtk() # visit sys.path.append("/home/neo/visit/2.11.0/linux-x86_64/lib/site-packages") import visit as vs vs.Launch() vs.OpenDatabase("Results/results-time-10.vtk") vs.AddPlot("Pseudocolor", 'X-Velocity') vs.AddPlot("Mesh","X-Velocity") vs.DrawPlots() vs.SaveWindow() d = input('Press anything to quit')
def make_moving_frame_of_reference_movie( x_begin, x_end, y_begin, y_end, speed_x, speed_y, variable_name, minThreshold, maxThreshold, input_directory, input_file_name, output_directory, output_file_name, color_table="hot_desaturated", start_frame=-1, end_frame=-1, frame_skip_dt=1.0 ): ''' Function for making a movie with a moving frame of reference. :param x_begin The starting frame's beginning x-coordinate :param x_end The starting frame's ending x-coordinate :param y_begin The starting frame's beginning x-coordinate :param y_end The starting frame's ending y-coordinate :param speed_x The speed at which the frame moves in the x direction :param speed_y The speed at which the frame moves in the y direction :param variable_name Name of the variable (For ex \"rho\") :param minThreshold Minimum threshold for the variable :param maxThreshold Maximum threshold for the variable :param input_directory The path to the directory where the files are :param input_file_name Name of the files (For ex \"bulk.*.silo\") :param output_directory Directory where to output the movie :param output_file_name Name of the outputted file (For ex \"RHOMOVIE\") :param color_table Name of the color table (\"hot_desaturated\" by default) :param start_frame Starting frame for the movie (if -1, equals 0, -1 by default) :param end_frame Ending frame for the movie (if -1, equals the last frame, -1 by default) :param frame_skip_dt The number of seconds one skip in frame equals (1.0 by default) (Note: This may change depending on the run and should always be checked) ''' # OPTIONS ################################################################# # Input the boundary box for starting coordinates (Starting values) startX = x_begin # The left x-boundary of the box endX = x_end # The right x-boundary of the box startY = y_begin # The bottom y-boundary of the box endY = y_end # The upper y-boundary of the box # Input frame properties startFrame = start_frame # Note: if startFrame is set to -1 the start frame gets set to 0 endFrame = end_frame # Note: if endFrame is set to -1 the endFrame is automatically the number of frames in the database frameInSeconds = frame_skip_dt # Set how many seconds one frame skip is # Input speed in x and y direction speedX = speed_x # Meters per second speedY = speed_y # Meters per second # Input variable variableName = variable_name minVariableValue = minThreshold maxVariableValue = maxThreshold colorTableName = color_table # Input directory and file names outputDir = output_directory # Set the output directory (Where .png s are saved) outputFileName = output_file_name # The file names for the png files. These for ex. will be saved visit0000.png, visit0001.png, . databaseName = "localhost:" + input_directory + input_file_name + " database" # For navigating to the silo files # visitBinDirectory = "/usr/local/visit/bin" #Nevermind this # Note: a slice of the plot in z-axis is taken automatically ################################################################# # Launch visit visitBinDirectory = '/home/htest/visit/bin' vis.LaunchNowin(vdir=visitBinDirectory) dx = speedX * frameInSeconds # Note: This is in meters per frame! dy = speedY * frameInSeconds # Note: This is in meters per frame! #Set up window and annotations vis.OpenDatabase(databaseName, 0) #Load settings visSettings.load_visit_settings() vis.AddPlot("Pseudocolor", variableName, 1, 1) vis.SetActivePlots(0) vis.PseudocolorAtts = vis.PseudocolorAttributes() vis.PseudocolorAtts.legendFlag = 1 vis.PseudocolorAtts.lightingFlag = 1 vis.PseudocolorAtts.minFlag = 1 vis.PseudocolorAtts.maxFlag = 1 vis.PseudocolorAtts.centering = vis.PseudocolorAtts.Natural # Natural, Nodal, Zonal vis.PseudocolorAtts.scaling = vis.PseudocolorAtts.Linear # Linear, Log, Skew vis.PseudocolorAtts.limitsMode = vis.PseudocolorAtts.CurrentPlot # OriginalData, CurrentPlot vis.PseudocolorAtts.min = minVariableValue vis.PseudocolorAtts.max = maxVariableValue vis.PseudocolorAtts.pointSize = 0.05 vis.PseudocolorAtts.pointType = vis.PseudocolorAtts.Point # Box, Axis, Icosahedron, Point, Sphere vis.PseudocolorAtts.skewFactor = 1 vis.PseudocolorAtts.opacity = 1 vis.PseudocolorAtts.colorTableName = color_table vis.PseudocolorAtts.invertColorTable = 0 vis.PseudocolorAtts.smoothingLevel = 0 vis.PseudocolorAtts.pointSizeVarEnabled = 0 vis.PseudocolorAtts.pointSizeVar = "default" vis.PseudocolorAtts.pointSizePixels = 2 vis.PseudocolorAtts.lineStyle = vis.PseudocolorAtts.SOLID # SOLID, DASH, DOT, DOTDASH vis.PseudocolorAtts.lineWidth = 0 vis.PseudocolorAtts.opacityType = vis.PseudocolorAtts.Explicit # Explicit, ColorTable vis.SetPlotOptions(vis.PseudocolorAtts) vis.SetActivePlots(0) vis.AddOperator("Slice", 1) vis.AddOperator("Threshold", 1) vis.ThresholdAtts = vis.ThresholdAttributes() vis.ThresholdAtts.outputMeshType = 0 vis.ThresholdAtts.listedVarNames = ("Boundary_type") vis.ThresholdAtts.zonePortions = (1) vis.ThresholdAtts.lowerBounds = (1) vis.ThresholdAtts.upperBounds = (1) vis.ThresholdAtts.defaultVarName = variableName vis.ThresholdAtts.defaultVarIsScalar = 1 vis.SetOperatorOptions(vis.ThresholdAtts, 1) vis.ThresholdAtts = vis.ThresholdAttributes() vis.ThresholdAtts.outputMeshType = 0 vis.ThresholdAtts.listedVarNames = ("Boundary_type") vis.ThresholdAtts.zonePortions = (1) vis.ThresholdAtts.lowerBounds = (1) vis.ThresholdAtts.upperBounds = (1) vis.ThresholdAtts.defaultVarName = variableName vis.ThresholdAtts.defaultVarIsScalar = 1 vis.SetOperatorOptions(vis.ThresholdAtts, 1) vis.SetActivePlots(0) vis.SliceAtts = vis.SliceAttributes() vis.SliceAtts.originType = vis.SliceAtts.Intercept # Point, Intercept, Percent, Zone, Node vis.SliceAtts.originPoint = (0, 0, 0) vis.SliceAtts.originIntercept = 0 vis.SliceAtts.originPercent = 0 vis.SliceAtts.originZone = 0 vis.SliceAtts.originNode = 0 vis.SliceAtts.normal = (0, 0, 1) vis.SliceAtts.axisType = vis.SliceAtts.ZAxis # XAxis, YAxis, ZAxis, Arbitrary, ThetaPhi vis.SliceAtts.upAxis = (0, 1, 0) vis.SliceAtts.project2d = 1 vis.SliceAtts.interactive = 1 vis.SliceAtts.flip = 0 vis.SliceAtts.originZoneDomain = 0 vis.SliceAtts.originNodeDomain = 0 vis.SliceAtts.meshName = "SpatialGrid" vis.SliceAtts.theta = 0 vis.SliceAtts.phi = 90 vis.SetOperatorOptions(vis.SliceAtts, 1) vis.DrawPlots() if endFrame == -1: endFrame = vis.TimeSliderGetNStates() - 1 if startFrame == -1: startFrame = 0 # Iterate through frames for i in range(startFrame, endFrame+1): vis.SetTimeSliderState(i) frame = i - startFrame vis.View2DAtts = vis.View2DAttributes() vis.View2DAtts.windowCoords = (startX + frame*dx, endX + frame*dx, startY + frame*dy, endY + frame*dy) vis.View2DAtts.viewportCoords = (0.2, 0.95, 0.15, 0.95) vis.View2DAtts.fullFrameActivationMode = vis.View2DAtts.Auto # On, Off, Auto vis.View2DAtts.fullFrameAutoThreshold = 100 vis.View2DAtts.xScale = vis.View2DAtts.LINEAR # LINEAR, LOG vis.View2DAtts.yScale = vis.View2DAtts.LINEAR # LINEAR, LOG vis.View2DAtts.windowValid = 1 vis.SetView2D(vis.View2DAtts) vis.SaveWindowAtts = vis.SaveWindowAttributes() vis.SaveWindowAtts.outputToCurrentDirectory = 0 vis.SaveWindowAtts.outputDirectory = outputDir vis.SaveWindowAtts.fileName = outputFileName vis.SaveWindowAtts.family = 1 vis.SaveWindowAtts.format = vis.SaveWindowAtts.PNG # BMP, CURVE, JPEG, OBJ, PNG, POSTSCRIPT, POVRAY, PPM, RGB, STL, TIFF, ULTRA, VTK, PLY vis.SaveWindowAtts.width = 1024 vis.SaveWindowAtts.height = 1024 vis.SaveWindowAtts.screenCapture = 0 vis.SaveWindowAtts.saveTiled = 0 vis.SaveWindowAtts.quality = 100 vis.SaveWindowAtts.progressive = 0 vis.SaveWindowAtts.binary = 0 vis.SaveWindowAtts.stereo = 0 vis.SaveWindowAtts.compression = vis.SaveWindowAtts.PackBits # None, PackBits, Jpeg, Deflate vis.SaveWindowAtts.forceMerge = 0 vis.SaveWindowAtts.resConstraint = vis.SaveWindowAtts.ScreenProportions # NoConstraint, EqualWidthHeight, ScreenProportions vis.SaveWindowAtts.advancedMultiWindowSave = 0 vis.SetSaveWindowAttributes(vis.SaveWindowAtts) vis.SaveWindow() vis.DeleteActivePlots() vis.CloseDatabase(databaseName) # Make the movie: framerate = 7 subprocess.call([pythonLibDirectoryPath + pyVisitPath + "moviecompilescript.sh", outputDir, outputFileName, framerate])
default=os.getcwd(), help='Output directory') pr.add_argument('-fname', type=str, default='line', help='Output filename (without extension)') return pr.parse_args() if __name__ == '__main__': args = get_args() # Open either a database or a single file if '*' in args.database: print("database found") v.OpenDatabase(args.database + ' database', 0) else: v.OpenDatabase(args.database) v.AddPlot("Curve", "operators/Lineout/" + args.varname, 1, 1) LineoutAtts = v.LineoutAttributes() LineoutAtts.point1 = tuple(args.r0) LineoutAtts.point2 = tuple(args.r1) LineoutAtts.interactive = 0 LineoutAtts.ignoreGlobal = 0 v.SetOperatorOptions(LineoutAtts, 1) v.DrawPlots() # Set output options
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 Svalinn logo in the bottom left corner of the plot. image = Vi.CreateAnnotationObject("Image") image.image = path.abspath(path.dirname(__file__)) + "/img/svalinn.png" image.position = (0.02, 0.02) image.width = 8 image.height = 8 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 = path.join(getcwd(), visit_output) # If the user has indicated to, open the session file with the VisIt GUI. if args.openvisit: 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: system("sleep 10; rm {}".format(session_file_path))
def visit_plot_contour_3d(xdmf_path, name, value_range=(-5.0, 5.0), p3d_paths=None, config_view=None, out_dir=os.getcwd(), out_prefix=None, figsize=(1024, 1024), state=None, states=None, states_range=[0, None, 1]): visit_initialize() # Create database correlation with optional Point3D files. num_bodies = 0 databases = [str(xdmf_path)] if p3d_paths is not None: num_bodies = len(p3d_paths) databases = [str(path) for path in p3d_paths] databases.append(str(xdmf_path)) visit.CreateDatabaseCorrelation('common', databases[num_bodies:], 0) # Open the file with the coordinates of the immersed boundary. if num_bodies > 0: for i in range(num_bodies): visit.OpenDatabase(databases[i], 0, 'Point3D_1.0') # Add plot the mesh points. visit.AddPlot('Mesh', 'points', 1, 1) # Set attributes of the mesh plot. MeshAtts = visit.MeshAttributes() MeshAtts.legendFlag = 0 MeshAtts.meshColor = (255, 204, 0, 1.0 * 255) MeshAtts.meshColorSource = MeshAtts.MeshCustom MeshAtts.pointSize = 0.05 MeshAtts.pointType = MeshAtts.Point MeshAtts.pointSizePixels = 2 MeshAtts.opacity = 1 visit.SetPlotOptions(MeshAtts) # Open the XMF file for the z-component of the vorticity. visit.OpenDatabase(databases[-1], 0) # Add the plot of the contour of the z-component of the vorticity. visit.AddPlot('Contour', name, 1, 1) # Set attributes of the contour. ContourAtts = visit.ContourAttributes() ContourAtts.contourNLevels = 2 ContourAtts.SetMultiColor(0, (0, 51, 102, 0.6 * 255)) ContourAtts.SetMultiColor(1, (255, 0, 0, 0.6 * 255)) ContourAtts.legendFlag = 1 ContourAtts.minFlag = 1 ContourAtts.maxFlag = 1 ContourAtts.min = value_range[0] ContourAtts.max = value_range[1] visit.SetPlotOptions(ContourAtts) # Parse the 3D view configuration file. if config_view is not None: View3DAtts = visit_get_view(config_view, '3D') visit.SetView3D(View3DAtts) # Remove time and user info. AnnotationAtts = visit.AnnotationAttributes() AnnotationAtts.userInfoFlag = 0 AnnotationAtts.timeInfoFlag = 0 AnnotationAtts.axes3D.visible = 0 AnnotationAtts.axes3D.triadFlag = 1 AnnotationAtts.axes3D.bboxFlag = 0 visit.SetAnnotationAttributes(AnnotationAtts) visit.SetActiveWindow(1) states = visit_get_states(state=state, states=states, states_range=states_range) if out_prefix is None: out_prefix = name + '_' visit_render_save_states(states, out_dir=out_dir, out_prefix=out_prefix, figsize=figsize) visit_finalize() return
def create_visit_point_movie(variableName, minValue, maxValue, inputDirectory, inputFileNames, coordinates, outputDirectory, outputFileName, colorTable="hot_desaturated"): ''' Function for making a movie Arguments: :param variableName Name of the variable :param minValue Minimum value of the variable :param maxValue Maximum value of the variable :param inputDirectory Path to input vlsv/silo files :param inputFileNames Name of the files for example [\"bulk.00000.silo\", \"bulk.00001.silo\"] :param coordinates Coordinates corresponding to the files so for example [ [[0,0,0], [0,1,0]], [[2,1,2], [2,1,4]] ] :param outputDirectory Path to output directory :param outputFileName Name of the output file :param colorTable="hot_desaturated" Color table for the plots ''' coordinates = [coordinates] for i in xrange(len(inputFileNames)): # OPTIONS ################################################################# # Input variable _variableName = variableName minVariableValue = minValue maxVariableValue = maxValue colorTableName = colorTable # Input directory and file names #_outputDir = "/home/hannukse/MOVINGFRAME_MOVIES/AAJ_BZ_REMAKE/" # Set the output directory (Where .png s are saved) _outputDir = outputDirectory #_outputFileName = "BZ_FORESHOCK_2_" # The file names for the png files. These for ex. will be saved visit0000.png, visit0001.png, .. _outputFileName = outputFileName # The file names for the png files. #databaseName = "localhost:/home/hannukse/meteo/stornext/field/vlasiator/2D/AAJ/silo_files/bulk.*.silo database" # For navigating to the silo files inputFileName = inputFileNames[i] databaseName = "localhost:" + inputDirectory + inputFileName # For navigating to the silo files # Note: a slice of the plot in z-axis is taken automatically ################################################################# # LaunchNowin(vdir=visitBinDirectory) #dx = speedX * frameInSeconds # Note: This is in meters per frame! #dy = speedY * frameInSeconds # Note: This is in meters per frame! #LaunchNowin(vdir="/usr/local/visit/bin") #Set up window and annotations #vis.LaunchNowin(vdir="/usr/local/visit/bin") inputFileName2 = "point.vtk" databaseName2 = "localhost:" + os.getcwd() + "/" + inputFileName2 vis.OpenDatabase(databaseName, 0) #vis.ActiveDatabase("localhost:" + inputDirectory + inputFileName) #Load settings visSettings.load_visit_settings() vis.AddPlot("Pseudocolor", _variableName, 1, 1) #CONTINUE vis.SetActivePlots(1) vis.PseudocolorAtts = vis.PseudocolorAttributes() vis.PseudocolorAtts.legendFlag = 1 vis.PseudocolorAtts.lightingFlag = 1 vis.PseudocolorAtts.minFlag = 1 vis.PseudocolorAtts.maxFlag = 1 vis.PseudocolorAtts.centering = vis.PseudocolorAtts.Natural # Natural, Nodal, Zonal vis.PseudocolorAtts.scaling = vis.PseudocolorAtts.Linear # Linear, Log, Skew vis.PseudocolorAtts.limitsMode = vis.PseudocolorAtts.CurrentPlot # OriginalData, CurrentPlot vis.PseudocolorAtts.min = minVariableValue vis.PseudocolorAtts.max = maxVariableValue vis.PseudocolorAtts.pointSize = 0.05 vis.PseudocolorAtts.pointType = vis.PseudocolorAtts.Point # Box, Axis, Icosahedron, Point, Sphere vis.PseudocolorAtts.skewFactor = 1 vis.PseudocolorAtts.opacity = 1 vis.PseudocolorAtts.colorTableName = colorTableName vis.PseudocolorAtts.invertColorTable = 0 vis.PseudocolorAtts.smoothingLevel = 0 vis.PseudocolorAtts.pointSizeVarEnabled = 0 vis.PseudocolorAtts.pointSizeVar = "default" vis.PseudocolorAtts.pointSizePixels = 2 vis.PseudocolorAtts.lineStyle = vis.PseudocolorAtts.SOLID # SOLID, DASH, DOT, DOTDASH vis.PseudocolorAtts.lineWidth = 0 vis.PseudocolorAtts.opacityType = vis.PseudocolorAtts.Explicit # Explicit, ColorTable vis.SetPlotOptions(vis.PseudocolorAtts) vis.SetActivePlots(1) vis.AddOperator("Slice", 1) vis.SetActivePlots(1) vis.SliceAtts = vis.SliceAttributes() vis.SliceAtts.originType = vis.SliceAtts.Intercept # Point, Intercept, Percent, Zone, Node vis.SliceAtts.originPoint = (0, 0, 0) vis.SliceAtts.originIntercept = 0 vis.SliceAtts.originPercent = 0 vis.SliceAtts.originZone = 0 vis.SliceAtts.originNode = 0 vis.SliceAtts.normal = (0, 0, 1) vis.SliceAtts.axisType = vis.SliceAtts.ZAxis # XAxis, YAxis, ZAxis, Arbitrary, ThetaPhi vis.SliceAtts.upAxis = (0, 1, 0) vis.SliceAtts.project2d = 1 vis.SliceAtts.interactive = 1 vis.SliceAtts.flip = 0 vis.SliceAtts.originZoneDomain = 0 vis.SliceAtts.originNodeDomain = 0 vis.SliceAtts.meshName = "SpatialGrid" vis.SliceAtts.theta = 0 vis.SliceAtts.phi = 90 vis.SetOperatorOptions(vis.SliceAtts, 1) vis.DrawPlots() vis.SetActivePlots(0) for coordinate in coordinates[i]: print str(coordinate) create_point_vtk(fileName=inputFileName2, coordinates=coordinate) vis.OpenDatabase(databaseName2, 0) vis.AddPlot("Mesh", "mesh", 1, 1) vis.SetActivePlots(vis.GetNumPlots()) vis.MeshAtts = vis.MeshAttributes() vis.MeshAtts.legendFlag = 1 vis.MeshAtts.lineStyle = vis.MeshAtts.SOLID # SOLID, DASH, DOT, DOTDASH vis.MeshAtts.lineWidth = 0 vis.MeshAtts.meshColor = (0, 0, 0, 255) vis.MeshAtts.outlineOnlyFlag = 0 vis.MeshAtts.errorTolerance = 0.01 vis.MeshAtts.meshColorSource = vis.MeshAtts.Foreground # Foreground, MeshCustom vis.MeshAtts.opaqueColorSource = vis.MeshAtts.Background # Background, OpaqueCustom vis.MeshAtts.opaqueMode = vis.MeshAtts.Auto # Auto, On, Off vis.MeshAtts.pointSize = 0.05 vis.MeshAtts.opaqueColor = (255, 255, 255, 255) vis.MeshAtts.smoothingLevel = vis.MeshAtts.None # None, Fast, High vis.MeshAtts.pointSizeVarEnabled = 0 vis.MeshAtts.pointSizeVar = "default" vis.MeshAtts.pointType = vis.MeshAtts.Point # Box, Axis, Icosahedron, Point, Sphere vis.MeshAtts.showInternal = 0 vis.MeshAtts.pointSizePixels = 10 vis.MeshAtts.opacity = 1 vis.SetPlotOptions(vis.MeshAtts) vis.DrawPlots() # Iterate through frames vis.SaveWindowAtts = vis.SaveWindowAttributes() vis.SaveWindowAtts.outputToCurrentDirectory = 0 vis.SaveWindowAtts.outputDirectory = _outputDir vis.SaveWindowAtts.fileName = _outputFileName vis.SaveWindowAtts.family = 1 vis.SaveWindowAtts.format = vis.SaveWindowAtts.PNG # BMP, CURVE, JPEG, OBJ, PNG, POSTSCRIPT, POVRAY, PPM, RGB, STL, TIFF, ULTRA, VTK, PLY vis.SaveWindowAtts.width = 3000 vis.SaveWindowAtts.height = 3000 vis.SaveWindowAtts.screenCapture = 0 vis.SaveWindowAtts.saveTiled = 0 vis.SaveWindowAtts.quality = 100 vis.SaveWindowAtts.progressive = 0 vis.SaveWindowAtts.binary = 0 vis.SaveWindowAtts.stereo = 0 vis.SaveWindowAtts.compression = vis.SaveWindowAtts.PackBits # None, PackBits, Jpeg, Deflate vis.SaveWindowAtts.forceMerge = 0 vis.SaveWindowAtts.resConstraint = vis.SaveWindowAtts.ScreenProportions # NoConstraint, EqualWidthHeight, ScreenProportions vis.SaveWindowAtts.advancedMultiWindowSave = 0 vis.SetSaveWindowAttributes(vis.SaveWindowAtts) vis.SaveWindow() vis.DeleteActivePlots() vis.DeleteActivePlots() vis.CloseDatabase(databaseName) vis.CloseDatabase(databaseName2) # Make the movie: #subprocess.call("./moviecompilescript.sh " + _outputDir + " " + _outputFileName) pyVisitPath = "pyVisit/" #subprocess.call(pythonLibDirectoryPath + pyVisitPath + "moviecompilescript.sh") #subprocess.call(pythonLibDirectoryPath + pyVisitPath + "moviecompilescript.sh " + _outputDir + " " + _outputFileName) framerate = "10" subprocess.call([ pythonLibDirectoryPath + pyVisitPath + "moviecompilescript.sh", _outputDir, _outputFileName, framerate ]) # Delete the point vtk file: os.remove(os.getcwd() + "/" + inputFileName2)
def visit_plot_qcrit_wx_3d_direct(xdmf_path, wx_range=(-5.0, 5.0), q_value=0.1, config_view=None, out_dir=os.getcwd(), out_prefix='qcrit_wx_', figsize=(1024, 1024), state=None, states=None, states_range=[0, None, 1]): visit_initialize() visit.OpenDatabase(str(xdmf_path), 0) # Add a pseudocolor of the cell-centered streamwise vorticity. visit.AddPlot('Pseudocolor', 'wx_cc', 1, 1) PseudocolorAtts = visit.PseudocolorAttributes() PseudocolorAtts.minFlag = 1 PseudocolorAtts.min = wx_range[0] PseudocolorAtts.maxFlag = 1 PseudocolorAtts.max = wx_range[1] PseudocolorAtts.colorTableName = 'viridis' PseudocolorAtts.invertColorTable = 0 PseudocolorAtts.opacityType = PseudocolorAtts.Constant PseudocolorAtts.opacity = 0.8 PseudocolorAtts.legendFlag = 0 visit.SetPlotOptions(PseudocolorAtts) # Add an isosurface of the Q-criterion. visit.AddOperator('Isosurface', 1) IsosurfaceAtts = visit.IsosurfaceAttributes() IsosurfaceAtts.variable = 'qcrit' IsosurfaceAtts.contourMethod = IsosurfaceAtts.Value IsosurfaceAtts.contourValue = (q_value) IsosurfaceAtts.scaling = IsosurfaceAtts.Linear visit.SetOperatorOptions(IsosurfaceAtts, 1) # Remove info about user, time, database, and legend. AnnotationAtts = visit.AnnotationAttributes() AnnotationAtts.userInfoFlag = 0 AnnotationAtts.databaseInfoFlag = 0 AnnotationAtts.timeInfoFlag = 0 AnnotationAtts.legendInfoFlag = 0 AnnotationAtts.axes3D.visible = 0 AnnotationAtts.axes3D.triadFlag = 1 AnnotationAtts.axes3D.bboxFlag = 0 visit.SetAnnotationAttributes(AnnotationAtts) # Parse the 3D view configuration file. if config_view is not None: View3DAtts = visit_get_view(config_view, '3D') visit.SetView3D(View3DAtts) visit.SetActiveWindow(1) states = visit_get_states(state=state, states=states, states_range=states_range) visit_render_save_states(states, out_dir=out_dir, out_prefix=out_prefix, figsize=figsize) visit_finalize() return
def draw_point_picture(variableName, minValue, maxValue, inputDirectory, inputFileName, coordinate, outputDirectory, outputFileName, colorTable="hot_desaturated"): ''' Function for making a visit plot with a point Arguments: :param variableName Name of the variable :param minValue Minimum value of the variable :param maxValue Maximum value of the variable :param inputDirectory Path to input vlsv/silo files :param inputFileName Name of the file, for example \"bulk.00000.silo\" :param coordinates Coordinates corresponding to the files so for example [ [[0,0,0], [0,1,0]], [[2,1,2], [2,1,4]] ] :param outputDirectory Path to output directory :param outputFileName Name of the output file :param colorTable="hot_desaturated" Color table for the plots ''' # OPTIONS ################################################################# # Input variable _variableName = variableName minVariableValue = minValue maxVariableValue = maxValue colorTableName = colorTable # Input directory and file names _outputDir = outputDirectory _outputFileName = outputFileName # The file names for the png files. databaseName = "localhost:" + inputDirectory + inputFileName # For navigating to the silo files # Note: a slice of the plot in z-axis is taken automatically ################################################################# inputFileName2 = "point.vtk" databaseName2 = "localhost:" + os.getcwd() + "/" + inputFileName2 currentPlot = 0 vis.OpenDatabase(databaseName, 0) #vis.ActiveDatabase("localhost:" + inputDirectory + inputFileName) #Load settings visSettings.load_visit_settings() vis.AddPlot("Pseudocolor", _variableName, 1, 1) #CONTINUE vis.SetActivePlots(currentPlot) vis.PseudocolorAtts = vis.PseudocolorAttributes() vis.PseudocolorAtts.legendFlag = 1 vis.PseudocolorAtts.lightingFlag = 1 vis.PseudocolorAtts.minFlag = 1 vis.PseudocolorAtts.maxFlag = 1 vis.PseudocolorAtts.centering = vis.PseudocolorAtts.Natural # Natural, Nodal, Zonal vis.PseudocolorAtts.scaling = vis.PseudocolorAtts.Linear # Linear, Log, Skew vis.PseudocolorAtts.limitsMode = vis.PseudocolorAtts.CurrentPlot # OriginalData, CurrentPlot vis.PseudocolorAtts.min = minVariableValue vis.PseudocolorAtts.max = maxVariableValue vis.PseudocolorAtts.pointSize = 0.05 vis.PseudocolorAtts.pointType = vis.PseudocolorAtts.Point # Box, Axis, Icosahedron, Point, Sphere vis.PseudocolorAtts.skewFactor = 1 vis.PseudocolorAtts.opacity = 1 vis.PseudocolorAtts.colorTableName = colorTableName vis.PseudocolorAtts.invertColorTable = 0 vis.PseudocolorAtts.smoothingLevel = 0 vis.PseudocolorAtts.pointSizeVarEnabled = 0 vis.PseudocolorAtts.pointSizeVar = "default" vis.PseudocolorAtts.pointSizePixels = 2 vis.PseudocolorAtts.lineStyle = vis.PseudocolorAtts.SOLID # SOLID, DASH, DOT, DOTDASH vis.PseudocolorAtts.lineWidth = 0 vis.PseudocolorAtts.opacityType = vis.PseudocolorAtts.Explicit # Explicit, ColorTable vis.SetPlotOptions(vis.PseudocolorAtts) vis.AddOperator("Slice", 1) vis.SliceAtts = vis.SliceAttributes() vis.SliceAtts.originType = vis.SliceAtts.Intercept # Point, Intercept, Percent, Zone, Node vis.SliceAtts.originPoint = (0, 0, 0) vis.SliceAtts.originIntercept = 0 vis.SliceAtts.originPercent = 0 vis.SliceAtts.originZone = 0 vis.SliceAtts.originNode = 0 vis.SliceAtts.normal = (0, 0, 1) vis.SliceAtts.axisType = vis.SliceAtts.ZAxis # XAxis, YAxis, ZAxis, Arbitrary, ThetaPhi vis.SliceAtts.upAxis = (0, 1, 0) vis.SliceAtts.project2d = 1 vis.SliceAtts.interactive = 1 vis.SliceAtts.flip = 0 vis.SliceAtts.originZoneDomain = 0 vis.SliceAtts.originNodeDomain = 0 vis.SliceAtts.meshName = "SpatialGrid" vis.SliceAtts.theta = 0 vis.SliceAtts.phi = 90 vis.SetOperatorOptions(vis.SliceAtts, 1) vis.DrawPlots() create_point_vtk(fileName=inputFileName2, coordinates=coordinate) vis.OpenDatabase(databaseName2, 0) currentPlot = currentPlot + 1 vis.SetActivePlots(currentPlot) vis.AddPlot("Mesh", "mesh", 1, 1) vis.MeshAtts = vis.MeshAttributes() vis.MeshAtts.legendFlag = 1 vis.MeshAtts.lineStyle = vis.MeshAtts.SOLID # SOLID, DASH, DOT, DOTDASH vis.MeshAtts.lineWidth = 0 vis.MeshAtts.meshColor = (0, 0, 0, 255) vis.MeshAtts.outlineOnlyFlag = 0 vis.MeshAtts.errorTolerance = 0.01 vis.MeshAtts.meshColorSource = vis.MeshAtts.Foreground # Foreground, MeshCustom vis.MeshAtts.opaqueColorSource = vis.MeshAtts.Background # Background, OpaqueCustom vis.MeshAtts.opaqueMode = vis.MeshAtts.Auto # Auto, On, Off vis.MeshAtts.pointSize = 0.05 vis.MeshAtts.opaqueColor = (255, 255, 255, 255) vis.MeshAtts.smoothingLevel = vis.MeshAtts.None # None, Fast, High vis.MeshAtts.pointSizeVarEnabled = 0 vis.MeshAtts.pointSizeVar = "default" vis.MeshAtts.pointType = vis.MeshAtts.Point # Box, Axis, Icosahedron, Point, Sphere vis.MeshAtts.showInternal = 0 vis.MeshAtts.pointSizePixels = 25 vis.MeshAtts.opacity = 1 vis.SetPlotOptions(vis.MeshAtts) vis.DrawPlots() vis.SaveWindowAtts = vis.SaveWindowAttributes() vis.SaveWindowAtts.outputToCurrentDirectory = 0 vis.SaveWindowAtts.outputDirectory = _outputDir vis.SaveWindowAtts.fileName = _outputFileName vis.SaveWindowAtts.family = 1 vis.SaveWindowAtts.format = vis.SaveWindowAtts.PNG # BMP, CURVE, JPEG, OBJ, PNG, POSTSCRIPT, POVRAY, PPM, RGB, STL, TIFF, ULTRA, VTK, PLY vis.SaveWindowAtts.width = 3000 vis.SaveWindowAtts.height = 3000 vis.SaveWindowAtts.screenCapture = 0 vis.SaveWindowAtts.saveTiled = 0 vis.SaveWindowAtts.quality = 100 vis.SaveWindowAtts.progressive = 0 vis.SaveWindowAtts.binary = 0 vis.SaveWindowAtts.stereo = 0 vis.SaveWindowAtts.compression = vis.SaveWindowAtts.PackBits # None, PackBits, Jpeg, Deflate vis.SaveWindowAtts.forceMerge = 0 vis.SaveWindowAtts.resConstraint = vis.SaveWindowAtts.ScreenProportions # NoConstraint, EqualWidthHeight, ScreenProportions vis.SaveWindowAtts.advancedMultiWindowSave = 0 vis.SetSaveWindowAttributes(vis.SaveWindowAtts) vis.SaveWindow() vis.SetActivePlots((0, 1)) vis.DeleteActivePlots() vis.CloseDatabase(databaseName2) vis.CloseDatabase(databaseName)
import os import sys sys.path.append( "/home/ryuzaki/Downloads/visit2_13_1.linux-x86_64/2.13.1/linux-x86_64/lib/site-packages/" ) sys.path.append("/usr/local/lib/python3.5/dist-packages/") import visit from pathlib import Path testfile_path = raw_input("Enter Path of Database : ") my_file = Path(testfile_path) if my_file.is_file(): visit.OpenDatabase(testfile_path) else: print("File Not Found !!") sys.exit(1) DefineVectorExpression("v", "{<PS/vx>,<PS/vy>,<PS/vz>}") DeleteAllPlots() AddPlot("Vector", "v") a = AnnotationAttributes() a.axes3D.visible = 0 a.axes3D.triadFlag = 0 a.axes3D.bboxFlag = 0 a.databaseInfoFlag = 0 a.legendInfoFlag = 0 SetAnnotationAttributes(a) va = VectorAttributes()
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.AddOperator("Slice") s = vs.SliceAttributes() s.project2d = 0 s.originPoint = (0, 5, 0) s.originType = s.Point s.normal = (0, 1, 0) s.upAxis = (-1, 0, 0) vs.SetOperatorOptions(s) vs.AddOperator("Reflect") vs.DrawPlots() # Now reflect before slicing. We’ll only get 1 slice plane # instead of 2. vs.DemoteOperator(1) vs.DrawPlots() d = input('Press anything to quit')
def make_movie( variableName, minValue, maxValue, inputDirectory, inputFileName, outputDirectory, outputFileName, colorTable="hot_desaturated", startFrame=-1, endFrame=-1 ): ''' Function for making a movie Arguments: :param variableName Name of the variable :param minValue Minimum value of the variable :param maxValue Maximum value of the variable :param inputDirectory Path to input vlsv/silo files :param inputFileName Name of the file(s) so for example if the filenames are bulk.0000.silo, bulk.0001.silo, .. then inputFileName=\"bulk.*.silo\"" :param outputDirectory Path to output directory :param outputFileName Name of the output file :param colorTable="hot_desaturated" Color table for the plots :param startFrame=-1 Starting frame of the movie (-1 equals 0) :param endFrame=-1 Starting frame of the movie (-1 equals last frame) ''' # OPTIONS ################################################################# # Input frame properties _startFrame = startFrame # Note: if _startFrame is set to -1 the start frame gets set to 0 _endFrame = endFrame # Note: if _endFrame is set to -1 the _endFrame is automatically the number of frames in the database # Input variable _variableName = variableName minVariableValue = minValue maxVariableValue = maxValue colorTableName = colorTable # Input directory and file names #_outputDir = "/home/hannukse/MOVINGFRAME_MOVIES/AAJ_BZ_REMAKE/" # Set the output directory (Where .png s are saved) _outputDir = outputDirectory #_outputFileName = "BZ_FORESHOCK_2_" # The file names for the png files. These for ex. will be saved visit0000.png, visit0001.png, .. _outputFileName = outputFileName # The file names for the png files. #databaseName = "localhost:/home/hannukse/meteo/stornext/field/vlasiator/2D/AAJ/silo_files/bulk.*.silo database" # For navigating to the silo files databaseName = "localhost:" + inputDirectory + inputFileName + " database" # For navigating to the silo files # Note: a slice of the plot in z-axis is taken automatically ################################################################# # LaunchNowin(vdir=visitBinDirectory) #dx = speedX * frameInSeconds # Note: This is in meters per frame! #dy = speedY * frameInSeconds # Note: This is in meters per frame! #LaunchNowin(vdir="/usr/local/visit/bin") #Set up window and annotations #vis.LaunchNowin(vdir="/usr/local/visit/bin") vis.OpenDatabase(databaseName, 0) #Load settings visSettings.load_visit_settings() vis.AddPlot("Pseudocolor", _variableName, 1, 1) #CONTINUE vis.SetActivePlots(0) vis.PseudocolorAtts = vis.PseudocolorAttributes() vis.PseudocolorAtts.legendFlag = 1 vis.PseudocolorAtts.lightingFlag = 1 vis.PseudocolorAtts.minFlag = 1 vis.PseudocolorAtts.maxFlag = 1 vis.PseudocolorAtts.centering = vis.PseudocolorAtts.Natural # Natural, Nodal, Zonal vis.PseudocolorAtts.scaling = vis.PseudocolorAtts.Linear # Linear, Log, Skew vis.PseudocolorAtts.limitsMode = vis.PseudocolorAtts.CurrentPlot # OriginalData, CurrentPlot vis.PseudocolorAtts.min = minVariableValue vis.PseudocolorAtts.max = maxVariableValue vis.PseudocolorAtts.pointSize = 0.05 vis.PseudocolorAtts.pointType = vis.PseudocolorAtts.Point # Box, Axis, Icosahedron, Point, Sphere vis.PseudocolorAtts.skewFactor = 1 vis.PseudocolorAtts.opacity = 1 vis.PseudocolorAtts.colorTableName = colorTableName vis.PseudocolorAtts.invertColorTable = 0 vis.PseudocolorAtts.smoothingLevel = 0 vis.PseudocolorAtts.pointSizeVarEnabled = 0 vis.PseudocolorAtts.pointSizeVar = "default" vis.PseudocolorAtts.pointSizePixels = 2 vis.PseudocolorAtts.lineStyle = vis.PseudocolorAtts.SOLID # SOLID, DASH, DOT, DOTDASH vis.PseudocolorAtts.lineWidth = 0 vis.PseudocolorAtts.opacityType = vis.PseudocolorAtts.Explicit # Explicit, ColorTable vis.SetPlotOptions(vis.PseudocolorAtts) vis.SetActivePlots(0) vis.AddOperator("Slice", 1) vis.SetActivePlots(0) vis.SliceAtts = vis.SliceAttributes() vis.SliceAtts.originType = vis.SliceAtts.Intercept # Point, Intercept, Percent, Zone, Node vis.SliceAtts.originPoint = (0, 0, 0) vis.SliceAtts.originIntercept = 0 vis.SliceAtts.originPercent = 0 vis.SliceAtts.originZone = 0 vis.SliceAtts.originNode = 0 vis.SliceAtts.normal = (0, 0, 1) vis.SliceAtts.axisType = vis.SliceAtts.ZAxis # XAxis, YAxis, ZAxis, Arbitrary, ThetaPhi vis.SliceAtts.upAxis = (0, 1, 0) vis.SliceAtts.project2d = 1 vis.SliceAtts.interactive = 1 vis.SliceAtts.flip = 0 vis.SliceAtts.originZoneDomain = 0 vis.SliceAtts.originNodeDomain = 0 vis.SliceAtts.meshName = "SpatialGrid" vis.SliceAtts.theta = 0 vis.SliceAtts.phi = 90 vis.SetOperatorOptions(vis.SliceAtts, 1) vis.DrawPlots() if _endFrame == -1: _endFrame = vis.TimeSliderGetNStates() - 1 if _startFrame == -1: _startFrame = 0 # Iterate through frames for i in range(_startFrame, _endFrame+1): vis.SetTimeSliderState(i) frame = i - _startFrame vis.SaveWindowAtts = vis.SaveWindowAttributes() vis.SaveWindowAtts.outputToCurrentDirectory = 0 vis.SaveWindowAtts.outputDirectory = _outputDir vis.SaveWindowAtts.fileName = _outputFileName vis.SaveWindowAtts.family = 1 vis.SaveWindowAtts.format = vis.SaveWindowAtts.PNG # BMP, CURVE, JPEG, OBJ, PNG, POSTSCRIPT, POVRAY, PPM, RGB, STL, TIFF, ULTRA, VTK, PLY vis.SaveWindowAtts.width = 3000 vis.SaveWindowAtts.height = 3000 vis.SaveWindowAtts.screenCapture = 0 vis.SaveWindowAtts.saveTiled = 0 vis.SaveWindowAtts.quality = 100 vis.SaveWindowAtts.progressive = 0 vis.SaveWindowAtts.binary = 0 vis.SaveWindowAtts.stereo = 0 vis.SaveWindowAtts.compression = vis.SaveWindowAtts.PackBits # None, PackBits, Jpeg, Deflate vis.SaveWindowAtts.forceMerge = 0 vis.SaveWindowAtts.resConstraint = vis.SaveWindowAtts.ScreenProportions # NoConstraint, EqualWidthHeight, ScreenProportions vis.SaveWindowAtts.advancedMultiWindowSave = 0 vis.SetSaveWindowAttributes(vis.SaveWindowAtts) vis.SaveWindow() vis.DeleteActivePlots() vis.CloseDatabase(databaseName) # Make the movie: #subprocess.call("./moviecompilescript.sh " + _outputDir + " " + _outputFileName) pyVisitPath = "pyVisit/" #subprocess.call(pythonLibDirectoryPath + pyVisitPath + "moviecompilescript.sh") #subprocess.call(pythonLibDirectoryPath + pyVisitPath + "moviecompilescript.sh " + _outputDir + " " + _outputFileName) framerate = "10" subprocess.call([pythonLibDirectoryPath + pyVisitPath + "moviecompilescript.sh", _outputDir, _outputFileName, framerate])
# # file: listing_2_import_example.py # # Usage: # See detailed instructions at: # http://visitusers.org/index.php?title=Python_Module_Support # import sys import os from os.path import join as pjoin vpath = "path/to/visit/<ver>/<arch>/" # or for an OSX bundle version # "path/to/VisIt.app/Contents/Resources/<ver>/<arch>" vpath = pjoin(vpath,"lib","site-packages") sys.path.insert(0,vpath) import visit visit.Launch() # use the interface visit.OpenDatabase("noise.silo") visit.AddPlot("Pseudocolor","hardyglobal")
def make_movie_auto(variableName, boundaryBox, vlsvFileName, inputDirectory, inputFileName, outputDirectory, outputFileName, colorTableName="hot_desaturated", startFrame=-1, endFrame=-1, thresholdCoefficient=0.6): ''' Function for making a movie Arguments: :param variableName Name of the variable :param boundaryBox Box for collecting min and max threshold (The movie will focus on that area) :param vlsvFileName Name of a vlsv file where the function collects the threshold for the boundary box :param inputDirectory Path to input vlsv/silo files :param inputFileName Name of the file(s) so for example if the filenames are bulk.0000.silo, bulk.0001.silo, .. then inputFileName=\"bulk.*.silo\"" :param outputDirectory Path to output directory :param outputFileName Name of the output file :param colorTableName="hot_desaturated" Color table for the plots :param thresholdCoefficient Sets the coefficient for a covariant collected from the values from boundary box. The lower this is, the more focused the movie will be on the boundary box area :param startFrame=-1 Starting frame of the movie (-1 equals 0) :param endFrame=-1 Starting frame of the movie (-1 equals last frame) ''' if thresholdCoefficient < 0: print "thresholdCoefficient must be non-negative!" return # OPTIONS ################################################################# # Input frame properties _startFrame = startFrame # Note: if _startFrame is set to -1 the start frame gets set to 0 _endFrame = endFrame # Note: if _endFrame is set to -1 the _endFrame is automatically the number of frames in the database # Input variable _variableName = variableName # Input directory and file names #_outputDir = "/home/hannukse/MOVINGFRAME_MOVIES/AAJ_BZ_REMAKE/" # Set the output directory (Where .png s are saved) _outputDir = outputDirectory #_outputFileName = "BZ_FORESHOCK_2_" # The file names for the png files. These for ex. will be saved visit0000.png, visit0001.png, .. _outputFileName = outputFileName # The file names for the png files. #databaseName = "localhost:/home/hannukse/meteo/stornext/field/vlasiator/2D/AAJ/silo_files/bulk.*.silo database" # For navigating to the silo files databaseName = "localhost:" + inputDirectory + inputFileName + " database" # For navigating to the silo files # Note: a slice of the plot in z-axis is taken automatically ################################################################# # Get the min and max values: # Get all cell ids within the boundary box: vlsvReader = VlsvReader(vlsvFileName) # Get global boundaries: # Get xmax, xmin and xcells_ini xmax = vlsvReader.read_parameter(name="xmax") xmin = vlsvReader.read_parameter(name="xmin") xcells = vlsvReader.read_parameter(name="xcells_ini") # Do the same for y ymax = vlsvReader.read_parameter(name="ymax") ymin = vlsvReader.read_parameter(name="ymin") ycells = vlsvReader.read_parameter(name="ycells_ini") # And for z zmax = vlsvReader.read_parameter(name="zmax") zmin = vlsvReader.read_parameter(name="zmin") zcells = vlsvReader.read_parameter(name="zcells_ini") #Calculate cell lengths: cell_lengths = np.array([(xmax - xmin) / (float)(xcells), (ymax - ymin) / (float)(ycells), (zmax - zmin) / (float)(zcells)]) # Get cell indices: cell_indice_bounds = np.array([ (int)(((float)(boundaryBox[0]) - xmin) / (float)(cell_lengths[0])), (int)(((float)(boundaryBox[1]) - xmin) / (float)(cell_lengths[0])), (int)(((float)(boundaryBox[2]) - ymin) / (float)(cell_lengths[1])), (int)(((float)(boundaryBox[3]) - ymin) / (float)(cell_lengths[1])), (int)(((float)(boundaryBox[4]) - zmin) / (float)(cell_lengths[2])), (int)(((float)(boundaryBox[5]) - zmin) / (float)(cell_lengths[2])) ]) # Get every cell id within the boundary box: cellids = [] cell_indice = np.array( [cell_indice_bounds[0], cell_indice_bounds[2], cell_indice_bounds[4]]) while True: cellids.append(cell_indice[0] + cell_indice[1] * xcells + cell_indice[2] * xcells * ycells + 1) if cell_indice[0] < cell_indice_bounds[1]: cell_indice[0] = cell_indice[0] + 1 elif cell_indice[1] < cell_indice_bounds[3]: cell_indice[1] = cell_indice[1] + 1 cell_indice[0] = cell_indice_bounds[0] elif cell_indice[2] < cell_indice_bounds[5]: cell_indice[2] = cell_indice[2] + 1 cell_indice[1] = cell_indice_bounds[1] cell_indice[0] = cell_indice_bounds[0] else: # Indice out of bounds -- got all cell ids break # Convert cell ids into set: cellids = Set(cellids) cellidlocations = [] # Get all of the cell ids locations: allcellids = vlsvReader.read(name="SpatialGrid", tag="MESH") for i in xrange(len(allcellids)): if allcellids[i] in cellids: #This cell id is within the user-given boundary cellidlocations.append(allcellids[i]) # Get all of the values: allvalues = vlsvReader.read_variables(name=_variableName) values = [] # Get the values of the cell ids within the boundary for i in cellidlocations: values.append(allvalues[i]) # We now have all the cell ids (and their locations in the arrays) from the area, set min and max thresholds: meanValue = np.mean(values) standardDeviationValue = np.std(values) maxValue = meanValue + ( float)(thresholdCoefficient) * standardDeviationValue minValue = meanValue - ( float)(thresholdCoefficient) * standardDeviationValue # Put threshold values: minVariableValue = minValue maxVariableValue = maxValue # LaunchNowin(vdir=visitBinDirectory) #dx = speedX * frameInSeconds # Note: This is in meters per frame! #dy = speedY * frameInSeconds # Note: This is in meters per frame! #LaunchNowin(vdir="/usr/local/visit/bin") #Set up window and annotations #vis.LaunchNowin(vdir="/usr/local/visit/bin") vis.OpenDatabase(databaseName, 0) #Load settings visSettings.load_visit_settings() vis.AddPlot("Pseudocolor", _variableName, 1, 1) #CONTINUE vis.SetActivePlots(0) vis.PseudocolorAtts = vis.PseudocolorAttributes() vis.PseudocolorAtts.legendFlag = 1 vis.PseudocolorAtts.lightingFlag = 1 vis.PseudocolorAtts.minFlag = 1 vis.PseudocolorAtts.maxFlag = 1 vis.PseudocolorAtts.centering = vis.PseudocolorAtts.Natural # Natural, Nodal, Zonal vis.PseudocolorAtts.scaling = vis.PseudocolorAtts.Linear # Linear, Log, Skew vis.PseudocolorAtts.limitsMode = vis.PseudocolorAtts.CurrentPlot # OriginalData, CurrentPlot vis.PseudocolorAtts.min = minVariableValue vis.PseudocolorAtts.max = maxVariableValue vis.PseudocolorAtts.pointSize = 0.05 vis.PseudocolorAtts.pointType = vis.PseudocolorAtts.Point # Box, Axis, Icosahedron, Point, Sphere vis.PseudocolorAtts.skewFactor = 1 vis.PseudocolorAtts.opacity = 1 vis.PseudocolorAtts.colorTableName = colorTableName vis.PseudocolorAtts.invertColorTable = 0 vis.PseudocolorAtts.smoothingLevel = 0 vis.PseudocolorAtts.pointSizeVarEnabled = 0 vis.PseudocolorAtts.pointSizeVar = "default" vis.PseudocolorAtts.pointSizePixels = 2 vis.PseudocolorAtts.lineStyle = vis.PseudocolorAtts.SOLID # SOLID, DASH, DOT, DOTDASH vis.PseudocolorAtts.lineWidth = 0 vis.PseudocolorAtts.opacityType = vis.PseudocolorAtts.Explicit # Explicit, ColorTable vis.SetPlotOptions(vis.PseudocolorAtts) vis.SetActivePlots(0) vis.AddOperator("Slice", 1) vis.SetActivePlots(0) vis.SliceAtts = vis.SliceAttributes() vis.SliceAtts.originType = vis.SliceAtts.Intercept # Point, Intercept, Percent, Zone, Node vis.SliceAtts.originPoint = (0, 0, 0) vis.SliceAtts.originIntercept = 0 vis.SliceAtts.originPercent = 0 vis.SliceAtts.originZone = 0 vis.SliceAtts.originNode = 0 vis.SliceAtts.normal = (0, 0, 1) vis.SliceAtts.axisType = vis.SliceAtts.ZAxis # XAxis, YAxis, ZAxis, Arbitrary, ThetaPhi vis.SliceAtts.upAxis = (0, 1, 0) vis.SliceAtts.project2d = 1 vis.SliceAtts.interactive = 1 vis.SliceAtts.flip = 0 vis.SliceAtts.originZoneDomain = 0 vis.SliceAtts.originNodeDomain = 0 vis.SliceAtts.meshName = "SpatialGrid" vis.SliceAtts.theta = 0 vis.SliceAtts.phi = 90 vis.SetOperatorOptions(vis.SliceAtts, 1) vis.DrawPlots() if _endFrame == -1: _endFrame = vis.TimeSliderGetNStates() - 1 if _startFrame == -1: _startFrame = 0 # Iterate through frames for i in xrange(_startFrame, _endFrame + 1): vis.SetTimeSliderState(i) frame = i - _startFrame vis.SaveWindowAtts = vis.SaveWindowAttributes() vis.SaveWindowAtts.outputToCurrentDirectory = 0 vis.SaveWindowAtts.outputDirectory = _outputDir vis.SaveWindowAtts.fileName = _outputFileName vis.SaveWindowAtts.family = 1 vis.SaveWindowAtts.format = vis.SaveWindowAtts.PNG # BMP, CURVE, JPEG, OBJ, PNG, POSTSCRIPT, POVRAY, PPM, RGB, STL, TIFF, ULTRA, VTK, PLY vis.SaveWindowAtts.width = 3000 vis.SaveWindowAtts.height = 300 vis.SaveWindowAtts.screenCapture = 0 vis.SaveWindowAtts.saveTiled = 0 vis.SaveWindowAtts.quality = 100 vis.SaveWindowAtts.progressive = 0 vis.SaveWindowAtts.binary = 0 vis.SaveWindowAtts.stereo = 0 vis.SaveWindowAtts.compression = vis.SaveWindowAtts.PackBits # None, PackBits, Jpeg, Deflate vis.SaveWindowAtts.forceMerge = 0 vis.SaveWindowAtts.resConstraint = vis.SaveWindowAtts.ScreenProportions # NoConstraint, EqualWidthHeight, ScreenProportions vis.SaveWindowAtts.advancedMultiWindowSave = 0 vis.SetSaveWindowAttributes(vis.SaveWindowAtts) vis.SaveWindow() vis.DeleteActivePlots() vis.CloseDatabase(databaseName) # Make the movie: #subprocess.call("./moviecompilescript.sh " + _outputDir + " " + _outputFileName) pyVisitPath = "pyVisit/" #subprocess.call(pythonLibDirectoryPath + pyVisitPath + "moviecompilescript.sh") #subprocess.call(pythonLibDirectoryPath + pyVisitPath + "moviecompilescript.sh " + _outputDir + " " + _outputFileName) frameRate = "10" subprocess.call([ pythonLibDirectoryPath + pyVisitPath + "moviecompilescript.sh", _outputDir, _outputFileName, frameRate ])
saveAndUpload('result.silo', magnetic_anomaly=B, magnetic_weight=w, susceptibility=susceptibility) print("Results saved in result.silo") # Visualise result.silo using VisIt import visit 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('result.silo') visit.AddPlot('Contour', 'susceptibility') 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() subprocess.call(["cloud", "upload", "result-visit.png", "result-visit.png", "--set-acl=public-read"]) visit.DeleteAllPlots() visit.CloseDatabase('result.silo')
"file_name": geometry_file, "plot_type": "Mesh", "data_tag": "STL_mesh" }, { "file_name": data_file, "plot_type": "Pseudocolor", "data_tag": "TALLY_TAG" }, { "file_name": data_file, "plot_type": "Contour", "data_tag": "ERROR_TAG" }] 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.
def visit_plot_qcrit_wx_3d(xdmf_path, qcrit_vals=(6.0, 1.0), wx_lims=(-5.0, 5.0), config_view=None, out_dir=os.getcwd(), prefix='qcrit_wx_3d_', figsize=(1024, 1024), state=None, states=None, states_range=[0, None, 1]): """Plot the 3D isosurface of the Q-criterion at 2 values. The first isosurface is colored by the streamwise vorticity. The second isosurface is colored with a single color (grey). Parameters ---------- xdmf_path : str Path of the XDMF file with information about the Q-criterion and the streamwise vorticity. qcrit_vals : tuple, optional Values of the Q-criterion to display as a tuple of 2 floats; default is (6.0, 1.0). wx_lims : tuple, optional Limits of the color range for the streamwise vorticity as a tuple of 2 floats; default is (-5.0, 5.0). config_view : str, optional Path of the YAML file with the configuration of the view; default is None (use default VisIt view). out_dir : str, optional Output directory in which figures will be saved; default is the present working directory. prefix : str, optional Output filename prefix; default is "qcrit_wx_3d_". figsize : tuple Figure width and height (in pixels); default is (1024, 1024). state : int, optional Single state index to render; default is None (i.e., render multiple states). states : list, optional List of states to render; default is None (i.e., render all states). states_range : list, optional Start, end, and step indices for states to render; default is [0, None, 1] (i.e., render all states). """ visit_initialize() # Open database from XDMF file. visit.OpenDatabase(xdmf_path, 0) # Add a pseudocolor of the streamwise vorticity. visit.AddPlot('Pseudocolor', 'wx_cc', 1, 0) PseudocolorAtts = visit.PseudocolorAttributes() PseudocolorAtts.minFlag, PseudocolorAtts.maxFlag = 1, 1 PseudocolorAtts.min, PseudocolorAtts.max = wx_lims PseudocolorAtts.colorTableName = 'viridis' PseudocolorAtts.invertColorTable = 0 visit.SetPlotOptions(PseudocolorAtts) # Add isosurface of the Q-criterion (colored by streamwise vorticity). visit.AddOperator('Isosurface', 0) IsosurfaceAtts = visit.IsosurfaceAttributes() IsosurfaceAtts.contourMethod = IsosurfaceAtts.Value IsosurfaceAtts.contourValue = (qcrit_vals[0]) IsosurfaceAtts.variable = 'qcrit' visit.SetOperatorOptions(IsosurfaceAtts, 0) # Add single-value contour of the Q-criterion. visit.AddPlot('Contour', 'qcrit', 1, 0) ContourAtts = visit.ContourAttributes() ContourAtts.colorType = ContourAtts.ColorBySingleColor ContourAtts.legendFlag = 0 ContourAtts.singleColor = (128, 128, 128, 153) # grey ContourAtts.contourNLevels = 1 ContourAtts.minFlag, ContourAtts.maxFlag = 1, 1 ContourAtts.min, ContourAtts.max = qcrit_vals[1], qcrit_vals[1] visit.SetPlotOptions(ContourAtts) # Remove some annotations; keep triad. AnnotationAtts = visit.AnnotationAttributes() AnnotationAtts.userInfoFlag = 0 AnnotationAtts.databaseInfoFlag = 0 AnnotationAtts.timeInfoFlag = 0 AnnotationAtts.legendInfoFlag = 0 AnnotationAtts.axes3D.visible = 0 AnnotationAtts.axes3D.triadFlag = 1 AnnotationAtts.axes3D.bboxFlag = 0 visit.SetAnnotationAttributes(AnnotationAtts) # Define state indices to render. states = visit_get_states(state=state, states=states, states_range=states_range) # Render states and save figures to files. visit_render_save_states(states, config_view=config_view, out_dir=out_dir, prefix=prefix, figsize=figsize) visit_finalize()