Articulo de referencia

Formato de datos jerárquico

.hdf , .h4 , .hdf4 , .he2 , .h5 , .hdf5 , .he5 "},"mime":{"wt":""},"type code":{"wt":""},"uniform type":{"wt":""},"magic":{"wt":"\\211HDF\\r\\n\\032\\n"},"owner":{"wt":"The HDF ...

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. Desarrollado originalmente en el Centro Nacional de Aplicaciones de Supercomputación de EE . UU., cuenta con el respaldo 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 constante de los datos almacenados en HDF.

En consonancia con este objetivo, las bibliotecas HDF y las herramientas asociadas están disponibles bajo una licencia permisiva, similar a la BSD, para uso general. HDF es compatible con numerosas plataformas de software y lenguajes de programación, tanto comerciales como no comerciales. La distribución HDF, de libre acceso, incluye la biblioteca, utilidades de línea de comandos, el código fuente del conjunto de pruebas, una interfaz Java y el visor HDF View (HDFView), basado en Java. [ 1 ]

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

Historia temprana

La búsqueda de un formato de datos científicos portátil, originalmente denominado AEHOO (Formato Orientado a Objetos Jerárquico Integral), comenzó en 1987 a cargo del Grupo de Trabajo de Fundamentos Gráficos (GFTF) del Centro Nacional de Aplicaciones de Supercomputación (NCSA). Las subvenciones de la NSF recibidas en 1990 y 1992 fueron importantes para el proyecto. Por esa época, la NASA investigó 15 formatos de archivo diferentes para su uso en el proyecto del Sistema de Observación de la Tierra (EOS). Tras 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 sigue recibiendo soporte activo por parte de The HDF Group. Admite una gran variedad de modelos de datos, incluyendo matrices multidimensionales, imágenes ráster 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 añadir nuevos modelos de datos.

HDF es autodescriptivo, 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 un grupo o como objetos individuales. Los usuarios pueden crear sus propias estructuras de agrupación llamadas "vgroups". [ 3 ]

El formato HDF4 tiene muchas limitaciones. [ 4 ] [ 5 ] Carece de un modelo de objetos claro, lo que dificulta su soporte y mejora continuos. La compatibilidad con diversos estilos de interfaz (imágenes, tablas, matrices) da lugar a una API compleja. La compatibilidad con metadatos depende de la interfaz utilizada; los objetos SD (Scientific Dataset) admiten atributos con nombres arbitrarios, mientras que otros tipos solo admiten metadatos predefinidos. Quizás lo más importante sea que el uso de enteros con signo de 32 bits para el direccionamiento limita los archivos HDF4 a un máximo de 2 GB, lo cual resulta 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 futuros de los sistemas y aplicaciones modernos. En 2002, ganó el premio R&D 100. [ 6 ]

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

Ejemplo de estructura HDF
  • Conjuntos de datos, que son matrices multidimensionales tipificadas
  • Los grupos, que son estructuras de contenedores que pueden albergar conjuntos de datos y otros grupos.

Esto da como resultado un formato de datos verdaderamente jerárquico, similar a un sistema de archivos. De hecho, se puede acceder a los recursos de un archivo HDF5 mediante la sintaxis tipo POSIX /ruta/al/recurso . Los metadatos se almacenan en forma de atributos con nombre definidos por el usuario, asociados a grupos y conjuntos de datos. Posteriormente, 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 estas mejoras en el formato de archivo, HDF5 incluye un sistema de tipos optimizado y objetos de espacio de datos que representan selecciones sobre regiones de conjuntos de datos. La API también está orientada a objetos en lo que respecta a conjuntos de datos, grupos, atributos, tipos, espacios de datos y listas de propiedades.

La última versión de NetCDF , la versión 4, está basada en HDF5.

Debido a que utiliza árboles B para indexar los objetos de tabla, HDF5 funciona bien para datos de series temporales , como series de precios de acciones, datos de monitorización de redes y datos meteorológicos 3D. La mayor parte de los datos se almacena 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 de estrella SQL .

Comentario

Las críticas al HDF5 se derivan de su diseño monolítico y sus extensas especificaciones.

  • HDF5 no impone el uso de UTF-8 , por lo que las aplicaciones cliente pueden esperar ASCII en la mayoría de los casos.
  • Los datos del conjunto de datos no se pueden liberar en un archivo sin generar una copia del archivo utilizando una herramienta externa (h5repack). [ 7 ]

API compatibles oficialmente

  • do
  • C++
  • CLI - .NET
  • Fortran , Fortran 90
  • HDF5 Lite (H5LT): una interfaz ligera para C
  • Imagen HDF5 (H5IM): una interfaz C para imágenes o rásteres.
  • Tabla HDF5 (H5TB): una interfaz C para tablas
  • Tabla de paquetes HDF5 (H5PT): interfaces para que C y C++ gestionen datos de "paquetes", a los que se accede a alta velocidad.
  • Escala de dimensión HDF5 (H5DS): permite agregar escalas de dimensión a HDF5.
  • Java

Véase también

  • Formato de datos común (CDF)
  • FITS , un formato de datos utilizado en astronomía
  • GRIB (GRIdded Binary), un formato de datos utilizado en meteorología.
  • Explorador HDF
  • NetCDF , la biblioteca Java de NetCDF lee HDF5, HDF4, HDF-EOS y otros formatos utilizando Java puro.
  • Protocol Buffers : el formato de intercambio de datos de Google.
  • Zarr , un formato de datos con similitudes a HDF5.

Referencias

  1. "Visor HDF basado en Java (HDFView)" . Archivado del original el 11 de agosto de 2016. Consultado el 25 de julio de 2014 .
  2. "Historia del Grupo HDF" . Archivado del original el 21 de agosto de 2016. Consultado el 15 de julio de 2014 .
  3. Este artículo se basa en material tomado de Hierarchical+Data+Format en el Free On-line Dictionary of Computing antes del 1 de noviembre de 2008 e incorporado bajo los términos de "relicencia" de la GFDL , versión 1.3 o posterior.
  4. ¿En qué se diferencia HDF5 de HDF4? Archivado el 30/03/2009 en Wayback Machine.
  5. "¿Existen limitaciones para los archivos HDF4?" . Archivado del original el 19/04/2016 . Recuperado el 29/03/2009 .
  6. Archivo de los premios R&D 100 (Archivado el 4 de enero de 2011 en Wayback Machine)
  7. Rossant, Cyrille. "Alejándonos de HDF5" . cyrille.rossant.net . Consultado el 21 de abril de 2016 .
  • Sitio web oficialEdita esto en Wikidata
  • ¿Qué es HDF5?
  • Centro de información y herramientas HDF-EOS
  • Superficie de navegación abierta