Esempio n. 1
2
def Create_Topo(Slope,Plane):
	ugrid = vtk.vtkUnstructuredGrid()
	gridreader=vtk.vtkUnstructuredGridReader()
	gridreader.SetFileName(Slope)
	gridreader.Update()
	ugrid = gridreader.GetOutput()
	GeomFilt1 = vtk.vtkGeometryFilter()
	GeomFilt1.SetInput(ugrid)
	GeomFilt1.Update()
	x = GeomFilt1.GetOutput()

	u = vtk.vtkUnstructuredGrid()
	bgridreader=vtk.vtkXMLUnstructuredGridReader()
	bgridreader.SetFileName(Plane)
	bgridreader.Update()
	u = bgridreader.GetOutput() 
	GeomFilt2 = vtk.vtkGeometryFilter()
	GeomFilt2.SetInput(u)
	GeomFilt2.Update()
	y = GeomFilt2.GetOutput()

	append = vtk.vtkAppendPolyData()
	append.AddInput(x)
	append.AddInput(y)
	data = append.GetOutput()

	d = vtk.vtkDelaunay3D()
	d.SetInput(data)
	d.Update
	d.BoundingTriangulationOff()  
	d.SetTolerance(0.00001)
	d.SetAlpha(0)
	d.Update()
	z = d.GetOutput()
	return z
Esempio n. 2
0
    def __init__(self):
        self.files = []
        self.timestep = -1

        self.geometry = vtk.vtkUnstructuredGridReader()
        self.geometry_mapper = vtk.vtkDataSetMapper()
        self.geometry_actor = vtk.vtkActor()

        self.positions = vtk.vtkUnstructuredGridReader()
        self.positions_mapper = vtk.vtkDataSetMapper()
        self.positions_actor = vtk.vtkActor()

        self.geometry_mapper.SetInput(self.geometry.GetOutput())
        self.positions_mapper.SetInput(self.positions.GetOutput())
        self.positions_mapper.ScalarVisibilityOff()

        self.geometry_actor.SetMapper(self.geometry_mapper)
        self.geometry_actor.GetProperty().SetOpacity(0.2)

        self.positions_actor.SetMapper(self.positions_mapper)
        self.positions_actor.GetProperty().SetColor(light_grey)

        self.ren = vtk.vtkRenderer()
        self.ren_win = GtkGLExtVTKRenderWindow()
        self.ren_win.GetRenderWindow().AddRenderer(self.ren)

        self.ren.AddActor(self.geometry_actor)
        self.ren.AddActor(self.positions_actor)
        self.ren.SetBackground(0.1, 0.2, 0.4)
Esempio n. 3
0
    def __init__(self):
        self.files = []
        self.timestep = -1

        self.geometry = vtk.vtkUnstructuredGridReader()
        self.geometry_mapper = vtk.vtkDataSetMapper()
        self.geometry_actor = vtk.vtkActor()

        self.positions = vtk.vtkUnstructuredGridReader()
        self.positions_mapper = vtk.vtkDataSetMapper()
        self.positions_actor = vtk.vtkActor()

        self.geometry_mapper.SetInput(self.geometry.GetOutput())
        self.positions_mapper.SetInput(self.positions.GetOutput())
        self.positions_mapper.ScalarVisibilityOff()

        self.geometry_actor.SetMapper(self.geometry_mapper)
        self.geometry_actor.GetProperty().SetOpacity(0.2)

        self.positions_actor.SetMapper(self.positions_mapper)
        self.positions_actor.GetProperty().SetColor(light_grey)

        self.ren = vtk.vtkRenderer()
        self.ren_win = GtkGLExtVTKRenderWindow()
        self.ren_win.GetRenderWindow().AddRenderer(self.ren)

        self.ren.AddActor(self.geometry_actor)
        self.ren.AddActor(self.positions_actor)
        self.ren.SetBackground(0.1, 0.2, 0.4)
def read_ugrid(filename):
    if filename.endswith(".pvtu"):
        reader = vtk.vtkXMLPUnstructuredGridReader()
    elif filename.endswith(".vtk"):
        reader = vtk.vtkUnstructuredGridReader()
    elif filename.endswith(".vtu"):
        reader = vtk.vtkUnstructuredGridReader()
    else:
        raise BaseException("Illegal filename suffix %s" % filename)

    reader.SetFileName(filename)
    reader.Update()

    return reader.GetOutput()
Esempio n. 5
0
def read_ugrid(filename):
    if filename.endswith(".pvtu"):
        reader = vtk.vtkXMLPUnstructuredGridReader()
    elif filename.endswith(".vtk"):
        reader = vtk.vtkUnstructuredGridReader()
    elif filename.endswith(".vtu"):
        reader = vtk.vtkUnstructuredGridReader()
    else:
        raise BaseException("Illegal filename suffix %s" % filename)

    reader.SetFileName(filename)
    reader.Update()

    return reader.GetOutput()
def readUGrid(
        filename,
        verbose=1):

    myVTK.myPrint(verbose, "*** readUGrid: " + filename + " ***")

    if ('vtk' in filename):
        ugrid_reader = vtk.vtkUnstructuredGridReader()
    elif ('vtu' in filename):
        ugrid_reader = vtk.vtkXMLUnstructuredGridReader()
    else:
        assert 0, "File must be .vtk or .vtu. Aborting."

    assert (os.path.isfile(filename)), "Wrong filename. Aborting."

    ugrid_reader.SetFileName(filename)
    ugrid_reader.Update()
    ugrid = ugrid_reader.GetOutput()

    if (verbose):
        n_points = ugrid.GetNumberOfPoints()
        print 'n_points =', n_points

        n_cells = ugrid.GetNumberOfCells()
        print 'n_cells =', n_cells

    return ugrid
Esempio n. 7
0
def read(filenames, timestep=None):
    '''Reads an unstructured mesh with added data.

    :param filenames: The files to read from.
    :type filenames: str
    :param timestep: Time step to read from, in case of an Exodus input mesh.
    :type timestep: int, optional
    :returns mesh{2,3}d: The mesh data.
    :returns point_data: Point data read from file.
    :type point_data: dict
    :returns field_data: Field data read from file.
    :type field_data: dict
    '''
    if isinstance(filenames, (list, tuple)) and len(filenames)==1:
        filenames = filenames[0]

    if isinstance(filenames, basestring):
        filename = filenames
        # serial files
        extension = os.path.splitext(filename)[1]

        import re
        # setup the reader
        # TODO Most readers have CanReadFile() -- use that.
        if extension == '.vtu':
            from vtk import vtkXMLUnstructuredGridReader
            reader = vtkXMLUnstructuredGridReader()
            vtk_mesh = _read_vtk_mesh(reader, filename)
        elif extension == '.vtk':
            from vtk import vtkUnstructuredGridReader
            reader = vtkUnstructuredGridReader()
            vtk_mesh = _read_vtk_mesh(reader, filename)
        elif extension == '.xmf':
            from vtk import vtkXdmfReader
            reader = vtkXdmfReader()
            vtk_mesh = _read_vtk_mesh(reader, filename)
        elif extension in [ '.ex2', '.exo', '.e' ]:
            from vtk import vtkExodusIIReader
            reader = vtkExodusIIReader()
            reader.SetFileName( filename )
            vtk_mesh = _read_exodusii_mesh(reader, timestep=timestep)
        elif re.match('[^\.]*\.e\.\d+\.\d+', filename):
            # Parallel Exodus files.
            # TODO handle with vtkPExodusIIReader
            from vtk import vtkExodusIIReader
            reader = vtkExodusIIReader()
            reader.SetFileName( filenames[0] )
            vtk_mesh = _read_exodusii_mesh(reader, timestep=timestep)
        else:
            raise RuntimeError( 'Unknown file type \'%s\'.' % filename )
    else:
        # Parallel files.
        # Assume Exodus format as we don't know anything else yet.
        from vtk import vtkPExodusIIReader
        # TODO Guess the file pattern or whatever.
        reader = vtkPExodusIIReader()
        reader.SetFileNames( filenames )
        vtk_mesh = _read_exodusii_mesh(reader, filename, timestep=timestep)

    return vtk_mesh
Esempio n. 8
0
def vtk_contours_actor(filename, count=10, color=False):
    import vtk

    # read the source file.
    reader = vtk.vtkUnstructuredGridReader()
    reader.SetFileName(filename)
    reader.Update()
    output = reader.GetOutput()
    scalar_range = output.GetScalarRange()

    # contours
    contours = vtk.vtkContourFilter()
    contours.SetInputConnection(reader.GetOutputPort())
    contours.GenerateValues(count, scalar_range)

    # map the contours to graphical primitives
    contMapper = vtk.vtkPolyDataMapper()
    contMapper.SetInput(contours.GetOutput())
    contMapper.SetScalarVisibility(color)  # colored contours
    contMapper.SetScalarRange(scalar_range)

    # create an actor for the contours
    contActor = vtk.vtkActor()
    contActor.SetMapper(contMapper)
    contActor.GetProperty().SetColor(0.2, 0.2, 0.2)
    contActor.GetProperty().SetLineWidth(1)

    return contActor
Esempio n. 9
0
def read(filetype, filename):
    if filetype == 'vtk':
        reader = vtk.vtkUnstructuredGridReader()
        reader.SetFileName(filename)
        reader.Update()
        vtk_mesh = reader.GetOutput()
    elif filetype == 'vtu':
        reader = vtk.vtkXMLUnstructuredGridReader()
        reader.SetFileName(filename)
        reader.Update()
        vtk_mesh = reader.GetOutput()
    elif filetype == 'exodus':
        reader = vtk.vtkExodusIIReader()
        reader.SetFileName(filename)
        vtk_mesh = _read_exodusii_mesh(reader)
    else:
        raise RuntimeError('Unknown file type \'%s\'.' % filename)

    # Explicitly extract points, cells, point data, field data
    points = vtk.util.numpy_support.vtk_to_numpy(
        vtk_mesh.GetPoints().GetData())
    cells = _read_cells(vtk_mesh)
    point_data = _read_data(vtk_mesh.GetPointData())
    cell_data = _read_data(vtk_mesh.GetCellData())
    field_data = _read_data(vtk_mesh.GetFieldData())

    return points, cells, point_data, cell_data, field_data
Esempio n. 10
0
    def unstructered_grid_reader(filename):
        # Read the source file.
        reader = vtk.vtkUnstructuredGridReader()
        reader.SetFileName(filename)
        reader.Update() # Needed because of GetScalarRange
        output = reader.GetOutput()
        scalar_range = output.GetScalarRange()

        # Create the mapper that corresponds the objects of the vtk file
        # into graphics elements
        mapper =vtk.vtkDataSetMapper()
        mapper.SetInputData(output)
        mapper.SetScalarRange(scalar_range)

        # Create the Actor
        actor = vtk.vtkActor()
        actor.SetMapper(mapper)

        # Create the Renderer
        renderer = vtk.vtkRenderer()
        renderer.AddActor(actor)
        renderer.SetBackground(1, 1, 1) # Set background to white

        # Create the RendererWindow
        renderer_window = vtk.vtkRenderWindow()
        renderer_window.AddRenderer(renderer)

        # Create the RendererWindowInteractor and display the vtk_file
        interactor = vtk.vtkRenderWindowInteractor()
        interactor.SetRenderWindow(renderer_window)
        interactor.Initialize()
        interactor.Start()
Esempio n. 11
0
def render_vtk(file_name):

    import vtk

    # Read the source file.
    reader = vtk.vtkUnstructuredGridReader()
    reader.SetFileName(file_name)
    reader.Update()  # Needed because of GetScalarRange
    output = reader.GetOutput()
    scalar_range = output.GetScalarRange()

    # Create the mapper that corresponds the objects of the vtk.vtk file
    # into graphics elements
    mapper = vtk.vtkDataSetMapper()
    mapper.SetInputData(output)
    mapper.SetScalarRange(scalar_range)

    # Create the Actor
    actor = vtk.vtkActor()
    actor.SetMapper(mapper)

    # Create the Renderer
    renderer = vtk.vtkRenderer()
    renderer.AddActor(actor)
    renderer.SetBackground(1, 1, 1)  # Set background to white

    # Create the RendererWindow
    renderer_window = vtk.vtkRenderWindow()
    renderer_window.AddRenderer(renderer)

    # Create the RendererWindowInteractor and display the vtk_file
    interactor = vtk.vtkRenderWindowInteractor()
    interactor.SetRenderWindow(renderer_window)
    interactor.Initialize()
    interactor.Start()
Esempio n. 12
0
	def get_node_data_n(self, file_name):
		"""
		Reads mesh information. Returns a numpy arrays of nodes & elements in 'abaqus' format.
		"""
		meshSource=vtk.vtkUnstructuredGridReader()
		meshSource.SetFileName(file_name)
		meshSource.Update()

		#get nodes & elements returned to numpy arrays
		nread=v2n(meshSource.GetOutput().GetPoints().GetData())
		#allocate for extra node numbers to be input
		node_data=np.zeros((np.shape(nread)[0],np.shape(nread)[1]+1))
		#reshape according to 'abaqus' standards (node num, coord1, 2 ...)
		node_data[:,0]=np.arange(np.shape(nread)[0])+1
		node_data[:,1:]=nread
		# print([np.shape(np.arange(np.shape(n)[0])].transpose()))
		e=v2n(meshSource.GetOutput().GetCells().GetData())

		#get cell types & reshape element array as needed.
		tcs=vtk.vtkCellTypes()
		meshSource.GetOutput().GetCellTypes(tcs)

		#reshape according to 'abaqus' standards (elem number, connectivity1 2 ...)
		if tcs.IsType(12)==1:
			self.mainCellType=12 #1st order quad
			element_data=np.resize(e,(int(len(e)/float(9)),9))
			element_data[:,0]=np.arange(np.shape(element_data)[0])+1
		elif tcs.IsType(24)==1:
			self.mainCellType=24 #2nd order tet
			element_data=np.resize(e,(int(len(e)/float(11)),11))
			element_data[:,0]=np.arange(np.shape(element_data)[0])+1
		# print(np.shape(node_data),np.shape(element_data)) #debug
		return node_data, element_data+1 #add one to the element number to match abaqus format
Esempio n. 13
0
def read_data_and_build_snapshot_matrix(x_min,x_max,y_min,y_max,z_min,z_max,snapshot_dir,file_list,\
      num_snapshots,num_points,num_components,var_name, A):
    reader = vtk.vtkUnstructuredGridReader()
    reader.ReadAllScalarsOn()
    reader.ReadAllVectorsOn()
    extract_region = "false"
    if ((x_min < x_max) and (y_min < y_max) and (z_min < z_max)):
        extract_region = "true"
        extract = vtk.vtkExtractUnstructuredGrid()
        extract.SetExtent(x_min, x_max, y_min, y_max, z_min, z_max)
        extract.MergingOn()
    u_temp_read = np.array(np.zeros((num_points, 3), dtype=np.float64))
    print '\n   Reading data ...'
    for j in range(0, num_snapshots + 1):
        print '      Reading file ', file_list[j].strip(
        ), 'file number ', j, ' of ', num_snapshots
        reader.SetFileName(snapshot_dir + file_list[j].strip())
        reader.Update()
        if (extract_region == "true"):
            extract.SetInput(reader.GetOutput())
            extract.Update()
            u_temp_read = VN.vtk_to_numpy(
                extract.GetOutput().GetPointData().GetVectors(var_name))
        else:
            u_temp_read = VN.vtk_to_numpy(
                reader.GetOutput().GetPointData().GetVectors(var_name))
        for k in range(0, num_components):
            A[k * num_points:(k + 1) * num_points, j] = u_temp_read[:, k]
Esempio n. 14
0
    def loadVtk(self, fname):
        """ Load a given VTK file into a vtkPolyData object """

        reader = vtk.vtkUnstructuredGridReader()
        reader.SetFileName(filename)
        reader.Update()
        self._vtk = reader.GetOutput()
Esempio n. 15
0
    def read_vtk(self, data_dir='./data', file_name='separatrices.vtk'):
        """
        Read the separatrices from a vtk file.

        call signature:

            read_vtk(data_dir='./data', file_name='separatrices.vtk')

        Arguments:

        *data_dir*:
            Origin data directory.

        *file_name*:
            Origin file name.
        """

        reader = vtk.vtkUnstructuredGridReader()
        reader.SetFileName(os.path.join(data_dir, file_name))
        reader.Update()
        output = reader.GetOutput()

        # Read the separatrices.
        points = output.GetPoints()
        cells = output.GetCells()
        self.separatrices = []
        self.connectivity = []
        for separatrix in range(points.GetNumberOfPoints()):
            self.separatrices.append(points.GetPoint(separatrix))
        self.separatrices = np.array(self.separatrices)
        self.connectivity = np.array([
            VN.vtk_to_numpy(cells.GetData())[1::3],
            VN.vtk_to_numpy(cells.GetData())[2::3]
        ])
        self.connectivity = self.connectivity.swapaxes(0, 1)
Esempio n. 16
0
    def create_from_vtk_file(cls, file_name='tests.vtk', in_xml_format=True):
        """
        Factory method: create checker from a given VTK mesh file

        :param file_name:
        :param in_xml_format:
        :return:
        """
        print('--> Reading file \'{}\'...'.format(file_name))

        reader = vtk.vtkXMLUnstructuredGridReader(
        ) if in_xml_format else vtk.vtkUnstructuredGridReader()
        reader.SetFileName(file_name)
        reader.Update()

        op = reader.GetOutput()

        vtk_mesh = vtk.vtkUnstructuredGrid()

        vtk_mesh.SetPoints(op.GetPoints())

        # add the elements
        for ele_idx in range(op.GetNumberOfCells()):
            vtk_ele = op.GetCell(ele_idx)
            vtk_mesh.InsertNextCell(vtk_ele.GetCellType(),
                                    vtk_ele.GetPointIds())

        return VTKMeshChecker(vtk_mesh)
def read_data_and_build_snapshot_matrix(x_min,x_max,y_min,y_max,z_min,z_max,snapshot_dir,file_list,\
						num_snapshots,num_points,num_components,var_name, A):
	reader = vtk.vtkUnstructuredGridReader()
	reader.ReadAllScalarsOn()
	reader.ReadAllVectorsOn()
	extract_region = "false"
	if ( (x_min<x_max) and (y_min<y_max) and (z_min<z_max) ):
		extract_region = "true"
		extract = vtk.vtkExtractUnstructuredGrid()
		extract.SetExtent(x_min, x_max, y_min, y_max, z_min, z_max)
		extract.MergingOn()
	u_temp_read = np.array(np.zeros((num_points,3), dtype=np.float64))
	print '\n   Reading data ...'
	for j in range(0,num_snapshots+1):
		print '      Reading file ', file_list[j].strip(), 'file number ', j, ' of ', num_snapshots
		reader.SetFileName(snapshot_dir + file_list[j].strip())
		reader.Update()
		if (extract_region=="true"):
			extract.SetInput(reader.GetOutput())
			extract.Update()
			u_temp_read = VN.vtk_to_numpy(extract.GetOutput().GetPointData().GetVectors(var_name))
		else:
			u_temp_read = VN.vtk_to_numpy(reader.GetOutput().GetPointData().GetVectors(var_name))
		for k in range(0,num_components):
			A[k*num_points:(k+1)*num_points,j] = u_temp_read[:,k]
Esempio n. 18
0
    def _load_file(self, filename):
        """Load an unstructured grid from a file.

        The file extension will select the type of reader to use.  A .vtk
        extension will use the legacy reader, while .vtu will select the VTK
        XML reader.

        Parameters
        ----------
        filename : str
            Filename of grid to be loaded.

        """
        filename = os.path.abspath(os.path.expanduser(filename))
        # check file exists
        if not os.path.isfile(filename):
            raise Exception('%s does not exist' % filename)

        # Check file extension
        if '.vtu' in filename:
            reader = vtk.vtkXMLUnstructuredGridReader()
        elif '.vtk' in filename:
            reader = vtk.vtkUnstructuredGridReader()
        else:
            raise Exception('Extension should be either ".vtu" or ".vtk"')

        # load file to self
        reader.SetFileName(filename)
        reader.Update()
        grid = reader.GetOutput()
        self.shallow_copy(grid)
Esempio n. 19
0
    def __init__(self, vtk_filename=None, vtk_data=None):
        """
        Initiate Viwer

        Parameters
        ----------
        vtk_filename : str
            Input VTK filename
        """

        QDialog.__init__(self)
        self.initUI()

        ren = vtk.vtkRenderer()
        self.vtkWidget.GetRenderWindow().AddRenderer(ren)
        iren = self.vtkWidget.GetRenderWindow().GetInteractor()

        if vtk_filename is not None:
            # VTK file
            reader = vtk.vtkUnstructuredGridReader()
            reader.SetFileName(vtk_filename)
            reader.Update()
            vtkdata = reader.GetOutput()

        if vtk_data is not None:
            vtkdata = vtk_data

        # VTK surface
        surface = vtk.vtkDataSetSurfaceFilter()
        surface.SetInput(vtkdata)
        surface.Update()

        mapper = vtk.vtkDataSetMapper()
        mapper.SetInput(surface.GetOutput())

        actor = vtk.vtkActor()
        actor.SetMapper(mapper)
        actor.GetProperty().EdgeVisibilityOff()
        # actor.GetProperty().SetEdgeColor(1,1,1)
        # actor.GetProperty().SetLineWidth(0.1)
        ren.AddActor(actor)

        # annot. cube
        axesActor = vtk.vtkAnnotatedCubeActor()
        axesActor.SetXPlusFaceText('R')
        axesActor.SetXMinusFaceText('L')
        axesActor.SetYMinusFaceText('H')
        axesActor.SetYPlusFaceText('F')
        axesActor.SetZMinusFaceText('A')
        axesActor.SetZPlusFaceText('P')
        axesActor.GetTextEdgesProperty().SetColor(1, 1, 0)
        axesActor.GetCubeProperty().SetColor(0, 0, 1)
        self.axes = vtk.vtkOrientationMarkerWidget()
        self.axes.SetOrientationMarker(axesActor)
        self.axes.SetInteractor(iren)
        self.axes.EnabledOn()
        self.axes.InteractiveOn()

        ren.ResetCamera()
        iren.Initialize()
 def __init__(self, module_manager):
     SimpleVTKClassModuleBase.__init__(
         self, module_manager,
         vtk.vtkUnstructuredGridReader(), 'Reading vtkUnstructuredGrid.',
         (), ('vtkUnstructuredGrid',),
         replaceDoc=True,
         inputFunctions=None, outputFunctions=None)
Esempio n. 21
0
   def vtkReadVTKfile(self, filename):
      """ Lecture d'un fichier vtk"""
      # Read the source file.
      reader = vtk.vtkUnstructuredGridReader()
      reader.SetFileName(filename)
      reader.Update() # Needed because of GetScalarRange
      
      surface_filter = vtk.vtkDataSetSurfaceFilter()
      surface_filter.SetInputConnection(reader.GetOutputPort()) 
      
      self.meshNormals = vtk.vtkPolyDataNormals()
      self.meshNormals.SetInputConnection(surface_filter.GetOutputPort())
      self.meshNormals.SetFeatureAngle(60.0)
      self.meshNormals.ComputeCellNormalsOn()
      self.meshNormals.ComputePointNormalsOn()
      self.meshNormals.ConsistencyOn()
      self.meshNormals.AutoOrientNormalsOn()
      self.meshNormals.Update()
      
      # Sauvegarde des proprietes maillage GMSH pour calcul centerline
      self.gmeshNode  = vtk_to_np(surface_filter.GetOutput().GetPoints().GetData())
      self.gmeshTable = vtk_to_np(surface_filter.GetOutput().GetPolys().GetData())
      
      # The quadric has nasty discontinuities from the way the edges are generated
      # so let's pass it though a CleanPolyDataFilter and merge any points which
      # are coincident, or very close
 
      self.outputMesh = vtk.vtkCleanPolyData()
      self.outputMesh.SetInputConnection(surface_filter.GetOutputPort())
      self.outputMesh.SetTolerance(0.001)
Esempio n. 22
0
    def vtkReadVTKfile(self, filename='not defined'):
        """ Lecture d'un fichier vtk"""
        # Read the source file.
        print "----------------------------------------------------"
        print "Read geometric surface"
        print "----------------------------------------------------"
        reader = vtk.vtkUnstructuredGridReader()
        reader.SetFileName(os.path.join(self.read_path, filename))
        reader.Update()  # Needed because of GetScalarRange

        surface_filter = vtk.vtkDataSetSurfaceFilter()
        surface_filter.SetInputConnection(reader.GetOutputPort())

        self.meshNormals = vtk.vtkPolyDataNormals()
        self.meshNormals.SetInputConnection(surface_filter.GetOutputPort())
        self.meshNormals.Update()

        #~ self.normales = VN.vtk_to_numpy(self.meshNormals.GetOutput().GetPointData().GetNormals())
        self.meshNode = VN.vtk_to_numpy(
            surface_filter.GetOutput().GetPoints().GetData())
        self.meshTable = VN.vtk_to_numpy(
            surface_filter.GetOutput().GetPolys().GetData())
        self.meshTable = self.meshTable.reshape(self.meshTable.shape[0] / 4,
                                                4)[:, 1:]

        self.nbDof = self.meshNode.shape[0]
        self.nbElem = self.meshTable.shape[0]
Esempio n. 23
0
def vtk_contours_actor(filename, count=10, color=False):
    import vtk

    # read the source file.
    reader = vtk.vtkUnstructuredGridReader()
    reader.SetFileName(filename)
    reader.Update()
    output = reader.GetOutput()
    scalar_range = output.GetScalarRange()

    # contours
    contours = vtk.vtkContourFilter()
    contours.SetInputConnection(reader.GetOutputPort())
    contours.GenerateValues(count, scalar_range)

    # map the contours to graphical primitives
    contMapper = vtk.vtkPolyDataMapper()
    contMapper.SetInput(contours.GetOutput())
    contMapper.SetScalarVisibility(color)  # colored contours
    contMapper.SetScalarRange(scalar_range)

    # create an actor for the contours
    contActor = vtk.vtkActor()
    contActor.SetMapper(contMapper)
    contActor.GetProperty().SetColor(0.2, 0.2, 0.2)
    contActor.GetProperty().SetLineWidth(1)

    return contActor
Esempio n. 24
0
    def read_vtk(self, data_dir='./data', file_name='separatrices.vtk'):
        """
        Read the separatrices from a vtk file.

        call signature:

            read_vtk(data_dir='./data', file_name='separatrices.vtk')

        Arguments:

        *data_dir*:
            Origin data directory.

        *file_name*:
            Origin file name.
        """

        reader = vtk.vtkUnstructuredGridReader()
        reader.SetFileName(os.path.join(data_dir, file_name))
        reader.Update()
        output = reader.GetOutput()

        # Read the separatrices.
        points = output.GetPoints()
        cells = output.GetCells()
        self.separatrices = []
        self.connectivity = []
        for separatrix in range(points.GetNumberOfPoints()):
            self.separatrices.append(points.GetPoint(separatrix))
        self.separatrices = np.array(self.separatrices)
        self.connectivity = np.array([VN.vtk_to_numpy(cells.GetData())[1::3],
                                      VN.vtk_to_numpy(cells.GetData())[2::3]])
        self.connectivity = self.connectivity.swapaxes(0, 1)
Esempio n. 25
0
    def __init__(self):
        """
        Constructor
        no args
        """

        # (dstCellId, srcCellId) -> weight as a 4x4 matrix
        self.weights = {}

        self.srcReader = vtk.vtkUnstructuredGridReader()
        self.srcGrid = vtk.vtkUnstructuredGrid()
        self.srcLoc = vtk.vtkCellLocator()
        self.srcEdgeField = []

        self.dstReader = vtk.vtkUnstructuredGridReader()
        self.dstGrid = vtk.vtkUnstructuredGrid()
Esempio n. 26
0
def createCellLocator(a_FileName, a_LocatorType=None, a_Legacy='vtp'):
    if a_FileName.endswith('vtu'):
        reader = vtk.vtkXMLUnstructuredGridReader()
    elif a_FileName.endswith('vtp'):
        reader = vtk.vtkXMLPolyDataReader()
    elif a_FileName.endswith('.vtk'):
        if a_Legacy == 'none':
            print("Need To Specify Data Type For Legacy Files")
            sys.exit()
        elif a_Legacy == 'vtu':
            reader = vtk.vtkUnstructuredGridReader()
        elif a_Legacy == 'vtp':
            reader = vtk.vtkPolyDataReader()
    else:
        print("Unsupported File Extension")
        sys.exit()

    reader.SetFileName(a_FileName)
    reader.Update()

    if a_LocatorType is None:
        locator = vtk.vtkCellTreeLocator()
    else:
        if a_LocatorType == 'oct':
            locator = vtk.vtkCellLocator()
        elif a_LocatorType == 'tre':
            locator = vtk.vtkCellTreeLocator()
        elif a_LocatorType == 'bsp':
            locator = vtk.vtkModifiedBSPTree()

    locator.SetDataSet(reader.GetOutput())
    locator.BuildLocator()

    return locator
Esempio n. 27
0
def readVTK(a_FileName, a_Legacy='none'):

    if a_FileName.endswith('.vtu'):
        reader = vtk.vtkXMLUnstructuredGridReader()
    elif a_FileName.endswith('.vtp'):
        reader = vtk.vtkXMLPolyDataReader()
    elif a_FileName.endswith('.vtk'):
        if a_Legacy == 'none':
            print("Need To Specify Data Type For Legacy Files")
            sys.exit()
        elif a_Legacy == 'vtu':
            reader = vtk.vtkUnstructuredGridReader()
        elif a_Legacy == 'vtp':
            reader = vtk.vtkPolyDataReader()
    else:
        print("Unsupported File Extension")
        sys.exit()
        
    #print("Reading From File", a_FileName)

    reader.SetFileName(a_FileName)
    reader.Update()

    data = reader.GetOutput()

    return data
def get_number_of_points_and_boundary_faces(pod_mode_dir,calibrate_coefficients):
	filename = pod_mode_dir+"/spatial_meanfield.vtk"
	reader = vtk.vtkUnstructuredGridReader()
	reader.ReadAllScalarsOn()
	reader.ReadAllVectorsOn()
	reader.ReadAllTensorsOn()
	reader.SetFileName(filename)
	reader.Update()
	num_points = reader.GetOutput().GetNumberOfPoints()

	if( (calibrate_coefficients=="none") or (calibrate_coefficients=="constant") ):
		geom_filter = vtk.vtkDataSetSurfaceFilter()
		geom_filter.SetInput(reader.GetOutput())
		geom_filter.Update()
		boundary_faces = vtk.vtkPolyData()
		boundary_faces = geom_filter.GetOutput()

		point_to_cell_data = vtk.vtkPointDataToCellData()
		point_to_cell_data.SetInput(geom_filter.GetOutput())
		point_to_cell_data.Update()
		num_boundary_faces = point_to_cell_data.GetOutput().GetNumberOfCells()
	else:
		num_boundary_faces = 1

	return num_points, num_boundary_faces
Esempio n. 29
0
def importVTKMeshFile(fnVTK,
                      bkgdColor=[255, 255, 255],
                      color=[0, 0, 0],
                      renderer=None):
    """Imports a .vtk file into a vtk renderer and draws it as a wireframe.
	
	See also :py:func:`pyfrp.modules.pyfrp_vtk_module.unstructedGridToWireframe`.
	
	Keyword Args:
		fnVTK (str): Path to input vtk file.
		bkgdColor (list): Background color in RGB values.
		color (list): Color of mesh in RGB values.
		renderer (vtk.vtkRenderer): Some renderer.
		
	Returns:
		vtk.vtkRenderer: Renderer object.
	
	"""

    # Read the source file.
    reader = vtk.vtkUnstructuredGridReader()
    reader.SetFileName(fnVTK)
    reader.Update()
    output = reader.GetOutput()

    return unstructedGridToMesh(output,
                                bkgdColor=bkgdColor,
                                color=color,
                                renderer=None)
Esempio n. 30
0
def get_number_of_points_and_boundary_faces(pod_mode_dir,
                                            calibrate_coefficients):
    filename = pod_mode_dir + "/spatial_meanfield.vtk"
    reader = vtk.vtkUnstructuredGridReader()
    reader.ReadAllScalarsOn()
    reader.ReadAllVectorsOn()
    reader.ReadAllTensorsOn()
    reader.SetFileName(filename)
    reader.Update()
    num_points = reader.GetOutput().GetNumberOfPoints()

    if ((calibrate_coefficients == "none")
            or (calibrate_coefficients == "constant")):
        geom_filter = vtk.vtkDataSetSurfaceFilter()
        geom_filter.SetInput(reader.GetOutput())
        geom_filter.Update()
        boundary_faces = vtk.vtkPolyData()
        boundary_faces = geom_filter.GetOutput()

        point_to_cell_data = vtk.vtkPointDataToCellData()
        point_to_cell_data.SetInput(geom_filter.GetOutput())
        point_to_cell_data.Update()
        num_boundary_faces = point_to_cell_data.GetOutput().GetNumberOfCells()
    else:
        num_boundary_faces = 1

    return num_points, num_boundary_faces
Esempio n. 31
0
def read_vtk(filename) :
	import vtk
	import numpy as np
	reader=vtk.vtkUnstructuredGridReader()
	reader.SetFileName(filename)
	reader.Update()
	nbvv=reader.GetNumberOfVectorsInFile()
	nbss=reader.GetNumberOfScalarsInFile()
	m1=reader.GetOutput()
	numpoints=m1.GetNumberOfPoints()
	points=m1.GetPoints()
	xyz=np.zeros((numpoints,3))
	for k in range(numpoints):
		xyz[k,0],xyz[k,1],xyz[k,2]=points.GetPoint(k)
	pointData=m1.GetPointData()
	nba=pointData.GetNumberOfArrays()
	S=np.zeros((numpoints,3*nba*nbvv+nbss*nba))
	l=0
	for i in range(nbss*nba):
		a=pointData.GetArrayName(i)
		ve=pointData.GetScalars(a)
		for k in range(numpoints):
			S[k,0+l]=ve.GetTuple1(k)
		l=l+1
	ll=0
	for i in range(nbvv*nba):
		a=pointData.GetArrayName(i)
		ve=pointData.GetVectors(a)
		for k in range(numpoints):
			S[k,l+ll*3],S[k,l+1+ll*3],S[k,l+2+ll*3]=ve.GetTuple3(k)
		ll=ll+1

	return xyz[:numpoints/2,:],S[:numpoints/2,:],nba*nbvv,nba*nbss
Esempio n. 32
0
    def loadVtk(self, fname):
        """ Load a given VTK file into a vtkPolyData object """

        reader = vtk.vtkUnstructuredGridReader()
        reader.SetFileName(filename)
        reader.Update()
        self._vtk = reader.GetOutput()
Esempio n. 33
0
def get_data(inputf="input.vtk"):
  # open file and load data into reader object
  filename = inputf
  reader = vtkUnstructuredGridReader()
  reader.SetFileName(filename)
  reader.ReadAllVectorsOn()
  reader.ReadAllScalarsOn()
  reader.Update()
  # move data to data and extract the numpy vectors
  data = reader.GetOutput()
  x = np.zeros(data.GetNumberOfPoints())
  y = np.zeros(data.GetNumberOfPoints())
  z = np.zeros(data.GetNumberOfPoints())
  for i in range(data.GetNumberOfPoints()):
    x[i],y[i],z[i] = data.GetPoint(i)
  # how many vectors and with how many points each
  n_arrays = data.GetPointData().GetNumberOfArrays()
  n_points = data.GetNumberOfPoints()
  array = np.zeros((n_arrays,n_points))
  names = [0]*n_arrays
  # load the data in the numpy structures we have created
  for i in range(n_arrays):
    array[i] = VN.vtk_to_numpy(data.GetPointData().GetArray(i))
    names[i] = data.GetPointData().GetArray(i).GetName()
  return(x,array,names)
Esempio n. 34
0
 def read_vtk(self, to_polydata=False):
     # Read the source file.
     reader = vtk.vtkDataReader()
     reader.SetFileName('.'.join([self.filename, self.input_type]))
     reader.Update()
     print('Case ID : {}, input type: {}'.format(self.filename,
                                                 self.input_type))
     if reader.IsFileUnstructuredGrid():
         print('Reading Unstructured Grid...')
         reader = vtk.vtkUnstructuredGridReader()
     elif reader.IsFilePolyData():
         print('Reading Polygonal Mesh...')
         reader = vtk.vtkPolyDataReader()
     elif reader.IsFileStructuredGrid():
         print('Reading Structured Grid...')
         reader = vtk.vtkStructuredGridReader()
     elif reader.IsFileStructuredPoints():
         print('Reading Structured Points...')
         reader = vtk.vtkStructuredPointsReader()
     elif reader.IsFileRectilinearGrid():
         print('Reading Rectilinear Grid...')
         reader = vtk.vtkRectilinearGridReader()
     else:
         print('Data format unknown...')
     reader.SetFileName(self.filename + '.' + self.input_type)
     reader.Update()  # Needed because of GetScalarRange
     scalar_range = reader.GetOutput().GetScalarRange()
     if to_polydata and not reader.IsFilePolyData():
         print('Transform to Polygonal Mesh')
         reader = self.unstructured_grid_to_poly_data(reader)
     print('Scalar range: \n{}'.format(scalar_range))
     return reader, scalar_range
Esempio n. 35
0
 def getReader(self, model_type=None):
     self.model_type = model_type
     if self.model_type == 'UnstructuredGrid':
         return vtk.vtkUnstructuredGridReader()
     elif self.model_type == 'PolyData':
         return vtk.vtkPolyDataReader()
     else:
         raise ValueError("model type informed is unknow...")
Esempio n. 36
0
 def getReader(self, model_type=None):
     self.model_type = model_type
     if self.model_type == 'UnstructuredGrid':
         return vtk.vtkUnstructuredGridReader()
     elif self.model_type == 'PolyData':
         return vtk.vtkPolyDataReader()
     else:
         raise ValueError("model type informed is unknow...")
Esempio n. 37
0
def getData_2(filename):
    # Read CELL_DATA from vtk file
    reader = vtk.vtkUnstructuredGridReader()
    reader.SetFileName(filename)
    reader.Update()
    vtk_points_arrays= reader.GetOutput().GetPointData()
    vtk_cell_arrays  = reader.GetOutput().GetCellData()
    return vtk_points_arrays, vtk_cell_arrays
Esempio n. 38
0
 def ReadVTKMeshFile(self):
     if (self.InputFileName == ''):
         self.PrintError('Error: no InputFileName.')
     self.PrintLog('Reading VTK mesh file.')
     reader = vtk.vtkUnstructuredGridReader()
     reader.SetFileName(self.InputFileName)
     reader.Update()
     self.Mesh = reader.GetOutput()
Esempio n. 39
0
 def ReadVTKMeshFile(self):
     if (self.InputFileName == ''):
         self.PrintError('Error: no InputFileName.')
     self.PrintLog('Reading VTK mesh file.')
     reader = vtk.vtkUnstructuredGridReader()
     reader.SetFileName(self.InputFileName)
     reader.Update()
     self.Mesh = reader.GetOutput()
Esempio n. 40
0
def main():
    colors = vtk.vtkNamedColors()

    # colors.SetColor('bkg', [0.1, 0.2, 0.4, 1.0])

    # The source file
    file_name = get_program_parameters()

    # Create a custom lut. The lut is used for both at the mapper and at the
    # scalar_bar
    lut = vtk.vtkLookupTable()
    lut.Build()

    # Read the source file.
    reader = vtk.vtkUnstructuredGridReader()
    reader.SetFileName(file_name)
    reader.Update()  # Needed because of GetScalarRange
    output = reader.GetOutput()
    scalar_range = output.GetScalarRange()

    mapper = vtk.vtkDataSetMapper()
    mapper.SetInputData(output)
    mapper.SetScalarRange(scalar_range)
    mapper.SetLookupTable(lut)

    actor = vtk.vtkActor()
    actor.SetMapper(mapper)

    renderer = vtk.vtkRenderer()
    renderer.AddActor(actor)
    renderer.SetBackground(colors.GetColor3d('MidnightBLue'))

    render_window = vtk.vtkRenderWindow()
    render_window.AddRenderer(renderer)
    render_window.SetSize(300, 300)
    render_window.SetWindowName("ScalarBarWidget")

    interactor = vtk.vtkRenderWindowInteractor()
    interactor.SetRenderWindow(render_window)

    # create the scalar_bar
    scalar_bar = vtk.vtkScalarBarActor()
    scalar_bar.SetOrientationToHorizontal()
    scalar_bar.SetLookupTable(lut)

    # create the scalar_bar_widget
    scalar_bar_widget = vtk.vtkScalarBarWidget()
    scalar_bar_widget.SetInteractor(interactor)
    scalar_bar_widget.SetScalarBarActor(scalar_bar)
    scalar_bar_widget.On()

    interactor.Initialize()
    render_window.Render()
    renderer.GetActiveCamera().SetPosition(-6.4, 10.3, 1.4)
    renderer.GetActiveCamera().SetFocalPoint(1.0, 0.5, 3.0)
    renderer.GetActiveCamera().SetViewUp(0.6, 0.4, -0.7)
    render_window.Render()
    interactor.Start()
Esempio n. 41
0
    def __init__(self,
                 filename,
                 colour=[1.0, 0.0, 0.0],
                 visibility=True,
                 opacity=1.0,
                 pickable=True):
        """
        Creates a new surface model.

        :param filename: path to vtk grid file.
        :param colour: (R,G,B) where each are floats [0-1]
        :param visibility: boolean, True|False
        :param opacity: float [0,1]
        :param pickable: boolean, True|False
        """
        super(VTKUnstructuredGridModel, self).__init__(colour, visibility,
                                                       opacity, pickable)

        self.source_file = None
        self.reader = None
        self.source = None
        self.cell_data_name = None
        self.threshold = None

        if filename is not None:

            vf.validate_is_file(filename)

            if filename.endswith(".vtk"):
                self.reader = vtk.vtkUnstructuredGridReader()

            elif filename.endswith(".vtu"):
                self.reader = vtk.vtkXMLUnstructuredGridReader()

            else:
                raise TypeError("File is not .vtu or .vtk extension")

            self.reader.SetFileName(filename)
            self.reader.Update()
            self.source = self.reader.GetOutput()

            self.source_file = filename
            self.name = os.path.basename(self.source_file)

        else:
            raise ValueError("Filename not specified")

        self.threshold = vtk.vtkThreshold()
        self.threshold.SetInputData(self.source)
        self.threshold.Update()
        self.thresholded_data = self.threshold.GetOutput()

        self.mapper = vtk.vtkDataSetMapper()
        self.mapper.SetInputData(self.thresholded_data)
        self.mapper.Update()
        self.actor.SetMapper(self.mapper)

        self.cell_data_name = self.source.GetCellData().GetArrayName(0)
Esempio n. 42
0
    def createMeshFromPolyDataTetGen(self,
                                     inputPolyData,
                                     outputMeshNode,
                                     additionalParameters=""):

        self.abortRequested = False
        tempDir = self.createTempDirectory()
        self.addLog('Mesh generation is started in working directory: ' +
                    tempDir)

        # Write inputs
        qt.QDir().mkpath(tempDir)

        inputSurfaceMeshFilePath = os.path.join(tempDir, "mesh.ply")
        inputWriter = vtk.vtkPLYWriter()
        inputWriter.SetInputData(inputPolyData)
        inputWriter.SetFileName(inputSurfaceMeshFilePath)
        inputWriter.SetFileTypeToASCII()
        inputWriter.Write()

        inputParamsTetGen = []
        inputParamsTetGen.append("-k" + additionalParameters)
        inputParamsTetGen.append(inputSurfaceMeshFilePath)

        # Run tetgen
        ep = self.startMesher(inputParamsTetGen, self.getTetGenPath())
        self.logProcessOutput(ep, self.tetGenFilename)

        # Read results
        if not self.abortRequested:
            outputVolumetricMeshPath = os.path.join(tempDir, "mesh.1.vtk")
            outputReader = vtk.vtkUnstructuredGridReader()
            outputReader.SetFileName(outputVolumetricMeshPath)
            outputReader.ReadAllScalarsOn()
            outputReader.ReadAllVectorsOn()
            outputReader.ReadAllNormalsOn()
            outputReader.ReadAllTensorsOn()
            outputReader.ReadAllColorScalarsOn()
            outputReader.ReadAllTCoordsOn()
            outputReader.ReadAllFieldsOn()
            outputReader.Update()
            outputMeshNode.SetUnstructuredGridConnection(
                outputReader.GetOutputPort())

            outputMeshDisplayNode = outputMeshNode.GetDisplayNode()
            if not outputMeshDisplayNode:
                # Initial setup of display node
                outputMeshNode.CreateDefaultDisplayNodes()
                outputMeshDisplayNode = outputMeshNode.GetDisplayNode()
                outputMeshDisplayNode.SetEdgeVisibility(True)
                outputMeshDisplayNode.SetClipping(True)

        # Clean up
        if self.deleteTemporaryFiles:
            import shutil
            shutil.rmtree(tempDir)

        self.addLog("Model generation is completed")
Esempio n. 43
0
 def readVTK(self,verbose=False):
     self.reader=vtk.vtkUnstructuredGridReader()
     try:
         self.reader.SetFileName(self.filename)
         self.reader.ReadAllScalarsOn()
         self.reader.ReadAllVectorsOn()
     except:
         print 'Could not find file: ',self.filename
         return
Esempio n. 44
0
 def readVTK(self, verbose=False):
     self.reader = vtk.vtkUnstructuredGridReader()
     try:
         self.reader.SetFileName(self.filename)
         self.reader.ReadAllScalarsOn()
         self.reader.ReadAllVectorsOn()
     except:
         print 'Could not find file: ', self.filename
         return
Esempio n. 45
0
 def __init__(self, module_manager):
     SimpleVTKClassModuleBase.__init__(self,
                                       module_manager,
                                       vtk.vtkUnstructuredGridReader(),
                                       'Reading vtkUnstructuredGrid.', (),
                                       ('vtkUnstructuredGrid', ),
                                       replaceDoc=True,
                                       inputFunctions=None,
                                       outputFunctions=None)
Esempio n. 46
0
def loadUnStructuredGrid(filename):  # not tested
    '''Load a vtkunStructuredGrid object from file and return a vtkActor.'''
    reader = vtk.vtkUnstructuredGridReader()
    reader.SetFileName(filename)
    reader.Update()
    gf = vtk.vtkUnstructuredGridGeometryFilter()
    gf.SetInputConnection(reader.GetOutputPort())
    gf.Update()
    return Actor(gf.GetOutput())
Esempio n. 47
0
 def loadFromVtkFile(self, filename):
     """
     Load the grid and gfields form a VTK file
     @param filename VTK file
     """
     self.reader = vtk.vtkUnstructuredGridReader()
     self.reader.SetFileName(filename)
     self.reader.Update()
     self.vtk['grid'] = reader.GetOutput()
Esempio n. 48
0
    def read_vtk(self, data_dir='./data', file_name='nulls.vtk'):
        """
        Read the null point from a vtk file.

        call signature:

            read_vtk(data_dir='./data', file_name='nulls.vtk')

        Arguments:

        *data_dir*:
            Origin data directory.

        *file_name*:
            Origin file name.
        """

        reader = vtk.vtkUnstructuredGridReader()
        reader.SetFileName(os.path.join(data_dir, file_name))
        reader.Update()
        output = reader.GetOutput()

        # Read the null points.
        points = output.GetPoints()
        self.nulls = []
        for null in range(points.GetNumberOfPoints()):
            self.nulls.append(points.GetPoint(null))
        self.nulls = np.array(self.nulls)

        point_data = output.GetPointData()
        eigen_values_vtk = []
        eigen_values = []
        eigen_vectors_vtk = []
        eigen_vectors = []
        fan_vectors_vtk = []
        fan_vectors = []
        for dim in range(3):
            eigen_values_vtk.append(
                point_data.GetVectors('eigen_value_{0}'.format(dim)))
            eigen_values.append(VN.vtk_to_numpy(eigen_values_vtk[-1]))
            eigen_vectors_vtk.append(
                point_data.GetVectors('eigen_vector_{0}'.format(dim)))
            eigen_vectors.append(VN.vtk_to_numpy(eigen_vectors_vtk[-1]))
            if dim < 2:
                fan_vectors_vtk.append(
                    point_data.GetVectors('fan_vector_{0}'.format(dim)))
                fan_vectors.append(VN.vtk_to_numpy(fan_vectors_vtk[-1]))
        sign_trace_vtk = point_data.GetVectors('sign_trace')
        sign_trace = VN.vtk_to_numpy(sign_trace_vtk)
        normals_vtk = point_data.GetVectors('normal')
        normals = VN.vtk_to_numpy(normals_vtk)

        self.eigen_values = np.swapaxes(np.array(eigen_values), 0, 1)
        self.eigen_vectors = np.swapaxes(np.array(eigen_vectors), 0, 1)
        self.fan_vectors = np.swapaxes(np.array(fan_vectors), 0, 1)
        self.sign_trace = np.array(sign_trace)
        self.normals = np.array(normals)
Esempio n. 49
0
def getData(filename):
    # load a vtk file as input
    reader = vtk.vtkUnstructuredGridReader()
    reader.SetFileName(filename)
    reader.Update()
    vtk_arrays= reader.GetOutput().GetPointData()
    #print vtk_nodes
    #print vtk_arrays
    return vtk_arrays
Esempio n. 50
0
def LoadModelAnatomy(vtk_mean):

    import numpy as np
    import vtk
    from vtk.util.numpy_support import vtk_to_numpy

    reader = vtk.vtkUnstructuredGridReader()
    reader.SetFileName(vtk_mean)
    reader.ReadAllScalarsOn()
    reader.ReadAllVectorsOn()
    reader.Update()
    data = reader.GetOutput()

    n_points = data.GetNumberOfPoints()
    n_el = data.GetNumberOfCells()
    Coords = vtk_to_numpy(data.GetPoints().GetData())
    Els = np.zeros((n_el, 4), dtype=int)
    for i in range(n_el):
        cell_type = data.GetCellType(i)
        n_nodes_el = data.GetCell(i).GetPointIds().GetNumberOfIds()
        for n_sel in range(n_nodes_el):
            Els[i, n_sel] = int(data.GetCell(i).GetPointId(n_sel))

    labels = vtk_to_numpy(data.GetPointData().GetArray('labels'))
    x_c = vtk_to_numpy(data.GetPointData().GetArray('x_c'))
    x_l = vtk_to_numpy(data.GetPointData().GetArray('x_l'))
    x_t = vtk_to_numpy(data.GetPointData().GetArray('x_t'))
    e_c = vtk_to_numpy(data.GetPointData().GetVectors('e_c'))
    e_l = vtk_to_numpy(data.GetPointData().GetVectors('e_l'))
    e_t = vtk_to_numpy(data.GetPointData().GetVectors('e_t'))

    Node_par_coords = np.zeros((n_points, 4))
    Node_par_coords[:, 0] = labels
    Node_par_coords[:, 1] = x_c
    Node_par_coords[:, 2] = x_l
    Node_par_coords[:, 3] = x_t

    faces_connectivity = np.array([[0, 2, 1], [0, 1, 3], [1, 2, 3], [2, 0, 3]])
    Faces_Endo = []
    start_faces = True
    for kk in range(n_el):
        el_points = Els[kk, :]
        for jj in range(4):
            if all(labels[int(v)] == 2
                   for v in el_points[faces_connectivity[jj]]):
                if start_faces:
                    Faces_Endo = np.array(el_points[faces_connectivity[jj]],
                                          dtype=int).reshape(1, -1)
                    start_faces = False
                else:
                    Faces_Endo = np.concatenate(
                        (Faces_Endo,
                         np.array(el_points[faces_connectivity[jj]],
                                  dtype=int).reshape(1, -1)), 0)

    return Coords, Els, n_points, n_el, Node_par_coords, e_t, e_l, e_c, Faces_Endo
Esempio n. 51
0
    def read_vtk(self, data_dir='./data', file_name='nulls.vtk'):
        """
        Read the null point from a vtk file.

        call signature:

            read_vtk(data_dir='./data', file_name='nulls.vtk')

        Arguments:

        *data_dir*:
            Origin data directory.

        *file_name*:
            Origin file name.
        """

        reader = vtk.vtkUnstructuredGridReader()
        reader.SetFileName(os.path.join(data_dir, file_name))
        reader.Update()
        output = reader.GetOutput()

        # Read the null points.
        points = output.GetPoints()
        self.nulls = []
        for null in range(points.GetNumberOfPoints()):
            self.nulls.append(points.GetPoint(null))
        self.nulls = np.array(self.nulls)

        point_data = output.GetPointData()
        eigen_values_vtk = []
        eigen_values = []
        eigen_vectors_vtk = []
        eigen_vectors = []
        fan_vectors_vtk = []
        fan_vectors = []
        for dim in range(3):
            eigen_values_vtk.append(point_data.GetVectors('eigen_value_{0}'.format(dim)))
            eigen_values.append(VN.vtk_to_numpy(eigen_values_vtk[-1]))
            eigen_vectors_vtk.append(point_data.GetVectors('eigen_vector_{0}'.format(dim)))
            eigen_vectors.append(VN.vtk_to_numpy(eigen_vectors_vtk[-1]))
            if dim < 2:
                fan_vectors_vtk.append(point_data.GetVectors('fan_vector_{0}'.format(dim)))
                fan_vectors.append(VN.vtk_to_numpy(fan_vectors_vtk[-1]))
        sign_trace_vtk = point_data.GetVectors('sign_trace')
        sign_trace = VN.vtk_to_numpy(sign_trace_vtk)
        normals_vtk = point_data.GetVectors('normal')
        normals = VN.vtk_to_numpy(normals_vtk)

        self.eigen_values = np.swapaxes(np.array(eigen_values), 0, 1)
        self.eigen_vectors = np.swapaxes(np.array(eigen_vectors), 0, 1)
        self.fan_vectors = np.swapaxes(np.array(fan_vectors), 0, 1)
        self.sign_trace = np.array(sign_trace)
        self.normals = np.array(normals)
Esempio n. 52
0
 def readVtkFile(self, fileName):
     """
     Read VTK file.
 
     :param str filename: Input filename
     """
     self.reader = vtk.vtkUnstructuredGridReader()
     self.reader.SetFileName(fileName)
     self.reader.Update()
     self.grid = self.reader.GetOutput()
     self.points = self.grid.GetPoints()
Esempio n. 53
0
 def UnstructuredGridReader(self, currentElement):
     reader = vtk.vtkUnstructuredGridReader()
     try:
         reader.SetFileName(os.path.join(self.basedir, currentElement.get('SetFileName')))
     except:
         self.logger.error('  .. <UnstructuredGridReader> failed to SetFileName')
     if 'SetVectorsName' in currentElement.keys():
         try:
             reader.SetVectorsName( currentElement.get('SetVectorsName') )
         except:
             self.logger.error('  .. <UnstructuredGridReader> failed to SetVectorsName')
     return reader
Esempio n. 54
0
def getNodes(filename):
    # load a vtk file as input
    reader = vtk.vtkUnstructuredGridReader()
    reader.SetFileName(filename)
    reader.Update()
    points = reader.GetOutput().GetPoints()
    if points is None:
        return None
#    print points
#    Get the coordinates of nodes in the mesh
    nodes_vtk_array= reader.GetOutput().GetPoints().GetData()
    nodes = vtk_to_numpy(nodes_vtk_array)
    return nodes
    def testContourQuadraticTetra(self):
	# Create a reader to load the data (quadratic tetrahedra)
        reader = vtk.vtkUnstructuredGridReader()
        reader.SetFileName(VTK_DATA_ROOT + "/Data/quadTetEdgeTest.vtk")

        tetContours = vtk.vtkContourFilter()
        tetContours.SetInputConnection(reader.GetOutputPort())
        tetContours.SetValue(0, 0.5)
        aTetContourMapper = vtk.vtkDataSetMapper()
        aTetContourMapper.SetInputConnection(tetContours.GetOutputPort())
        aTetContourMapper.ScalarVisibilityOff()
        aTetMapper = vtk.vtkDataSetMapper()
        aTetMapper.SetInputConnection(reader.GetOutputPort())
        aTetMapper.ScalarVisibilityOff()
        aTetActor = vtk.vtkActor()
        aTetActor.SetMapper(aTetMapper)
        aTetActor.GetProperty().SetRepresentationToWireframe()
        aTetActor.GetProperty().SetAmbient(1.0)
        aTetContourActor = vtk.vtkActor()
        aTetContourActor.SetMapper(aTetContourMapper)
        aTetContourActor.GetProperty().SetAmbient(1.0)

        # Create the rendering related stuff.
        # Since some of our actors are a single vertex, we need to remove all
        # cullers so the single vertex actors will render
        ren1 = vtk.vtkRenderer()
        ren1.GetCullers().RemoveAllItems()
        renWin = vtk.vtkRenderWindow()
        renWin.AddRenderer(ren1)
        iren = vtk.vtkRenderWindowInteractor()
        iren.SetRenderWindow(renWin)

        ren1.SetBackground(.1, .2, .3)

        renWin.SetSize(400, 250)

        # specify properties
        ren1.AddActor(aTetActor)
        ren1.AddActor(aTetContourActor)

        ren1.ResetCamera()
        ren1.GetActiveCamera().Dolly(1.5)
        ren1.ResetCameraClippingRange()

        renWin.Render()

        img_file = "contourQuadraticTetra.png"
        vtk.test.Testing.compareImage(iren.GetRenderWindow(), vtk.test.Testing.getAbsImagePath(img_file), threshold=25)
        vtk.test.Testing.interact()
    def ReadVtkFile(self, filename):
        '''
        @param filename: str
        @rtype: None
        '''
        reader = vtk.vtkUnstructuredGridReader()
        reader.SetFileName(filename)
        
        try:
            reader.Update()
            self.setDataSet(reader.GetOutput())
        except Exception, e:
            print e
#            del reader
            raise IOError, "Could not read the vtk file! "
Esempio n. 57
0
 def chooseReader(self, file_format, vtk_dataset_type=None):
     """
     Return a reader based on file_format and possibly vtk_dataset_type.
     @param vtk_dataset_type, None or one of the VTK_DATASET_TYPES
     """
     # Handle .ply files.
     if file_format == 'ply':
         return vtk.vtkPLYReader()
     # Handle .vtk files.
     if vtk_dataset_type == 'STRUCTURED_GRID':
         return vtk.vtkStructuredGridReader()
     elif vtk_dataset_type == 'POLYDATA':
         return vtk.vtkPolyDataReader()
     elif vtk_dataset_type == 'UNSTRUCTURED_GRID':
         return vtk.vtkUnstructuredGridReader()
def get_cell_volumes(x_min,x_max,y_min,y_max,z_min,z_max,filename,cell_volume):
	reader = vtk.vtkUnstructuredGridReader()
	reader.ReadAllScalarsOn()
	reader.ReadAllVectorsOn()
	reader.SetFileName(filename)
	reader.Update()
	if ( (x_min<x_max) and (y_min<y_max) and (z_min<z_max) ):
		extract = vtk.vtkExtractUnstructuredGrid()
		extract.SetExtent(x_min, x_max, y_min, y_max, z_min, z_max)
		extract.SetInput(reader.GetOutput())
		extract.MergingOn()
		extract.Update()
		cell_volume = VN.vtk_to_numpy(extract.GetOutput().GetPointData().GetScalars("cell_volume"))
	else:
		cell_volume = VN.vtk_to_numpy(reader.GetOutput().GetPointData().GetScalars("cell_volume"))
def get_grid_template(x_min,x_max,y_min,y_max,z_min,z_max,filename,grid):
	reader = vtk.vtkUnstructuredGridReader()
	reader.ReadAllScalarsOn()
	reader.ReadAllVectorsOn()
	reader.SetFileName(filename)
	reader.Update()
	if ( (x_min<x_max) and (y_min<y_max) and (z_min<z_max) ):
		extract = vtk.vtkExtractUnstructuredGrid()
		extract.SetExtent(x_min, x_max, y_min, y_max, z_min, z_max)
		extract.SetInput(reader.GetOutput())
		extract.MergingOn()
		extract.Update()
		grid.DeepCopy(extract.GetOutput())
	else:
		grid.DeepCopy(reader.GetOutput())
    def __init__(self,delta,wing):

        self.arrowColor = vtk.vtkColorTransferFunction()

        self.update_look_up_table()

        self.print_counter=0
        self.ren = vtk.vtkRenderer()

        self.geo_reader = vtk.vtkUnstructuredGridReader()
        self.geo_reader.SetFileName(wing)


        self.vec_reader = vtk.vtkStructuredPointsReader()
        self.vec_reader.SetFileName(delta)

        """ This is for drawing the wing,"""
        geo_Mapper=vtk.vtkDataSetMapper()
        geo_Mapper.SetInputConnection(self.geo_reader.GetOutputPort())

        geo_actor = vtk.vtkActor()
        geo_actor.SetMapper(geo_Mapper)

        self.ren.AddActor(geo_actor)

        """End of adding the wing """


        self.ren.AddActor(self.create_stream_line(25,150,0,0.5))


        #Add renderer to renderwindow and render
        self.renWin = vtk.vtkRenderWindow()
        self.renWin.AddRenderer(self.ren)
        self.renWin.SetSize(1920, 1080)

        iren = vtk.vtkRenderWindowInteractor()
        iren.SetRenderWindow(self.renWin)

        iren.AddObserver('RightButtonPressEvent', self.capture_image, 1.0)

        # Scalar Bar actor
        scalar_bar = vtk.vtkScalarBarActor()
        scalar_bar.SetOrientationToHorizontal()
        scalar_bar.SetLookupTable(self.arrowColor)
        scalar_bar.SetTitle("Color map")
        scalar_bar.SetLabelFormat("%5.2f")
        scalar_bar.SetMaximumHeightInPixels(300)
        scalar_bar.SetMaximumWidthInPixels(60)

        # Scalar Bar Widget
        scalar_bar_widget = vtk.vtkScalarBarWidget()
        scalar_bar_widget.SetInteractor(iren)
        scalar_bar_widget.SetScalarBarActor(scalar_bar)
        scalar_bar_widget.On()

        self.ren.SetBackground(0,0,0)
        self.renWin.Render()
        iren.Start()