stringtranslate.com

Formato de datos jerárquico

El formato de datos jerárquico ( HDF ) es un conjunto de formatos de archivo ( HDF4 , HDF5 ) diseñados para almacenar y organizar grandes cantidades de datos. Originalmente desarrollado en el Centro Nacional de Aplicaciones de Supercomputación de Estados Unidos , cuenta con el apoyo de The HDF Group, una corporación sin fines de lucro cuya misión es garantizar el desarrollo continuo de las tecnologías HDF5 y la accesibilidad continua de los datos almacenados en HDF.

Para cumplir con este objetivo, las bibliotecas HDF y las herramientas asociadas están disponibles bajo una licencia liberal, similar a la BSD , para uso general. HDF es compatible con muchas plataformas de software y lenguajes de programación comerciales y no comerciales. La distribución de HDF disponible de forma gratuita consta de la biblioteca, utilidades de línea de comandos, código fuente de la suite de pruebas, interfaz Java y el visor HDF basado en Java (HDFView). [1]

La versión actual, HDF5, difiere significativamente en diseño y API de la versión heredada principal HDF4.

Historia temprana

La búsqueda de un formato portátil de datos científicos, originalmente denominado AEHOO (All Encompassing Hierarchical Object Oriented format), comenzó en 1987 por parte del Graphics Foundations Task Force (GFTF) del National Center for Supercomputing Applications (NCSA). Las subvenciones de la NSF recibidas en 1990 y 1992 fueron importantes para el proyecto. En esa época, la NASA investigó 15 formatos de archivo diferentes para su uso en el proyecto Earth Observing System (EOS). Después de un proceso de revisión de dos años, se seleccionó HDF como el sistema estándar de datos e información. [2]

HDF4

HDF4 es la versión anterior del formato, aunque el grupo HDF aún la respalda activamente. Admite una gran variedad de modelos de datos diferentes, incluidos arreglos multidimensionales, imágenes raster y tablas. Cada uno define un tipo de datos agregado específico y proporciona una API para leer, escribir y organizar los datos y metadatos. Los desarrolladores o usuarios de HDF pueden agregar nuevos modelos de datos.

HDF se describe a sí mismo, lo que permite que una aplicación interprete la estructura y el contenido de un archivo sin información externa. Un archivo HDF puede contener una combinación de objetos relacionados a los que se puede acceder como grupo o como objetos individuales. Los usuarios pueden crear sus propias estructuras de agrupamiento llamadas "vgroups".

El formato HDF4 tiene muchas limitaciones. [3] [4] Carece de un modelo de objetos claro, lo que dificulta el soporte y la mejora continua. La compatibilidad con muchos estilos de interfaz diferentes (imágenes, tablas, matrices) da lugar a una API compleja. La compatibilidad con metadatos depende de la interfaz que se utilice; los objetos SD (conjunto de datos científicos) admiten atributos con nombre arbitrario, mientras que otros tipos solo admiten metadatos predefinidos. Quizás lo más importante es que el uso de números enteros con signo de 32 bits para el direccionamiento limita los archivos HDF4 a un máximo de 2 GB, lo que es inaceptable en muchas aplicaciones científicas modernas.

HDF5

El formato HDF5 está diseñado para abordar algunas de las limitaciones de la biblioteca HDF4 y para satisfacer los requisitos actuales y previstos de los sistemas y aplicaciones modernos. En 2002 ganó el premio R&D 100. [5]

HDF5 simplifica la estructura de archivos para incluir solo dos tipos principales de objetos:

Ejemplo de estructura HDF

Esto da como resultado un formato de datos verdaderamente jerárquico, similar a un sistema de archivos. [ aclaración necesaria ] [ cita necesaria ] De hecho, se puede acceder a los recursos en un archivo HDF5 utilizando la sintaxis similar a POSIX /path/to/resource . Los metadatos se almacenan en forma de atributos definidos por el usuario y nombrados adjuntos a grupos y conjuntos de datos. Luego se pueden crear API de almacenamiento más complejas que representen imágenes y tablas utilizando conjuntos de datos, grupos y atributos.

Además de estos avances en el formato de archivo, HDF5 incluye un sistema de tipos mejorado y objetos de espacio de datos que representan selecciones sobre regiones de conjuntos de datos. La API también está orientada a objetos con respecto a conjuntos de datos, grupos, atributos, tipos, espacios de datos y listas de propiedades.

La última versión de NetCDF , la versión 4, se basa en HDF5.

Debido a que utiliza árboles B para indexar objetos de tabla, HDF5 funciona bien para datos de series temporales , como series de precios de acciones, datos de monitoreo de redes y datos meteorológicos en 3D. La mayor parte de los datos se almacenan en matrices sencillas (los objetos de tabla) a las que se puede acceder mucho más rápido que a las filas de una base de datos SQL , pero el acceso mediante árboles B está disponible para datos que no son matrices. El mecanismo de almacenamiento de datos de HDF5 puede ser más simple y rápido que un esquema en estrella de SQL . [ ejemplo necesario ]

Comentario

Las críticas al HDF5 se deben a su diseño monolítico y a sus largas especificaciones.

Interfaces

API con soporte oficial

Enlaces de terceros

Herramientas

Véase también

Referencias

  1. ^ Visor HDF basado en Java (HDFView)
  2. ^ "Historia del Grupo HDF" . Consultado el 15 de julio de 2014 .
  3. ^ ¿En qué se diferencia HDF5 de HDF4? Archivado el 30 de marzo de 2009 en Wayback Machine.
  4. ^ "¿Existen limitaciones para los archivos HDF4?". Archivado desde el original el 19 de abril de 2016. Consultado el 29 de marzo de 2009 .
  5. ^ Archivos de los premios R&D 100 Archivado el 4 de enero de 2011 en Wayback Machine
  6. ^ Rossant, Cyrille. "Alejándose de HDF5". cyrille.rossant.net . Consultado el 21 de abril de 2016 .
  7. ^ "Biblioteca JHDF5". Archivado desde el original el 1 de diciembre de 2020. Consultado el 10 de junio de 2009 .
  8. ^ Importación y exportación de HDF Documentación de Mathematica
  9. ^ PDL::IO::HDF5

Enlaces externos