Software de visualización científica
ParaView es una aplicación multiplataforma de código abierto para visualización científica interactiva . Tiene una arquitectura cliente-servidor para facilitar la visualización remota de conjuntos de datos y genera modelos de nivel de detalle (LOD) para mantener velocidades de cuadros interactivas para conjuntos de datos grandes. Es una aplicación construida sobre las bibliotecas de Visualization Toolkit (VTK) . ParaView es una aplicación diseñada para el paralelismo de datos en multicomputadoras y clústeres de memoria compartida o memoria distribuida. También se puede ejecutar como una aplicación de una sola computadora.
Resumen
ParaView es una aplicación de visualización y análisis de datos multiplataforma de código abierto . ParaView es conocida y utilizada en muchas comunidades diferentes para analizar y visualizar conjuntos de datos científicos. [2] Se puede utilizar para crear visualizaciones para analizar datos utilizando técnicas cualitativas y cuantitativas. La exploración de datos se puede realizar de forma interactiva en 3D o mediante programación utilizando las capacidades de procesamiento por lotes de ParaView. [3]
ParaView fue desarrollado para analizar conjuntos de datos extremadamente grandes utilizando recursos informáticos de memoria distribuida. Puede ejecutarse en supercomputadoras para analizar conjuntos de datos de teraescala , así como en computadoras portátiles para datos más pequeños. [3]
ParaView es un marco de aplicación y una aplicación lista para usar. La base de código de ParaView está diseñada de tal manera que todos sus componentes se pueden reutilizar para desarrollar rápidamente aplicaciones verticales. Esta flexibilidad permite a los desarrolladores de ParaView desarrollar rápidamente aplicaciones que tienen una funcionalidad específica para un dominio de problemas específico.
ParaView se ejecuta en sistemas de procesador único y paralelo con memoria distribuida y compartida. Se ha probado con éxito en Windows , macOS , Linux , IBM Blue Gene, Cray Xt3 y varias estaciones de trabajo, clústeres y supercomputadoras Unix . En esencia, ParaView utiliza Visualization Toolkit (VTK) como motor de procesamiento y representación de datos y tiene una interfaz de usuario escrita con Qt.
Los objetivos del equipo ParaView incluyen los siguientes:
- Desarrollar una aplicación de visualización multiplataforma y de código abierto.
- Admite modelos de computación distribuida para procesar grandes conjuntos de datos.
- Cree una interfaz de usuario abierta, flexible e intuitiva.
- Desarrollar una arquitectura extensible basada en estándares abiertos.
Historia
El proyecto ParaView comenzó en 2000 [4] como un esfuerzo colaborativo entre Kitware, Inc. y el Laboratorio Nacional de Los Álamos gracias a la financiación proporcionada por el programa ASCI Views del Departamento de Energía de los EE. UU. El primer lanzamiento público se anunció en octubre de 2002.
Independientemente de ParaView, Kitware desarrolló un sistema de visualización basado en la Web en diciembre de 2001. Este proyecto fue financiado por los SBIR de fase I y II del Laboratorio de Investigación del Ejército de los EE. UU. y finalmente se convirtió en ParaView Enterprise Edition. PVEE contribuyó significativamente al desarrollo de la arquitectura cliente/servidor de ParaView.
En septiembre de 2005, Kitware, Sandia National Labs y CSimSoft (ahora Coreform LLC) comenzaron el desarrollo de ParaView 3.0. [5] ParaView 3.0 se lanzó en mayo de 2007. En junio de 2013, se lanzó ParaView 4.0, esta versión se basó en VTK 6.0. [6] La versión 5.0 se lanzó en enero de 2016, esta versión incluía un nuevo back-end de renderizado. [7]
Características
Capacidades de visualización
- Maneja tipos de datos estructurados (cuadrículas rectilíneas uniformes, rectilíneas no uniformes y curvilíneas), no estructurados, poligonales, de imágenes, multibloque y AMR.
- Todas las operaciones de procesamiento (filtros) generan conjuntos de datos. Esto permite al usuario procesar aún más el resultado de cada operación o los resultados como un archivo de datos. Por ejemplo, el usuario puede extraer una superficie de corte, reducir la cantidad de puntos en esta superficie mediante el enmascaramiento y aplicar glifos (es decir, flechas vectoriales) al resultado.
- Los campos vectoriales se pueden inspeccionar aplicando glifos (flechas, conos, líneas, esferas y varios glifos 2D) a los puntos de un conjunto de datos. Los glifos se pueden escalar mediante escalares, componentes vectoriales o magnitudes vectoriales y se pueden orientar mediante un campo vectorial.
- Se pueden extraer contornos e isosuperficies de todos los tipos de datos mediante componentes escalares o vectoriales. Los resultados se pueden colorear con cualquier otra variable o procesar más. Cuando es posible, los contornos e isosuperficies de datos estructurados se extraen con algoritmos rápidos y eficientes que hacen uso de la disposición eficiente de los datos.
- Se puede extraer una subregión de un conjunto de datos cortándola o acortándola con un plano arbitrario (todos los tipos de datos), especificando un criterio de umbral para excluir celdas (todos los tipos de datos) y/o especificando un VOI (volumen de interés, solo tipos de datos estructurados).
- Las líneas de corriente se pueden generar utilizando integradores adaptativos o de paso constante. Los resultados se pueden mostrar como puntos, líneas, tubos, cintas, etc., y se pueden procesar mediante una multitud de filtros. Las trayectorias de partículas se pueden extraer de conjuntos de datos temporales.
- Los puntos de un conjunto de datos se pueden deformar (desplazar) con escalares (dado un vector de desplazamiento definido por el usuario) o con vectores (no disponibles para cuadrículas rectilíneas no lineales).
- Con la calculadora de matrices, se pueden calcular nuevas variables utilizando matrices de puntos o campos de celdas existentes. Se admiten una gran cantidad de operaciones escalares y vectoriales.
- El procesamiento de datos avanzado se puede realizar utilizando el filtro programable de Python con VTK, NumPy, SciPy y otros módulos de Python.
- Los datos se pueden analizar en un punto o a lo largo de una línea. Los resultados se muestran en forma gráfica o de texto y se pueden exportar para su posterior análisis. Los datos también se pueden extraer a lo largo del tiempo (incluida información estadística como la desviación mínima, máxima y estándar).
- Los datos se pueden inspeccionar cuantitativamente utilizando el poderoso mecanismo de selección y la vista de hoja de cálculo: el mecanismo de selección permite al usuario centrarse en un subconjunto importante de un conjunto de datos utilizando la selección interactiva eligiendo un punto o seleccionando un área rectangular, así como mecanismos de selección cuantitativos.
- La vista de hoja de cálculo permite al usuario inspeccionar todo el conjunto de datos o el subconjunto seleccionado como números sin procesar.
- ParaView proporciona muchas otras fuentes de datos y filtros de forma predeterminada. Se puede agregar cualquier fuente o filtro VTK proporcionando una descripción XML simple .
Entrada/salida y formato de archivo
- Admite una variedad de formatos de archivos, incluidos: VTK (nuevo y heredado, se pueden leer y escribir todos los tipos, incluidos paralelo, ASCII y binario).
- EnSight 6 y EnSight Gold (todos los tipos, incluidos paralelo, ASCII y binario; se admiten varias partes: cada parte se carga por separado y se puede procesar individualmente) (solo lectura).
- CGNS (soporte para múltiples bloques, soluciones inestables y deformación de malla, basado en formato de bajo nivel HDF5 ) (sólo lectura).
- Varios formatos de archivos poligonales, incluidos STL y BYU (de forma predeterminada, solo lectura, se pueden agregar otros escritores VTK escribiendo una descripción XML).
- Se admiten muchos otros formatos de archivos.
- Se puede agregar cualquier fuente o filtro VTK proporcionando una descripción XML simple (VTK proporciona muchos lectores).
- Como ParaView es de código abierto, el usuario puede proporcionar sus propios lectores y escritores.
Interacción del usuario
- Interfaz intuitiva y flexible basada en el marco de aplicación Qt.
- Permite cambiar los parámetros de muchos filtros interactuando directamente con la vista 3D mediante widgets 3D (manipuladores). Por ejemplo, el usuario puede manipular la línea de semilla de un filtro de línea de corriente haciendo clic en un punto de control y arrastrando la línea a la nueva ubicación.
- Diseño compacto de la interfaz de usuario. De forma predeterminada, todas las herramientas importantes se encuentran en la ventana principal. Esto elimina la necesidad de tener una gran cantidad de ventanas que suelen ser difíciles de ubicar en un escritorio desordenado. También es posible separar los inspectores de la ventana principal.
- Mantiene la velocidad de cuadros interactivos incluso cuando se trabaja con grandes cantidades de datos mediante el uso de modelos de nivel de detalle (LOD). El usuario determina el umbral (número de puntos) más allá del cual se muestra una versión reducida del modelo durante la interacción (el tamaño del modelo también se puede ajustar). Una vez finalizada la interacción, se renderiza el modelo grande.
Grandes volúmenes de datos y computación distribuida
- Se ejecuta en paralelo en sistemas de memoria distribuida y compartida que utilizan MPI. Entre ellos se incluyen clústeres de estaciones de trabajo, sistemas de visualización, servidores de gran tamaño, supercomputadoras, etc.
- La interfaz de usuario se ejecuta en una computadora separada utilizando el modo cliente/servidor.
- ParaView utiliza el modelo de datos paralelos en el que los datos se dividen en partes para que los procesen distintos procesos. La mayoría de los algoritmos de visualización funcionan sin cambios cuando se ejecutan en paralelo. ParaView también admite niveles fantasma que se utilizan para producir resultados invariables en las partes. Los niveles fantasma son puntos o celdas que se comparten entre procesos y que utilizan los algoritmos que requieren información de vecindad.
- Admite renderizado distribuido (donde los resultados se renderizan en cada nodo y se componen más tarde utilizando el búfer de profundidad), renderizado local (donde los polígonos resultantes se recopilan en un nodo y se renderizan localmente) y una combinación de ambos (por ejemplo, los modelos de nivel de detalle se pueden renderizar localmente mientras que el modelo completo se renderiza de manera distribuida). Esto proporciona un renderizado escalable para datos de gran tamaño sin sacrificar el rendimiento cuando se trabaja con datos más pequeños.
- La representación distribuida y la visualización en mosaicos se realizan mediante la biblioteca Ice-T de Sandia.
Scripting y extensibilidad
- ParaView es totalmente programable mediante el sencillo pero potente lenguaje Python. El motor de datos de ParaView, llamado administrador de servidores, es totalmente accesible a través de la interfaz de Python. Todos los cambios realizados en el motor a través de Python se reflejan automáticamente en la interfaz de usuario.
- ParaView se puede ejecutar como una aplicación por lotes utilizando la interfaz de Python. Se ha ejecutado con éxito en supercomputadoras como IBM Blue Gene y Cray Xt3 utilizando el modo por lotes. [8]
- El procesamiento distribuido de datos se puede realizar en Python mediante el uso del filtro programable de Python. Este filtro funciona perfectamente con NumPy y SciPy.
- Se pueden agregar módulos adicionales escribiendo una descripción XML de la interfaz o escribiendo clases C++ . La interfaz XML permite a los usuarios/desarrolladores agregar sus propios filtros VTK a ParaView sin escribir ningún código especial y/o volver a compilar. [9] [10]
ParaView en uso
- En 2005, Sandia National Laboratories , Nvidia y Kitware publicaron varios comunicados de prensa sobre el trabajo de visualización y renderización escalable realizado en ParaView. Los comunicados anunciaban avances en el rendimiento escalable que permitían alcanzar velocidades de renderización de más de 8 mil millones de polígonos por segundo utilizando ParaView. [11]
- ParaView se utiliza como plataforma de visualización para el software de modelado OpenFOAM . [12]
- El curso “Visualización de las ciencias” de la Universidad de Carolina del Norte en Chapel Hill cubre ParaView. [13]
- El Centro Nacional de Ciencias Computacionales del Laboratorio Nacional de Oak Ridge utiliza ParaView para visualizar grandes conjuntos de datos. [8]
- SimScale utiliza ParaView como alternativa a su entorno de posprocesamiento integrado y ofrece varios tutoriales y seminarios web sobre posprocesamiento con ParaView. [14] [15] [16]
- La caja de herramientas de simulación multifísica FEATool permite exportar con un solo clic a gráficos web interactivos ParaView Glance. [17]
Simulación de propagación de ondas sísmicas globales
Visualización de vórtices
ParaView: visualización de un mapa del mundo
Desplazamiento en la dirección x debido a una fuerza puntual unitaria colocada sobre la mitad de un espacio
Esfuerzo axial para una viga en voladizo
Véase también
Referencias
- ^ ab "Tags · ParaView / ParaView · GitLab" . Consultado el 2 de septiembre de 2024 .
- ^ Niklas Röber (6 de agosto de 2014). Tutorial de Paraview para la ciencia del clima (PDF) . DKRZ, Deutsches Klimarechenzentrum. Archivado desde el original (PDF) el 10 de marzo de 2016. Consultado el 8 de marzo de 2016 .
- ^ ab Utkarsh Ayachit (22 de enero de 2015). La guía de ParaView: una aplicación de visualización paralela (PDF) . Kitware, Inc. ISBN 978-1930934306. Recuperado el 8 de marzo de 2016 .
- ^ Kitware (10 de marzo de 2000). «Kitware firma contrato para desarrollar herramientas de procesamiento paralelo» . Consultado el 8 de marzo de 2016 .
- ^ Kitware (13 de marzo de 2007). «Lanzamiento de la versión alfa de ParaView III» . Consultado el 8 de marzo de 2016 .
- ^ Kitware (17 de junio de 2013). «ParaView 4.0.1 disponible para descargar» . Consultado el 11 de octubre de 2016 .
- ^ Kitware (12 de enero de 2016). «ParaView 5.0.0 disponible para descargar» . Consultado el 11 de octubre de 2016 .
- ^ ab National Center for Computational Sciences at Oak Ridge National Laboratory (16 de enero de 2016). «Running ParaView on Titan» (Ejecución de ParaView en Titán) . Consultado el 8 de marzo de 2016 .
- ^ Kitware (13 de noviembre de 2015). "ParaView/Plugin HowTo" . Consultado el 8 de marzo de 2016 .
- ^ Kitware (22 de agosto de 2012). «ParaView/Extending ParaView at Compile Time» (ParaView/Extensión de ParaView en tiempo de compilación) . Consultado el 8 de marzo de 2016 .
- ^ David Higham (17 de marzo de 2005). «Sandia National Labs logra un rendimiento revolucionario con la tecnología NVIDIA para la visualización científica» . Consultado el 8 de marzo de 2016 .
- ^ OpenCFD Ltd (ESI Group) (13 de enero de 2016). «OpenFOAM® v3.0+: Nueva funcionalidad de posprocesamiento». Archivado desde el original el 29 de enero de 2016 . Consultado el 8 de marzo de 2016 .
- ^ Russell Taylor. "Comp/Phys/Mtsc 715, Visualization in the Sciences" (Comp/Phys/Mtsc 715, Visualización en las ciencias) . Consultado el 8 de marzo de 2016 .
- ^ "Posprocesamiento mediante una solución de terceros: documentación de SimScale". www.simscale.com . Consultado el 15 de enero de 2018 .
- ^ SimScale GmbH (8 de marzo de 2016), Seminario web | Posprocesamiento en línea con SimScale , consultado el 15 de enero de 2018
- ^ "Posprocesamiento con ParaView para Formula Student". SimScale . Consultado el 15 de enero de 2018 .
- ^ "Galería de ejemplos de Glance de FEATool Multiphysics ParaView" www.featool.com . Consultado el 24 de abril de 2019 .
Enlaces externos
- Uso de Paraview en diferentes áreas
- Galería ParaView
- Publicaciones ParaView
- Página de Flickr de visualizaciones de Paraview
- Vídeos de artículos de kitware en Vimeo