Вопрос :
Как мне извлечь массив набора данных из VTK в Python и сохранить его в новом файле? например для VTK с наборами данных для величин сила , смещение и ток только извлечение смещение и сохранение его в меньшем файле.
Задача
У меня есть сотни 4 ГБ файлов VTK на удаленном сервере, и я хочу извлечь один из нескольких наборов данных, которые генерируются для разных величин. В этих наборах данных у меня есть скаляры и векторы.
Я написал следующий код VTK Python, в котором я читаю неструктурированную сетку и получаю второй массив данных для последующего сохранения с помощью «vtkArrayWriter».
import vtk
Filename = 'file.vtk'
reader = vtk.vtkUnstructuredGridReader()
reader.SetFileName(Filename)
reader.ReadAllScalarsOn()
reader.ReadAllVectorsOn()
reader.Update()
obj = reader.GetOutput().GetPointData().GetArray(1)
writer = vtk.vtkArrayWriter()
writer.SetInputData(obj)
writer.SetFileName('test.vtk')
writer.Update()
Код дает мне следующий вывод:
TypeError: SetInputData аргумент 1: метод требует vtkDataObject, a
vtkFloatArray был предоставлен.
Мне не удалось привести «vtkFloatArray» к «vtkDataObject» или найти конкретный метод, который поддерживает «vtkFloatArray» в качестве входных данных. Я не нашел много связанных кодов, но, возможно, я погуглил не те ключевые слова В этот момент я застрял.
Примечание :
Это та же процедура, которую можно выполнить, применив фильтр «PassArays» в Paraview и затем сохранив его, но, учитывая размер и характеристики моей проблемы, это нереальное решение.