2013-02-06 2 views
0

파이썬으로 xml vtk 파일을 작성해야합니다. 특히 StructuredGrid에서 사용됩니다. 공간의 모든 점에 대해 x, y, z 축의 좌표 데이터와 x, y, z 구성 요소의 값을가집니다. 이 파일을 작성하려면 어떻게해야합니까?파이썬 vtk 작가

답변

1

(편집) 당신은 (파이썬에서)이 기능을 통해 그렇게 할 수

def writeVtkStructuredGrid(StructuredGrid, file_name): 
    """ 
    StructuredGrid : StructuredGrid input object 
    file_name : output xml path file (example: 'out.vtp') 
    """ 

    sg = vtkXMLStructuredGridWriter() 
    sg.SetFileName(file_name) 
    sg.SetInput(StructuredGrid) 
    sg.Write() 

vtkXMLPolyDataWriter 객체에 대한 문서입니다 : 이 vtkXMLPolyDataWriter class reference

+0

구체적인 예는 from tvtk

예제 코드입니다. 나는 그가 아직 vtkStructuredGrid를 가지고 있다고 생각하지 않으며 그의 현재 데이터에서 그렇게 할 필요가있다. – andybauer

-1

당신이 할 수있는 주석 코드를 조정이 유래 링크를 확인하시기 바랍니다 너의 일을 끝내라. StackOverflow Link. 그는 vtkStructuredGrid 파일이 아닌 vtkPolyData 파일을 참조한다

from numpy import mgrid, empty, sin, pi 
from tvtk.api import tvtk, write_data 

# Generate some points. 
x, y, z = mgrid[1:6:11j, 0:4:13j, 0:3:6j] 
base = x[..., 0] + y[..., 0] 
# Some interesting z values. 
for i in range(z.shape[2]): 
     z[..., i] = base * 0.25 * i 

# The actual points. 
pts = empty(z.shape + (3,), dtype=float) 
pts[..., 0] = x 
pts[..., 1] = y 
pts[..., 2] = z 

# Simple scalars. 
scalars = x * x + y * y + z * z 
# Some vectors 
vectors = empty(z.shape + (3,), dtype=float) 
vectors[..., 0] = (4 - y * 2) 
vectors[..., 1] = (x * 3 - 12) 
vectors[..., 2] = sin(z * pi) 

# We reorder the points, scalars and vectors so this is as per VTK's 
# requirement of x first, y next and z last. 
pts = pts.transpose(2, 1, 0, 3).copy() 
pts.shape = pts.size/3, 3 
scalars = scalars.T.copy() 
vectors = vectors.transpose(2, 1, 0, 3).copy() 
vectors.shape = vectors.size/3, 3 

# Create the dataset. 
sg = tvtk.StructuredGrid(dimensions=x.shape, points=pts) 
sg.point_data.scalars = scalars.ravel() 
sg.point_data.scalars.name = 'temperature' 
sg.point_data.vectors = vectors 
sg.point_data.vectors.name = 'velocity' 
write_data(sg, 'test') # creates test.vtu xml file 
#write_data(sg, 'test.vtk') # creates test.vtk