예제 #1
0
 def __init__(self, module_manager):
     SimpleVTKClassModuleBase.__init__(
         self, module_manager,
         vtk.vtkXMLPPolyDataWriter(), 'Writing vtkXMLPPolyData.',
         ('vtkXMLPPolyData',), (),
         replaceDoc=True,
         inputFunctions=None, outputFunctions=None)
예제 #2
0
파일: track.py 프로젝트: markdays/openmc
def main():
    # Parse commandline arguments.
    args = _parse_args()

    # Check input file extensions.
    for fname in args.input:
        if not (fname.endswith('.h5') or fname.endswith('.binary')):
            raise ValueError("Input file names must either end with '.h5' or"
                             "'.binary'.")

    # Make sure that the output filename ends with '.pvtp'.
    if not args.out:
        args.out = 'tracks.pvtp'
    elif os.path.splitext(args.out)[1] != '.pvtp':
        args.out = ''.join([args.out, '.pvtp'])

    # Import HDF library if HDF files are present
    for fname in args.input:
        if fname.endswith('.h5'):
            import h5py
            break

    # Initialize data arrays and offset.
    points = vtk.vtkPoints()
    cells = vtk.vtkCellArray()
    point_offset = 0
    for fname in args.input:
        # Write coordinate values to points array.
        if fname.endswith('.binary'):
            track = open(fname, 'rb').read()
            coords = [
                struct.unpack("ddd", track[24 * i:24 * (i + 1)])
                for i in range(len(track) / 24)
            ]
            n_points = len(coords)
            for triplet in coords:
                points.InsertNextPoint(triplet)
        else:
            coords = h5py.File(fname).get('coordinates')
            n_points = coords.shape[0]
            for i in range(n_points):
                points.InsertNextPoint(coords[i, :])

        # Create VTK line and assign points to line.
        line = vtk.vtkPolyLine()
        line.GetPointIds().SetNumberOfIds(n_points)
        for i in range(n_points):
            line.GetPointIds().SetId(i, point_offset + i)

        cells.InsertNextCell(line)
        point_offset += n_points
    data = vtk.vtkPolyData()
    data.SetPoints(points)
    data.SetLines(cells)

    writer = vtk.vtkXMLPPolyDataWriter()
    writer.SetInput(data)
    writer.SetFileName(args.out)
    writer.Write()
예제 #3
0
 def __init__(self, module_manager):
     SimpleVTKClassModuleBase.__init__(self,
                                       module_manager,
                                       vtk.vtkXMLPPolyDataWriter(),
                                       'Writing vtkXMLPPolyData.',
                                       ('vtkXMLPPolyData', ), (),
                                       replaceDoc=True,
                                       inputFunctions=None,
                                       outputFunctions=None)
예제 #4
0
파일: track.py 프로젝트: ANL-CESAR/openmc
def main():
    # Parse commandline arguments.
    args = _parse_args()

    # Check input file extensions.
    for fname in args.input:
        if not (fname.endswith('.h5') or fname.endswith('.binary')):
            raise ValueError("Input file names must either end with '.h5' or"
                             "'.binary'.")
    
    # Make sure that the output filename ends with '.pvtp'.
    if not args.out:
        args.out = 'tracks.pvtp'
    elif os.path.splitext(args.out)[1] != '.pvtp':
        args.out = ''.join([args.out, '.pvtp'])

    # Import HDF library if HDF files are present
    for fname in args.input:
        if fname.endswith('.h5'):
            import h5py
            break

    # Initialize data arrays and offset.
    points = vtk.vtkPoints()
    cells = vtk.vtkCellArray()
    point_offset = 0
    for fname in args.input:
        # Write coordinate values to points array.
        if fname.endswith('.binary'):
            track = open(fname, 'rb').read()
            coords = [struct.unpack("ddd", track[24*i : 24*(i+1)])
                      for i in range(len(track)/24)]
            n_points = len(coords)
            for triplet in coords:
                points.InsertNextPoint(triplet)
        else:
            coords = h5py.File(fname).get('coordinates')
            n_points = coords.shape[0]
            for i in range(n_points):
                points.InsertNextPoint(coords[i,:])
                
        # Create VTK line and assign points to line.
        line = vtk.vtkPolyLine()
        line.GetPointIds().SetNumberOfIds(n_points)
        for i in range(n_points):
            line.GetPointIds().SetId(i, point_offset+i)
        
        cells.InsertNextCell(line)
        point_offset += n_points
    data = vtk.vtkPolyData()
    data.SetPoints(points)
    data.SetLines(cells)
    
    writer = vtk.vtkXMLPPolyDataWriter()
    writer.SetInput(data)
    writer.SetFileName(args.out)
    writer.Write()
예제 #5
0
  def CreateVtkPolyDataWriter(self):
    mypid = SmartGetLocalProcessId()

    pm = paraview.servermanager.vtkProcessModule.GetProcessModule()
    globalController = pm.GetGlobalController()
    #gLocalProcessId = globalController.GetLocalProcessId()
    numproc = globalController.GetNumberOfProcesses()

    if PhactoriDbg(100):
      myDebugPrint3("numproc " + str(numproc) + " mypid " + str(mypid) + "\n")
    self.mWriter = vtk.vtkXMLPPolyDataWriter()
    self.mWriter.SetInputData(self.mFilterToWriteDataFrom.GetClientSideObject().GetOutputDataObject(0))
    self.mWriter.SetNumberOfPieces(numproc)
    self.mWriter.SetStartPiece(mypid)
    self.mWriter.SetEndPiece(mypid)
    self.mWriter.SetUseSubdirectory(True)
예제 #6
0
    serialWriter.SetFileName('pathlines-serial-' + fileString + '.vtp')
    if vtk.VTK_MAJOR_VERSION == 6:
        serialWriter.SetInputData(cleaner.GetOutput())
    else:
        serialWriter.SetInput(cleaner.GetOutput())
    serialWriter.Write()

# else write out parallel files
else:

    # write out local file, note that name HAS to be with the underscore
    localWriter = vtk.vtkXMLPolyDataWriter()
    localWriter.SetFileName('pathlines-' + fileString + '_' + str(rank) +
                            '.vtp')
    if vtk.VTK_MAJOR_VERSION == 6:
        localWriter.SetInputData(vtkPolyData)
    else:
        localWriter.SetInput(vtkPolyData)
    localWriter.Write()

    # write out the master .pvtp file
    if rank == 0:
        parallelWriter = vtk.vtkXMLPPolyDataWriter()
        parallelWriter.SetFileName('pathlines-' + fileString + '.pvtp')
        parallelWriter.SetNumberOfPieces(size)
        if vtk.VTK_MAJOR_VERSION == 6:
            parallelWriter.SetInputData(vtkPolyData)
        else:
            parallelWriter.SetInput(vtkPolyData)
        parallelWriter.Write()