Conjunto de datos HDF5 (.hdf5)
Especificación EstándarHierarchical 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:
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 0AREPRESENTACIÓN ASCII: \x89HDF\r\n\x1a\n
Estandarización: Especificación de estándar abierto de The HDF Group
Especificaciones técnicas
| Arquitectura del contenedor | Contenedor 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ón | Filtros 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 color | N/D (matrices numéricas multidimensionales) |
| Canales y estructura | Matrices científicas de alta dimensión, tipos de datos compuestos y cadenas de longitud variable |
| Dimensiones máximas | Prácticamente ilimitado (admite coordenadas de 64 bits y conjuntos de datos de escala petabyte) |
| Transparencia | Ninguna |
| Streaming y progresivo | El 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écnico | HDF5 (Actual) | NETCDF | FITS | ZARR |
|---|---|---|---|---|
| Estructura jerárquica | Sistema de archivos de tipo POSIX (grupos y conjuntos de datos) | NetCDF-4 usa HDF5 internamente | Matrices y tablas de bloques fijos | Formato de directorio fragmentado nativo de la nube |
| Lectura de secciones de conjuntos de datos | Lectura binaria ultrarrápida de secciones parciales | Lectura rápida de secciones parciales | Indexación directa por bloques | Obtención paralela de bloques desde la nube |
| Uso en aprendizaje automático | Estándar para pesos de modelos (Keras .h5) | Rara vez se usa en IA | Ninguno | Uso creciente en conjuntos de datos de entrenamiento de IA |
| Ecosistema principal | NCSA, supercomputación y Python h5py | NOAA, meteorología, oceanografía | NASA, astronomía, telescopios | Ciencia 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
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.