Как написать программируемый источник 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)

Другие вопросы по тегам