def __init__(self, module_manager): SimpleVTKClassModuleBase.__init__( self, module_manager, vtk.vtkEnSightGoldBinaryReader(), 'Reading vtkEnSightGoldBinary.', (), ('vtkEnSightGoldBinary',), replaceDoc=True, inputFunctions=None, outputFunctions=None)
def readDataSet(fileName, **kwargs): """Read the dataset from a file. The reader type used is determined from the file extension. Returns: +------------+----------------------+ | File ext. | Return type | +============+======================+ | .vtp | vtkPolyData | +------------+----------------------+ | .vtu | vtkUnstructuredGrid | +------------+----------------------+ | .vti | vtkImageData | +------------+----------------------+ | .stl | vtkPolyData | +------------+----------------------+ | .case | vtkMultiBlockDataSet | +------------+----------------------+ """ if not os.path.isfile(fileName): raise RuntimeError('The file', fileName, 'did not exist') filePrefix, fileExtension = os.path.splitext(fileName) if fileExtension == '.vtp': reader = vtk.vtkXMLPolyDataReader() elif fileExtension == '.vtu': reader = vtk.vtkXMLUnstructuredGridReader() elif fileExtension == '.vti': reader = vtk.vtkXMLImageDataReader() elif fileExtension == '.vtm': reader = vtk.vtkXMLMultiBlockDataReader() elif fileExtension == '.stl': reader = vtk.vtkSTLReader() elif fileExtension == '.vtk': #reader = _createVTKReader(fileName) reader = vtk.vtkDataSetReader() elif fileExtension == '.case': reader = vtk.vtkEnSightGoldBinaryReader() for k, v in kwargs.items(): if k == 'disableCellArrays': for arrName in v: reader.GetCellDataArraySelection().DisableArray(arrName) elif k == 'disablePointArrays': for arrName in v: reader.GetPointDataArraySelection().DisableArray(arrName) else: raise RuntimeError('Unknown keyword argument' + str(k)) else: raise RuntimeError('Unknown file extension', fileExtension) if fileExtension == '.case': reader.SetCaseFileName(fileName) else: reader.SetFileName(fileName) reader.Update() return reader.GetOutput()
def __init__(self, module_manager): SimpleVTKClassModuleBase.__init__(self, module_manager, vtk.vtkEnSightGoldBinaryReader(), 'Reading vtkEnSightGoldBinary.', (), ('vtkEnSightGoldBinary', ), replaceDoc=True, inputFunctions=None, outputFunctions=None)
def compute_snapshot(filename, timestep, args): reader = vtk.vtkEnSightGoldBinaryReader() reader.SetCaseFileName(filename) reader.SetTimeValue(timestep) reader.Modified() reader.Update() dataSet = reader.GetOutput() merger = vtk.vtkAppendFilter() for arg in args: data = vtkio.getBlockByName(dataSet, arg) merger.AddInputData(data) merger.Update() ds = dsa.WrapDataObject(merger.GetOutput()) #vorticity = algs.vorticity(ds.CellData['Velocity'], ds) #ds1 = dsa.WrapDataObject(vorticity #del ds, merger, reader del dataSet, merger, reader return np.sqrt((ds.CellData['Velocity']*ds.CellData['Velocity']).sum(axis=1))
def readDataSet(fileName): """Read the dataset from a file. The reader type used is determined from the file extension. Returns: +------------+----------------------+ | File ext. | Return type | +============+======================+ | .vtp | vtkPolyData | +------------+----------------------+ | .vtu | vtkUnstructuredGrid | +------------+----------------------+ | .vti | vtkImageData | +------------+----------------------+ | .stl | vtkPolyData | +------------+----------------------+ | .case | vtkMultiBlockDataSet | +------------+----------------------+ """ if not os.path.isfile(fileName): raise RuntimeError('The file', fileName, 'did not exist') filePrefix, fileExtension = os.path.splitext(fileName) if fileExtension == '.vtp': reader = vtk.vtkXMLPolyDataReader() elif fileExtension == '.vtu': reader = vtk.vtkXMLUnstructuredGridReader() elif fileExtension == '.vti': reader = vtk.vtkXMLImageDataReader() elif fileExtension == '.stl': reader = vtk.vtkSTLReader() elif fileExtension == '.case': reader = vtk.vtkEnSightGoldBinaryReader() else: raise RuntimeError('Unknown file extension', fileExtension) if fileExtension == '.case': reader.SetCaseFileName(fileName) else: reader.SetFileName(fileName) reader.Update() return reader.GetOutput()
def readDataSet(fileName): if not os.path.isfile(fileName): raise RuntimeError('The file', fileName, 'did not exist') filePrefix, fileExtension = os.path.splitext(fileName) if fileExtension == '.vtp': reader = vtk.vtkXMLPolyDataReader() reader.SetFileName(fileName) elif fileExtension == '.vtu': reader = vtk.vtkXMLUnstructuredGridReader() reader.SetFileName(fileName) elif fileExtension == '.stl': reader = vtk.vtkSTLReader() reader.SetFileName(fileName) elif fileExtension == '.case': reader = vtk.vtkEnSightGoldBinaryReader() reader.SetCaseFileName(fileName) else: raise RuntimeError('Unknown file extension', fileExtension) reader.Update() return reader.GetOutput()
import vtk from vtk.test import Testing from vtk.util.misc import vtkGetDataRoot VTK_DATA_ROOT = vtkGetDataRoot() # we need to use composite data pipeline with multiblock datasets alg = vtk.vtkAlgorithm() pip = vtk.vtkCompositeDataPipeline() alg.SetDefaultExecutivePrototype(pip) del pip ren1 = vtk.vtkRenderer() renWin = vtk.vtkRenderWindow() renWin.AddRenderer(ren1) iren = vtk.vtkRenderWindowInteractor() iren.SetRenderWindow(renWin) reader = vtk.vtkEnSightGoldBinaryReader() reader.SetCaseFileName("" + str(VTK_DATA_ROOT) + "/Data/EnSight/naca.bin.case") reader.SetTimeValue(3) lut = vtk.vtkLookupTable() lut.SetHueRange(0.667,0.0) lut.SetTableRange(0.636,1.34) geom = vtk.vtkGeometryFilter() geom.SetInputConnection(reader.GetOutputPort()) blockMapper0 = vtk.vtkHierarchicalPolyDataMapper() blockMapper0.SetInputConnection(geom.GetOutputPort()) blockActor0 = vtk.vtkActor() blockActor0.SetMapper(blockMapper0) ren1.AddActor(blockActor0) ren1.ResetCamera() cam1 = ren1.GetActiveCamera() cam1.SetFocalPoint(0,0,0)
path = f'../ensi/{problem_name}.ensi.case' outpath = './' varname = 'VELOC' ndimensions = 3 starttime = 1 endtime = 2 field_id = 1 assert( os.path.isfile(path) ) os.makedirs(outpath,exist_ok=True) rdr = vtk.vtkEnSightGoldBinaryReader() rdr.SetCaseFileName(path) rdr.ReadAllVariablesOn() rdr.Update() #figure out the timeline for the variable timeset_id = -1 for i in range(rdr.GetTimeSets().GetNumberOfItems()): if varname in rdr.GetPointArrayName(i): timeset_id = i if timeset_id<0: print('Timeset of the variable ',varname, ' not found in the case. Check the spelling of the variable name')
def ecrivtkbis(filename,PHI,sortie,change_domaine,nom,nom_champ): # Pour ecrire sur le maillage de code_saturne (ou sur un maillage Ensight en general) #Ecriture en VTK d un fichier EnsightGoldBinaries # en entree # filename : l adresse du fichier ( ex : "/Calcul/eliberge/DATA/240_SNAP/CHR.case") # PHI : variable a ecrire PHI(nombre de cellules, nombre de mode, dimension) ou PHI(nombre de cellules, dimension) (ou PHI(nombre de cellules, nombre de modes) ) ou PHI(nombre de cellules) # sortie : repertoire de sortie #variable : nom a donner a la variable import vtk #~ del(grid) #~ del(vectors) #~ print variable #~ print PHI[0,:,0] #~ print PHI[0,:,1] if change_domaine==1: vtkfile=vtk.vtkUnstructuredGridReader() vtkfile.SetFileName('%s/mask.vtk' %(sortie)) vtkfile.Update() grid=vtkfile.GetOutput() else : reader=vtk.vtkEnSightGoldBinaryReader() reader.SetCaseFileName(filename) reader.Update() mstructure=reader.GetOutput().GetBlock(0) grid = vtk.vtkUnstructuredGrid() grid.SetPoints(mstructure.GetPoints()) grid.SetCells(mstructure.GetCellTypesArray(),mstructure.GetCellLocationsArray(), mstructure.GetCells()) volume=mstructure.GetCellData().GetArray('Volume_cellule') if len(PHI.shape) == 3 : nbve=PHI[:,0,0].size nmode=PHI[0,:,0].size ndim=PHI[0,0,:].size for i in range(nmode): vectors = vtk.vtkFloatArray() vectors.SetNumberOfComponents(3) vectors.SetNumberOfTuples(nbve) vectors.SetName("%s%d" %(nom_champ,i)) for k in range(nbve): vectors.InsertTuple3(k, PHI[k,i,0],PHI[k,i,1],PHI[k,i,2]) grid.GetCellData().AddArray(vectors) grid.GetCellData().SetActiveVectors("%s%d" %(nom_champ,i)) #~ grid.GetCellData().AddArray(volume) #~ grid.GetCellData().SetActiveScalars("Volume_cellule") vtkfile=vtk.vtkUnstructuredGridWriter() vtkfile.SetInput(grid) vtkfile.SetFileName('%s/%s.vtk' %(sortie,nom)) vtkfile.Write() else : if len(PHI.shape) == 2 : if PHI[0,:].size == 3 : nbve=PHI[:,0].size ndim=PHI[0,:].size vectors = vtk.vtkFloatArray() vectors.SetNumberOfComponents(3) vectors.SetNumberOfTuples(nbve) vectors.SetName("%s" %(nom_champ)) for k in range(nbve): vectors.InsertTuple3(k, PHI[k,0],PHI[k,1],PHI[k,2]) grid.GetCellData().AddArray(vectors) grid.GetCellData().SetActiveVectors("%s" %(nom_champ)) #~ grid.GetCellData().AddArray(volume) #~ grid.GetCellData().SetActiveScalars("volume") vtkfile=vtk.vtkUnstructuredGridWriter() vtkfile.SetInput(grid) vtkfile.SetFileName('%s/%s.vtk' %(sortie,nom)) vtkfile.Write() else : nbve=PHI[:,0].size nmode=PHI[0,:].size for i in range(nmode): vectors = vtk.vtkFloatArray() vectors.SetNumberOfComponents(1) vectors.SetNumberOfTuples(nbve) vectors.SetName("%s%d" %(nom_champ,i)) for k in range(nbve): vectors.InsertTuple1(k, PHI[k,i]) grid.GetCellData().AddArray(vectors) grid.GetCellData().SetActiveScalars("%s%d" %(nom_champ,i)) #~ grid.GetCellData().AddArray(volume) #~ grid.GetCellData().SetActiveScalars("volume") vtkfile=vtk.vtkUnstructuredGridWriter() vtkfile.SetInput(grid) vtkfile.SetFileName('%s/%s.vtk' %(sortie,nom)) vtkfile.Write() else : nbve=PHI[:].size vectors = vtk.vtkFloatArray() vectors.SetNumberOfComponents(1) vectors.SetNumberOfTuples(nbve) vectors.SetName("%s" %(nom_champ)) for k in range(nbve): vectors.InsertTuple1(k, PHI[k]) grid.GetCellData().AddArray(vectors) grid.GetCellData().SetActiveScalars("%s" %(nom_champ)) #~ grid.GetCellData().AddArray(volume) #~ grid.GetCellData().SetActiveScalars("volume") vtkfile=vtk.vtkUnstructuredGridWriter() vtkfile.SetInput(grid) vtkfile.SetFileName('%s/%s.vtk' %(sortie,nom)) vtkfile.Write()
def ensight2vtk(file_path, out_dir, file_name, vtu_out_1="wall_outfile_node.vtu", vtu_out_2="inlet_outfile_node.vtu", vtu_out_3="interior_outfile_node.vtu", wall=True, inlet=True, interior=True, interior_name="default_interior-1"): print(wall, inlet, interior) if not os.path.exists(out_dir): os.makedirs(out_dir) reader = vtk.vtkEnSightGoldBinaryReader() reader.SetFilePath(file_path) reader.SetCaseFileName(file_name) reader.Update() # solution_writer = vtk.vtkXMLMultiBlockDataWriter() # solution_writer.SetFileName(os.path.join(out_dir, vtu_out_3)) # solution_writer.SetInputData(reader.GetOutput()) # solution_writer.Write() append = vtk.vtkAppendFilter() append.MergePointsOn() append2 = vtk.vtkAppendFilter() append2.MergePointsOn() append3 = vtk.vtkAppendFilter() append3.MergePointsOn() time_sets = reader.GetTimeSets() time_array = time_sets.GetItem(0) current_time = reader.GetTimeValue() print(current_time) if (wall): writer = vtk.vtkXMLUnstructuredGridWriter() writer.SetFileName(os.path.join(out_dir, vtu_out_1)) writer.SetNumberOfTimeSteps(int(time_array.GetNumberOfTuples())) writer.SetInputConnection(append.GetOutputPort()) writer.Start() if (inlet): writer2 = vtk.vtkXMLUnstructuredGridWriter() writer2.SetFileName(os.path.join(out_dir,vtu_out_2)) writer2.SetNumberOfTimeSteps(int(time_array.GetNumberOfTuples())) writer2.SetInputConnection(append2.GetOutputPort()) writer2.Start() if(interior): writer3 = vtk.vtkXMLUnstructuredGridWriter() writer3.SetFileName(os.path.join(out_dir,vtu_out_3)) writer3.SetNumberOfTimeSteps(int(time_array.GetNumberOfTuples())) writer3.SetInputConnection(append3.GetOutputPort()) writer3.Start() print("Number of Blocks: {0}".format(time_array.GetNumberOfTuples())) for i in range(time_array.GetNumberOfTuples()): next_time = time_array.GetTuple(i)[0] print(next_time) if( current_time == next_time): print("first time") pass else: # update the reader reader.SetTimeValue(next_time) current_time = next_time reader.Update() print("success") #N = reader.GetNumberOfCellArrays() N = reader.GetOutput().GetNumberOfBlocks() for i in range(0, N): name = reader.GetOutput().GetMetaData(i).Get(vtk.vtkCompositeDataSet.NAME()) if (wall): if (name.split(':')[-1] == "wall"): append.AddInputData(reader.GetOutput().GetBlock(i)) print("saving just the {0} in block {1}".format(name, i)) if(inlet): if (name.split(':')[-1].split('_')[0] in ["inlet", "ica"]): append2.AddInputData(reader.GetOutput().GetBlock(i)) print("saving just the {0} in block {1}".format(name, i)) if(interior): if (name == interior_name): append3.AddInputData(reader.GetOutput().GetBlock(i)) print("saving just the {0} in block {1}".format(name, i)) if(wall): writer.WriteNextTime(current_time) if(inlet): writer2.WriteNextTime(current_time) if(interior): writer3.WriteNextTime(current_time) if (current_time == reader.GetMaximumTimeValue()): pass else: for i in range(0, N): name = reader.GetOutput().GetMetaData(i).Get(vtk.vtkCompositeDataSet.NAME()) if (wall): if (name.split(':')[-1] == "wall"): append.RemoveInputData(reader.GetOutput().GetBlock(i)) #print("removing the {0} in block {1}".format(name, i)) if(inlet): if (name.split(':')[-1].split('_')[0] in ["inlet", "ica"]): append2.RemoveInputData(reader.GetOutput().GetBlock(i)) #print("removing the {0} in block {1}".format(name, i)) if(interior): if (name == interior_name): append3.RemoveInputData(reader.GetOutput().GetBlock(i)) #print("removing the {0} in block {1}".format(name, i)) if(wall): writer.Stop() if(inlet): writer2.Stop() if(interior): writer3.Stop()