0
因此,我不想用ParaView顯示其他格式的數據,而是使用ParaView提供的Python接口直接從我們當前的文件格式加載數據並顯示它。如何編寫PorgrammableSource過濾器以在ParaView中將numpy數組顯示爲vtkImageData?
要測試這個,我想創建一個簡單的ProgrammableSource
過濾器,輸出一個vtkImageData並填充一些數據。
我遇到三個問題:
- 首先,不顯示數據(甚至還不如一個輪廓表示)
- 我無法找到一個方法來設置值,而循環
- 我做沒有找到一個很好的在線來源,可以幫助我
這是我到目前爲止。沒有ParaView的投訴,但也沒有呈現。
import numpy as np
import vtk
import vtk.util.numpy_support as ns
img = self.GetImageDataOutput()
img.SetDimensions(3,4,5)
img.AllocateScalars(vtk.VTK_DOUBLE, 1)
dims = img.GetDimensions()
img.SetOrigin(0,0,0)
img.SetSpacing(0.55, 0.55, 0.55)
for z in range(dims[2]):
for y in range(dims[1]):
for x in range(dims[0]):
img.SetScalarComponentFromDouble(x,y,z,0, 1.0*x*y*z)
注:如果是使用更方便paraview包的蟒蛇外殼,而不是直接的ProgrammableSource的,這也將是確定。
哇,這已經看起來很有前途。但是,是否可以將numpy值解釋爲元素值而不是節點值,因爲在第一個條目中是第一個體素的值,而不是第一個線框節點? – NOhs
在VTK和ParaView圖像數據中,點數據表示體素值,體素中心是具有相關數據的「點」。我意識到這有點令人困惑,但VTK中處理圖像數據的所有內容都是以這種假設編寫的。 –