Example #1
0
 def toAttributes(self):
     s = v.SliceAttributes()
     s.originType = s.Point
     s.originPoint = self.point
     s.normal = self.normal
     s.axisType = s.Arbitrary
     return s
Example #2
0
def plane_slice_plotting(window_number, axis_number, label, images, timestamp):
    """
    Copy the Mesh, Pseudocolor, and Contour plots into a new VisIt window and
    slice through the proper axis.

    Input:
    ______
      window_number: int
          The number of the window to open (2,3, or 4).
      axis_number: int
          The number of the axis to slice through (0 for X, 1 for Y, 2 for Z).
      label: str
          The title of the plane slice.
      images: boolean
          Whether or not to save images of the plot windows.
      timestamp: boolean
          Whether or not to keep the timestamp on plot window images.

    Returns:
    ________
      none
    """

    # Open a new window with all three plots.
    Vi.AddWindow()
    Vi.CopyPlotsToWindow(1, window_number)

    # Create the plane slice plot by activating the mesh, pseudocolor, and contour plots.
    Vi.SetActiveWindow(window_number)
    Vi.SetActivePlots((0, 1, 2))

    # Remove the clip and slice operators from previous plot windows.
    Vi.RemoveAllOperators()

    # Add a slice through the proper axis.
    Vi.AddOperator("Slice", 1)
    s = Vi.SliceAttributes()
    s.axisType = axis_number
    Vi.SetOperatorOptions(s)

    # Include a label for each plane slice plot.
    banner = Vi.CreateAnnotationObject("Text2D")
    banner.position = (0.45, 0.92)
    banner.text = label
    banner.height = 0.05

    # 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 images:
        if timestamp:
            attributes = Vi.GetAnnotationAttributes()
            attributes.userInfoFlag = 0
            Vi.SetAnnotationAttributes(attributes)
        Vi.SaveWindow()
 def _getSliceAttributes(self):
     sliceAttributes = visit.SliceAttributes()
     sliceAttributes.originType = sliceAttributes.Percent
     if self._operatorProject2d:
         sliceAttributes.project2d = int(True)
     else:
         print("previous value for sliceAttributes.project2d = "+str(sliceAttributes.project2d))
         sliceAttributes.project2d = int(False)
     sliceAttributes.axisType = self._operatorAxis
     sliceAttributes.originPercent = self._operatorPercent
     print(sliceAttributes)
     return sliceAttributes
Example #4
0
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 range(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 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 = 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
    ])
Example #5
0
        db = sorted(glob.glob(filename), key=numericalSort)[-1]
        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)

        # First fig

        for alpha in (0.05, 0.6):

            visit.AddPlot("Pseudocolor", "vol_frac_average", 1, 1)

            visit.AddOperator("Slice", 1)
            SliceAtts = visit.SliceAttributes()
            SliceAtts.originType = SliceAtts.Point
            SliceAtts.originPoint = (0, 0, 0)
            SliceAtts.normal = (0, 0, -1)
            SliceAtts.axisType = SliceAtts.ZAxis
            SliceAtts.upAxis = (1, 0, 0)
            SliceAtts.project2d = 1
            SliceAtts.flip = 1
            visit.SetOperatorOptions(SliceAtts, 1)

            PseudocolorAtts = visit.PseudocolorAttributes()
            PseudocolorAtts.minFlag = 1
            PseudocolorAtts.min = 0.
            PseudocolorAtts.maxFlag = 1
            PseudocolorAtts.max = alpha
            visit.SetPlotOptions(PseudocolorAtts)
Example #6
0
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)
Example #7
0
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 range(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)
Example #8
0
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 xrange(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
    ])
Example #9
0
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])
Example #10
0
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')