Как написать программируемый источник Paraview Python, который делает multiblockDataset?
Я пытаюсь написать программируемый источник на Python в Paraview, который создаст vtkMultiBlockDataSet
, Я вижу, что мой скрипт на python в программируемом источнике получает символ output
который имеет тип vtk.numpy_interface.dataset_adapter.CompositeDataSet
, Как я могу использовать этот объект для установки блоков? Единственные методы, которые я вижу, это устанавливать такие вещи, как точки и ячейки.
Мой код создает vtk.vtkMultiBlockDataSet
, Могу ли я как-то просто установить output
быть тем, что я делаю? Или мне нужно скопировать? Спасибо за любой совет! - Адам
1 ответ
В программируемом источнике не забудьте проверить, что "тип набора выходных данных" установлен в vtkMultiblockDataSet
На данный момент, вы можете просто написать
self.GetOutput().ShallowCopy(vtkMultiBlockDataSetCreatedByYourCode)
output,inputs[0] ...
являются dataset_adapter, которые позволяют вам легко получать доступ к vtkarrays как к массивным массивам (например, если input [0] является vtkpolydata, вы можете просто сделать v2 = 2 * input.PointData['v'] вместо чтения его как self.GetInput().GetPointData('v') и преобразование в массив numpy позже - это тот же синтаксис, что и в калькуляторе Python), но я не знаю, возможно ли получить доступ к блокам MultiBlockDataSet (я только что нашел пример в http://kitware.com/blog/home/post/713)