示例#1
0
    def __init__(self, vtifname, parallel=False, dtype=np.float64):
        if not os.path.isfile(vtifname):
            raise FileNotFoundError(vtifname)

        if parallel:
            self.reader = vtk.vtkXMLPImageDataReader()
        else:
            self.reader = vtk.vtkXMLImageDataReader()
        self.reader.SetFileName(vtifname)
        self.reader.Update()
        self.data = self.reader.GetOutput()
        self.dim = self.data.GetDimensions()

        self.trim_0 = [0, 0, 0]
        self.trim_1 = [x - 1 for x in self.dim]

        self.s_vec = [self.dim[2] - 1, self.dim[1] - 1, self.dim[0] - 1]
        if self.dim[2] > 2:
            self.subspace = np.meshgrid(
                *[range(self.trim_0[i], self.trim_1[i]) for i in range(3)])
            self.s_scal = [self.dim[2] - 1, self.dim[1] - 1, self.dim[0] - 1]

        else:
            self.s_scal = [self.dim[1] - 1, self.dim[0] - 1]
            self.subspace = np.meshgrid(
                *[range(self.trim_0[i], self.trim_1[i]) for i in range(2)])

        self.dtype = dtype
示例#2
0
def read_vti(file):
    reader = vtk.vtkXMLPImageDataReader()
    reader.SetFileName(file)
    reader.Update()
    data = reader.GetOutput()
    pointData = data.GetPointData()

    sh = data.GetDimensions()[::-1]
    ndims = len(sh)

    # get vector field
    v = np.array(pointData.GetVectors("Velocity")).reshape(sh + (ndims, ))
    vec = []
    for d in range(ndims):
        a = v[..., d]
        vec.append(a)
    # get scalar field
    sca = np.array(pointData.GetScalars('Pressure')).reshape(sh + (1, ))

    # Generate grid
    # nPoints = dat.GetNumberOfPoints()
    (xmin, xmax, ymin, ymax, zmin, zmax) = data.GetBounds()
    grid3D = np.mgrid[xmin:xmax + 1, ymin:ymax + 1, zmin:zmax + 1]

    return np.transpose(np.array(vec),
                        (0, 3, 2, 1)), np.transpose(sca, (0, 3, 2, 1)), grid3D
    def import_vtk(self, filename, varname, log=False):
        if (not os.path.isfile(filename)):
            print("Can't find file: " + filename)
        else:

            reader = vtk.vtkXMLPImageDataReader()
            reader.SetFileName(filename)
            reader.Update()

            data = reader.GetOutput()
            dim = data.GetDimensions()

            v = vtk_np.vtk_to_numpy(data.GetCellData().GetArray(0))

            if (log):
                v = 10**v

            n_comp = data.GetCellData().GetArray(0).GetNumberOfComponents()

            vec = [int(i - 1) for i in dim]

            if (n_comp > 1):
                vec.append(n_comp)

            self.arr[varname] = v.reshape(vec, order='F')
示例#4
0
def pvti_readin(filename):
    '''
	Reads in data from pvti with filename, use this to read in electron number density data

	'''

    reader = vtk.vtkXMLPImageDataReader()
    reader.SetFileName(filename)
    reader.Update()

    data = reader.GetOutput()
    dim = data.GetDimensions()
    spacing = np.array(data.GetSpacing())

    v = vtk_np.vtk_to_numpy(data.GetCellData().GetArray(0))
    n_comp = data.GetCellData().GetArray(0).GetNumberOfComponents()

    vec = [int(i - 1) for i in dim]

    if (n_comp > 1):
        vec.append(n_comp)

    if (n_comp > 2):
        img = v.reshape(vec, order="F")[0:dim[0] - 1, 0:dim[1] - 1,
                                        0:dim[2] - 1, :]
    else:
        img = v.reshape(vec, order="F")[0:dim[0] - 1, 0:dim[1] - 1,
                                        0:dim[2] - 1]

    dim = img.shape

    return img, dim, spacing
 def __init__(self, module_manager):
     SimpleVTKClassModuleBase.__init__(
         self, module_manager,
         vtk.vtkXMLPImageDataReader(), 'Reading vtkXMLPImageData.',
         (), ('vtkXMLPImageData',),
         replaceDoc=True,
         inputFunctions=None, outputFunctions=None)
示例#6
0
 def __init__(self, module_manager):
     SimpleVTKClassModuleBase.__init__(self,
                                       module_manager,
                                       vtk.vtkXMLPImageDataReader(),
                                       'Reading vtkXMLPImageData.', (),
                                       ('vtkXMLPImageData', ),
                                       replaceDoc=True,
                                       inputFunctions=None,
                                       outputFunctions=None)
示例#7
0
 def __init__(self, vtifname, parallel=False):
     if parallel:
             self.reader = vtk.vtkXMLPImageDataReader()
     else:
             self.reader = vtk.vtkXMLImageDataReader()
     self.reader.SetFileName(vtifname)
     self.reader.Update()
     self.data = self.reader.GetOutput()  
     self.dim = self.data.GetDimensions()   
     self.s_scal = [self.dim[1]-1, self.dim[0]-1]
     self.s_vec = [self.dim[1]-1, self.dim[0]-1,3]
示例#8
0
 def __init__(self, vtifname, parallel=False, dtype=np.float64):
     if parallel:
             self.reader = vtk.vtkXMLPImageDataReader()
     else:
             self.reader = vtk.vtkXMLImageDataReader()
     self.reader.SetFileName(vtifname)
     self.reader.Update()
     self.data = self.reader.GetOutput()  
     self.dim = self.data.GetDimensions()   
     self.s_scal = [self.dim[2]-1, self.dim[1]-1, self.dim[0]-1]
     self.s_vec = [self.dim[2]-1, self.dim[1]-1, self.dim[0]-1,3]
     
     self.trim_0 = [0,0,0]
     self.trim_1 = [x-1 for x in self.dim]
     
     self.dtype = dtype
示例#9
0
 def __init__(self, vtifname, parallel=False, dtype=np.float64):
     if parallel:
             self.reader = vtk.vtkXMLPImageDataReader()
     else:
             self.reader = vtk.vtkXMLImageDataReader()
     self.reader.SetFileName(vtifname)
     self.reader.Update()
     self.data = self.reader.GetOutput()  
     self.dim = self.data.GetDimensions()   
     self.s_scal = [self.dim[2]-1, self.dim[1]-1, self.dim[0]-1]
     self.s_vec = [self.dim[2]-1, self.dim[1]-1, self.dim[0]-1,3]
     
     self.trim_0 = [0,0,0]
     self.trim_1 = [x-1 for x in self.dim]
     
     self.dtype = dtype
示例#10
0
    def import_space(self, filename):
        if (not os.path.isfile(filename)):
            print("Can't find file: " + filename)
        else:

            reader = vtk.vtkXMLPImageDataReader()
            reader.SetFileName(filename)
            reader.Update()

            data = reader.GetOutput()

            bounds = np.array(data.GetBounds())
            spacing = np.array(data.GetSpacing())

            self.d = spacing
            self.xc = -np.array([bounds[0], bounds[2], bounds[4]])

            self.x = np.arange(bounds[0], bounds[1], spacing[0])
            self.y = np.arange(bounds[2], bounds[3], spacing[1])
            self.z = np.arange(bounds[4], bounds[5], spacing[2])
示例#11
0
def revti(name):
    in_vtifname = name
    out_vtifname = "/tmp/"+os.path.basename( os.path.splitext(name)[0] )+'.vti'
    
    reader = vtk.vtkXMLPImageDataReader()
    reader.SetFileName(in_vtifname)
    reader.Update()
    data = reader.GetOutput()
    cd = data.GetCellData()
    
    
    
    
    
    k = 0
    bc = cd.GetNumberOfArrays()
    while cd.GetNumberOfArrays() > len(save) or k > 10:
        k = k + 1
                
        for i in range(cd.GetNumberOfArrays()):
            if not ( cd.GetArrayName(i) in save ):
#                print "Removing:", cd.GetArrayName(i)
                cd.RemoveArray(cd.GetArrayName(i))
                break
#            else:
#                print "Keeping:", cd.GetArrayName(i)   
            
            
            
    print out_vtifname +" : ", bc, '/', cd.GetNumberOfArrays()
    
    
    writer = vtk.vtkXMLImageDataWriter()
    writer.SetFileName(out_vtifname)
    
    writer.SetInputData(data)
    writer.Write()
示例#12
0
    if rank == 0:
        print(da2.GetValue(0))
        import os
        os.remove(filename)
        for i in range(npieces):
            if not useSubdir:
                os.remove(VTK_TEMP_DIR + "/%s_%d.%s" % (dataType, i, ext))
            else:
                os.remove(VTK_TEMP_DIR + "/%s/%s_%d.%s" %
                          (dataType, dataType, i, ext))

    assert da2.GetValue(0) == numTris


TestDataType('ImageData', vtk.vtkXMLPImageDataReader(),
             vtk.vtkXMLPImageDataWriter(), 'vti', 4924)
TestDataType('RectilinearGrid', vtk.vtkXMLPRectilinearGridReader(),
             vtk.vtkXMLPRectilinearGridWriter(), 'vtr', 4924)
TestDataType('StructuredGrid', vtk.vtkXMLPStructuredGridReader(),
             vtk.vtkXMLPStructuredGridWriter(), 'vts', 4924)
TestDataType('UnstructuredGrid', vtk.vtkXMLPUnstructuredGridReader(),
             vtk.vtkXMLPUnstructuredGridWriter(), 'vtu', 11856)

# Test writers with UseSubdirectory on
TestDataType('ImageData',
             vtk.vtkXMLPImageDataReader(),
             vtk.vtkXMLPImageDataWriter(),
             'vti',
             4924,
             useSubdir=True)
    da.InsertNextValue(ntris)

    da2 = vtk.vtkIntArray()
    da2.SetNumberOfTuples(1)
    contr.AllReduce(da, da2, vtk.vtkCommunicator.SUM_OP)

    if rank == 0:
        print(da2.GetValue(0))
        import os
        os.remove(filename)
        for i in range(npieces):
            if not useSubdir:
                os.remove(VTK_TEMP_DIR + "/%s_%d.%s" % (dataType, i, ext))
            else:
                os.remove(VTK_TEMP_DIR + "/%s/%s_%d.%s" %(dataType, dataType, i, ext))

    assert da2.GetValue(0) == numTris

TestDataType('ImageData', vtk.vtkXMLPImageDataReader(), vtk.vtkXMLPImageDataWriter(), 'vti', 4924)
TestDataType('RectilinearGrid', vtk.vtkXMLPRectilinearGridReader(), vtk.vtkXMLPRectilinearGridWriter(), 'vtr', 4924)
TestDataType('StructuredGrid', vtk.vtkXMLPStructuredGridReader(), vtk.vtkXMLPStructuredGridWriter(), 'vts', 4924)
TestDataType('UnstructuredGrid', vtk.vtkXMLPUnstructuredGridReader(), vtk.vtkXMLPUnstructuredGridWriter(), 'vtu', 11856)
TestDataType('Table', vtk.vtkXMLPTableReader(), vtk.vtkXMLPTableWriter(), 'vtt', 18522)

# Test writers with UseSubdirectory on
TestDataType('ImageData', vtk.vtkXMLPImageDataReader(), vtk.vtkXMLPImageDataWriter(), 'vti', 4924, useSubdir=True)
TestDataType('RectilinearGrid', vtk.vtkXMLPRectilinearGridReader(), vtk.vtkXMLPRectilinearGridWriter(), 'vtr', 4924, useSubdir=True)
TestDataType('StructuredGrid', vtk.vtkXMLPStructuredGridReader(), vtk.vtkXMLPStructuredGridWriter(), 'vts', 4924, useSubdir=True)
TestDataType('UnstructuredGrid', vtk.vtkXMLPUnstructuredGridReader(), vtk.vtkXMLPUnstructuredGridWriter(), 'vtu', 11856, useSubdir=True)
TestDataType('Table', vtk.vtkXMLPTableReader(), vtk.vtkXMLPTableWriter(), 'vtt', 18522, useSubdir=True)
示例#14
0
import os
import vtk
from vtk.util.misc import vtkGetDataRoot
from vtk.util.misc import vtkGetTempDir

VTK_DATA_ROOT = vtkGetDataRoot()
VTK_TEMP_DIR = vtkGetTempDir()

rt = vtk.vtkRTAnalyticSource()
rt.Update()

inp = rt.GetOutput()
inp.GetInformation().Set(vtk.vtkDataObject.DATA_TIME_STEP(), 11)

file_root = VTK_TEMP_DIR + '/testpxmlfield'
file0 = file_root + ".pvti"

w = vtk.vtkXMLPImageDataWriter()
w.SetInputData(inp)
w.SetFileName(file0)
w.Write()

r = vtk.vtkXMLPImageDataReader()
r.SetFileName(file0)
r.UpdateInformation()
assert (r.GetOutputInformation(0).Get(
    vtk.vtkStreamingDemandDrivenPipeline.TIME_STEPS(), 0) == 11.0)

os.remove(file0)
os.remove(file_root + "_0.vti")
示例#15
0
# -*- coding: utf-8 -*-
"""
Created on Fri Nov 19 11:57:07 2010

@author: VBaidin
"""

import vtk
import array
import numpy as np
DATA_ROOT = 'f:/data/Bank/Constant Speed 001/RESULTS_MPI4-50ms/IM'
reader = vtk.vtkXMLPImageDataReader()
reader.SetFileName(DATA_ROOT + "/image.pvti")
reader.Update()
#reader.SetFileName(DATA_ROOT + "/node_0_0.vti")
#darray = vtk.vtkDoubleArray()
#coords = [0,0,0]
#reader.GetOutput().GetArrayPointer(darray,coords)
D = reader.GetOutput().GetDimensions()
image = reader.GetOutput().GetPointData().GetArray ('IMAGE')
func = lambda i,j: image.GetTuple1(i+D[0]*j)

Img = np.zeros ((D[0],D[1]),dtype=float)
for i in xrange(D[0]):
    for j in xrange(D[1]):
        Img[i,j]=func(i,j)

np.savez ("%s/IMAGE.npz"%DATA_ROOT,Img)
示例#16
0
    cf.SetValue(0, 130)
    cf.SetComputeNormals(0)
    cf.SetComputeGradients(0)
    cf.SetInputConnection(reader.GetOutputPort())
    cf.UpdateInformation()
    cf.GetOutputInformation(0).Set(vtk.vtkStreamingDemandDrivenPipeline.UPDATE_NUMBER_OF_PIECES(), nranks)
    cf.GetOutputInformation(0).Set(vtk.vtkStreamingDemandDrivenPipeline.UPDATE_PIECE_NUMBER(), rank)
    cf.Update()

    ntris = cf.GetOutput().GetNumberOfCells()
    da = vtk.vtkIntArray()
    da.InsertNextValue(ntris)

    da2 = vtk.vtkIntArray()
    da2.SetNumberOfTuples(1)
    contr.AllReduce(da, da2, vtk.vtkCommunicator.SUM_OP)

    if rank == 0:
        print(da2.GetValue(0))
        import os
        os.remove(filename)
        for i in range(npieces):
            os.remove(VTK_TEMP_DIR + "/%s_%d.%s" % (dataType, i, ext))

    assert da2.GetValue(0) == numTris

TestDataType('ImageData', vtk.vtkXMLPImageDataReader(), vtk.vtkXMLPImageDataWriter(), 'vti', 4924)
TestDataType('RectilinearGrid', vtk.vtkXMLPRectilinearGridReader(), vtk.vtkXMLPRectilinearGridWriter(), 'vtr', 4924)
TestDataType('StructuredGrid', vtk.vtkXMLPStructuredGridReader(), vtk.vtkXMLPStructuredGridWriter(), 'vts', 4924)
TestDataType('UnstructuredGrid', vtk.vtkXMLPUnstructuredGridReader(), vtk.vtkXMLPUnstructuredGridWriter(), 'vtu', 11856)