Conjunto de datos HDF5 (.hdf5)

Especificación Estándar

Hierarchical Data Format 5 (HDF5) es una arquitectura líder para gestionar matrices científicas multidimensionales de gran tamaño. Se usa ampliamente en supercomputación, modelado climático, neurociencia y aprendizaje automático.

Convertir de HDF5 a CSV

Convertidor gratuito de HDF5 a CSV en el navegador. Convierte archivos al instante en tu dispositivo.

Inspección y metadatos

Los sistemas operativos y analizadores de archivos identifican los archivos de HDF5 inspeccionando la secuencia de bytes binarios inicial:

Selecciona o arrastra archivos aquí

Privado - los archivos nunca salen de tu dispositivo

o pega Ctrl+V
Garantía de privacidad sin transmisión de red: 0 bytes subidos a servidores externos. Todo el procesamiento se realizó de forma local en el entorno seguro de tu navegador.

Firma de cabecera a nivel de bytes (bytes mágicos)

Los sistemas operativos y analizadores de archivos identifican los archivos de HDF5 inspeccionando la secuencia de bytes binarios inicial:

FIRMA HEXADECIMAL (DESPLAZAMIENTO 0):

89 48 44 46 0D 0A 1A 0A

REPRESENTACIÓN ASCII: \x89HDF\r\n\x1a\n

Estandarización: Especificación de estándar abierto de The HDF Group

Especificaciones técnicas

Arquitectura del contenedorContenedor binario jerárquico, similar a un sistema de archivos, que organiza los datos en grupos (carpetas) y conjuntos de datos (matrices multidimensionales) con atributos
CompresiónFiltros de compresión por bloques: Gzip (Deflate), SZIP, Zstandard, Blosc y LZF
Orden de bytes (Endianness)Se indica en el superbloque (Little-Endian o Big-Endian)
Espacios de colorN/D (matrices numéricas multidimensionales)
Canales y estructuraMatrices científicas de alta dimensión, tipos de datos compuestos y cadenas de longitud variable
Dimensiones máximasPrácticamente ilimitado (admite coordenadas de 64 bits y conjuntos de datos de escala petabyte)
TransparenciaNinguna
Streaming y progresivoEl almacenamiento por bloques permite leer secciones parciales de hipercubos sin cargar todo el conjunto en memoria

Matriz de comparación técnica: HDF5 frente a la competencia

Atributo técnicoHDF5 (Actual)NETCDFFITSZARR
Estructura jerárquicaSistema de archivos de tipo POSIX (grupos y conjuntos de datos)NetCDF-4 usa HDF5 internamenteMatrices y tablas de bloques fijosFormato de directorio fragmentado nativo de la nube
Lectura de secciones de conjuntos de datosLectura binaria ultrarrápida de secciones parcialesLectura rápida de secciones parcialesIndexación directa por bloquesObtención paralela de bloques desde la nube
Uso en aprendizaje automáticoEstándar para pesos de modelos (Keras .h5)Rara vez se usa en IANingunoUso creciente en conjuntos de datos de entrenamiento de IA
Ecosistema principalNCSA, supercomputación y Python h5pyNOAA, meteorología, oceanografíaNASA, astronomía, telescopiosCiencia de datos nativa de la nube

Modos de corrupción comunes y guía de recuperación hexadecimal

Error de Python h5py: «No se puede abrir el archivo (no se encontró la firma)».

Causa raíz: El superbloque de 8 bytes al principio del archivo está dañado.

Recuperación: Inspecciona los desplazamientos del superbloque o recupere los conjuntos de datos con la herramienta HDF5 de File2File.app.

Análisis de seguridad y vectores de ataque al analizador

La biblioteca oficial libhdf5 analiza árboles B complejos y tablas de montículo. Los desplazamientos dañados han provocado vulnerabilidades de desbordamiento de montículo.

Vectores de ataque conocidos

  • Desbordamiento del búfer del montón al recorrer los índices de nodos de un árbol B (por ejemplo, CVE-2021-37501).
  • Escritura fuera de límites en complementos de tuberías de filtros de descompresión personalizados.
  • Denegación de servicio mediante ciclos circulares en los enlaces entre grupos.

Mejores prácticas defensivas: Procese archivos HDF5 no confiables con motores WebAssembly aislados y límites de memoria estrictos.

Orígenes históricos e hitos

2020HDF5 v1.12 incorpora conectores de la capa de objetos virtuales (VOL) para almacenar objetos en la nube, como en Amazon S3.
2006The HDF Group se independiza del Centro Nacional de Aplicaciones de Supercomputación (NCSA) de la Universidad de Illinois y se convierte en una fundación sin ánimo de lucro.
1998El NCSA publica HDF5, un rediseño completo de HDF4 que elimina el límite de 2 GB por archivo.

Ventajas principales

  • Funciona como un sistema de archivos completo dentro de un archivo: organiza conjuntos de datos complejos de varios petabytes en grupos y conjuntos con nombre.
  • Permite leer secciones parciales de forma eficiente: se puede extraer una pequeña sección 2D de una matriz 5D de 100 GB sin leer el archivo completo.
  • Se integra ampliamente con Python científico (h5py), MATLAB, R y supercomputadoras que usan paralelismo MPI.

Limitaciones técnicas

  • La complejidad de la especificación dificulta crear analizadores independientes de la biblioteca oficial libhdf5 en C.
  • La limitación clásica de un solo proceso de escritura ha complicado históricamente los flujos de escritura simultánea en HDF5.
  • Los superbloques corruptos pueden hacer que todo el árbol jerárquico sea inaccesible.

Curiosidades técnicas interesantes

  • La firma HDF5 deriva de la firma PNG; identifica el formato y ayuda a detectar errores comunes de transferencia.
  • El Sistema de Observación de la Tierra (EOS) de la NASA almacena en formato HDF5 petabytes de datos climáticos diarios procedentes de satélites.
  • Los marcos de aprendizaje profundo como Keras y TensorFlow popularizaron HDF5 (.h5) para guardar pesos de redes neuronales.

Preguntas técnicas frecuentes

¿Qué es un archivo HDF5?

Un archivo HDF5 es como un sistema de archivos completo dentro de un único archivo. Está diseñado para almacenar eficazmente matrices científicas, tablas y modelos de aprendizaje automático de gran tamaño.

¿Cuál es la diferencia entre .h5 y .hdf5?

No hay diferencia: .h5 y .hdf5 son dos extensiones para el mismo formato, Hierarchical Data Format 5.

¿Cómo puedo ver lo que hay dentro de un archivo HDF5?

Puedes inspeccionar los grupos, conjuntos de datos y metadatos de un archivo HDF5 con HDFView, Python h5py o File2File.app.