def __init__(self, infile, get_zone_sizes=True): self.infile = infile # get metainfo with vtk reader = vtkTecplotReader() reader.SetFileName(infile) reader.Update() # get title self.title = reader.GetDataTitle() # get variable names self.var_ct = reader.GetNumberOfDataArrays() self.var_names = [ reader.GetDataArrayName(i).strip() for i in range(self.var_ct) ] # get block_names self.block_ct = reader.GetNumberOfBlocks() self.block_names = [ reader.GetBlockName(i).strip() for i in range(self.block_ct) ] # get the zone positions within the file self.start = [] self.zone_lines = [] self.zone_length = [] self.skip = [] if get_zone_sizes: self._get_zone_ct() self._get_zone_sizes()
def read_with_vtk(filename): import vtk reader = vtk.vtkTecplotReader() reader.SetFileName(filename) reader.Update() exit() return
def get_zone_block_data(self): """Read the zone mesh-data with the aid of VTK from the tec-file.""" zone_data = [] reader = vtkTecplotReader() reader.SetFileName(self.infile) reader.Update() file_blocks = reader.GetOutput() # iterate over all blocks for i in range(self.block_ct): # get the i-th block which is an instance of class vtkDataObject block = file_blocks.GetBlock(i) # read the single block reader_found = False for datasettype in tecreader_dict: if block.IsA(datasettype): block_reader = tecreader_dict[datasettype][1] reader_found = True break if not reader_found: print(self.infile + ": file not valid") return {} else: zone_data.append(block_reader(block)) return zone_data
import vtk inputfile = "test_tecplot.dat" reader = vtk.vtkTecplotReader() reader.SetFileName(inputfile) mapper = vtk.vtkPolyDataMapper() if vtk.VTK_MAJOR_VERSION <= 5: mapper.SetInput(reader.GetOutput()) else: mapper.SetInputConnection(reader.GetOutputPort()) actor = vtk.vtkActor() actor.SetMapper(mapper) # Create a rendering window and renderer ren = vtk.vtkRenderer() renWin = vtk.vtkRenderWindow() renWin.AddRenderer(ren) # Create a renderwindowinteractor iren = vtk.vtkRenderWindowInteractor() iren.SetRenderWindow(renWin) # Assign actor to the renderer ren.AddActor(actor) # Enable user interface interactor iren.Initialize() renWin.Render() iren.Start()