Я пытаюсь сохранить несколько сфер в файл для последующей визуализации с помощью ParaView.
У меня есть текстовый файл с информацией о положении и форме (радиусе) каждой сферы. С помощью Python и VTK я создаю файл для визуализации данных в ParaView. Прямо сейчас я могу сохранить центр и радиусы сфер как vtkUnstructuredGrid
и позже в ParaView я добавляю символ сферы для правильной визуализации. Этот подход работает, но очень утомительно добавлять глиф вручную каждый раз, когда мне нужно визуализировать данные. Поэтому я пытаюсь выяснить, как сохранить сферы в целом в файл VTK.
Я играл с vtkSphere
но не могу найти способ сохранить сферу в файл vtk.
Теперь снова вопрос: как сохранить vtkSphere в файл VTK?
Я открыт для предложений по альтернативным решениям моей проблемы.
Если вы хотите сохранить из Paraview, вы можете просто сохранить данные после применения глифа.
Если вы хотите создать сферы напрямую, используйте vtkSphereSource (вместо vtkSphere
которая создает неявную функцию, например, для использования с фильтром клипов или глиф-фильтром), а затем подключает ее выход к vtkwriter.
Вот код для создания и записи одной сферы:
sphere = vtk.vtkSphereSource()
sphere.SetRadius(4)
sphere.SetCenter(0,0,1)
writer = vtk.vtkPolyDataWriter()
writer.SetInputData(sphere.GetOutput())
writer.SetFileName('mysphere.vtk')
writer.Update()
Вы также можете создавать глифы непосредственно с помощью кода vtk, см. http://www.vtk.org/Wiki/VTK/Examples/Cxx/Visualization/ProgrammableGlyphFilter (в этом случае вы используете vtkSphere
как источник для глифа)
Я думаю, что необходимые шаги будут:
Объединить данные см. Пример http://www.vtk.org/Wiki/VTK/Examples/Cxx/Filtering/CombinePolyData
и записать результат в файл VTP, см. пример http://www.vtk.org/Wiki/VTK/Examples/Cxx/IO/WriteVTP