Estos días atrás he estado trabajando en un script de Python que automatiza la segmentación de un cuerpo 3D en diferentes bloques. Además, aplica una serie de filtros de cálculo y visualización sobre estos diferentes bloques.
Figura 1. Vector Fp de tipo Point Data que queremos extraer |
Partimos de un mesh 3D en ParaView al que se le aplican diferentes filtros y/o transformaciones desde su interfaz con Python. Después de todo, intentando recuperar esos valores que ParaView habría calculado (hablo de las tres componentes del vector de la fuerza en un cierto punto), veo que no es nada intuitivo.
Figura 2. Árbol de filtros aplicados |
Extraer los valores de un array es una tarea muy básica en la programación y, si estás en una situación similar, quizás esto te ayude. En mi caso, extraje los campos de un array llamado "Fp" (ver figura 1) de tipo Point Data resultante de aplicar el filtro IntegratedForces a una serie de filtros previos (ver figura 2).
Para obtener los datos del array tenemos que importar el método Fetch: from paraview.servermanager import Fetch
. Luego, basta con guardar el array que queremos en una variable: forces = Fetch(integrateVariables).GetPointData().GetArray('Fp')
.
Finalmente, para acceder a un valor concreto podemos hacer: fp_x = forces.GetValue(0)
, por ejemplo.
No hay comentarios:
Publicar un comentario