¿Cómo agregar una matriz personalizada a un polydata en paraview?

Sé que puedo usar el filtro de la Calculadora para operaciones en arreglos, pero quiero realizar algunos cálculos más complicados. Me las arreglé para hacerlo en el shell de Python de Paraview, pero el paso que falta ahora es volver al visor de nuevo (o guardar los nuevos polidatos en el archivo). Aquí está lo que tengo hasta ahora:

polydata = servermanager.Fetch(FindSource("mydataalreadyopeninparaview")) region_size = paraview.vtk.vtkIntArray() region_size.SetNumberOfComponents(0) region_size.SetName("regionsize") for i in range(polydata .GetNumberOfPoints()): region_size.InsertNextValue(somecomputedvalue) polydata.GetPointData().AddArray(region_size) 

¿Cómo puedo “importar” en el canal de paraview mis datos recién creados?

Un mejor enfoque sería usar el filtro progtwigble para agregar la matriz a su conjunto de datos de entrada. En ParaView 4.1, la siguiente secuencia de comandos se puede agregar a la secuencia de comandos en el panel Propiedades para el filtro de Programmager

 polydata = output array = vtk.vtkIntArray() array.SetNumberOfComponents(0) array.SetName("regionsize") for i in range(polydata .GetNumberOfPoints()): array.InsertNextValue(somecomputedvalue) polydata.GetPointData().AddArray(array); 

El método que funciona mejor con la tubería es usar un filtro progtwigble. (relacionado: Paraview Python – Operación inversa a servermanager.Fetch ()? )

Para guardar los nuevos polidatos en el archivo: (descubierto gracias a http://markmail.org/message/4kp7cxl2ani25cak al importar todos los módulos ctk)

 from paraview.vtk.vtkIOLegacy import * writer = vtkPolyDataWriter() ..... 

Un método más “aproximado” es exportar los datos como csv usando numpy.savetxt, luego leer el csv y aplicar el filtro TableToPoints o las secuencias de comandos de Python.

Podría ser posible usar TrivialProducer y GetClientSideObject cuando el cliente y el servidor comparten el mismo espacio de memoria (con el servidor incorporado) como se explica aquí http://public.kitware.com/pipermail/paraview/2011-February/020120.html , pero No lo he probado