Jeu de données HDF5 (.hdf5)
Spécification StandardLe format de données hiérarchique 5 (HDF5) est la principale architecture de gestion de données scientifiques pour les tableaux multidimensionnels massifs, largement utilisée dans le supercalcul, la modélisation climatique, les neurosciences et l'apprentissage automatique.
Convertir HDF5 en CSV
Convertisseur gratuit de HDF5 vers CSV dans le navigateur. Convertissez des fichiers instantanément sur votre appareil.
Inspecter et métadonnées
Les systèmes d'exploitation et les analyseurs de fichiers identifient les fichiers HDF5 en inspectant la séquence d'octets binaires de tête :
Signature d'en-tête au niveau des octets (Magic Bytes)
Les systèmes d'exploitation et les analyseurs de fichiers identifient les fichiers HDF5 en inspectant la séquence d'octets binaires de tête :
SIGNATURE HEXADÉCIMALE (DÉCALAGE 0) :
89 48 44 46 0D 0A 1A 0AREPRÉSENTATION ASCII : \x89HDF\r\n\x1a\n
Normalisation : Spécification de la norme ouverte du groupe HDF
Spécifications techniques
| Architecture de conteneur | Conteneur binaire semblable à un système de fichiers hiérarchique organisant les données en groupes (dossiers) et jeux de données (tableaux multidimensionnels) avec des attributs |
| Compression | Filtres de compression basés sur des blocs : Gzip (Deflate), SZIP, Zstandard, Blosc et LZF |
| Boutisme des octets | Déclaré dans le superbloc (Little ou Big-Endian) |
| Espaces colorimétriques | N/A (Tableaux numériques multidimensionnels) |
| Canaux et structure | Tableaux scientifiques de haute dimension, types de données composites et chaînes de longueur variable |
| Dimensions maximales | Pratiquement illimité (prend en charge les coordonnées 64 bits et les ensembles de données à l'échelle du pétaoctet) |
| Transparence | Aucune |
| Streaming et progressif | Le stockage par blocs permet le découpage partiel d'hyperslabs sans charger l'ensemble de données complet en mémoire |
Matrice de comparaison technique : HDF5 vs Concurrents
| Attribut technique | HDF5 (Actuel) | NETCDF | FITS | ZARR |
|---|---|---|---|---|
| Structure de la hiérarchie | Système de fichiers complet de type POSIX (Groupes & Jeux de données) | NetCDF-4 utilise HDF5 en dessous | Tableaux et tables de blocs fixes | Format de répertoire fragmenté natif du cloud |
| Découpage de jeux de données | Lectures d'hyperslabs binaires ultra-rapides | Lectures d'hyperslabs rapides | Indexation directe par blocs | Récupérations de blocs parallèles dans le cloud |
| Utilisation en apprentissage automatique | Standard pour les poids de modèles (Keras .h5) | Rarement utilisé en IA | Aucun | Utilisation croissante pour les ensembles de données d'entraînement en IA |
| Écosystème principal | NCSA, supercalcul, Python h5py | NOAA, météorologie, océanographie | NASA, astronomie, télescopes | Science des données native du cloud |
Modes de corruption courants et guide de récupération hexadécimale
Erreur Python h5py : 'Impossible d'ouvrir le fichier (signature de fichier introuvable)'.
Cause racine: Superbloc de 8 octets corrompu au début du fichier.
Récupération: Inspecter les décalages de superblocs ou récupérer les jeux de données à l'aide de l'outil File2File HDF5.
Analyse de sécurité et vecteurs d'attaque de l'analyseur
La bibliothèque officielle libhdf5 analyse des arbres B complexes et des tables de tas où des décalages corrompus ont provoqué des vulnérabilités de dépassement de tas.
Vecteurs d'attaque connus
- Dépassement de tampon de tas lors de la traversée d'index de nœuds d'arbres B (par ex. CVE-2021-37501).
- Écriture hors limites dans des plugins de pipeline de filtre de décompression personnalisés.
- Déni de service par le biais de cycles de liaison de groupes circulaires.
Bonnes pratiques de défense: Traiter les fichiers HDF5 non fiables à l'aide de moteurs WebAssembly en bac à sable avec des limites de mémoire restreintes.
Origines historiques et jalons
Principaux avantages
- Système de fichiers complet dans un fichier : organise des ensembles de données complexes de plusieurs pétaoctets en groupes nommés et en jeux de données comme des répertoires.
- Découpage d'hyperslabs haute performance : lit une minuscule tranche 2D à partir d'une matrice 5D massive de 100 gigaoctets sans lire le fichier complet.
- Intégration profonde avec Python scientifique moderne (h5py), MATLAB, R et superordinateurs parallèles MPI haute performance.
Limites techniques
- La grande complexité de la spécification rend les implémentations d'analyseurs indépendants difficiles en dehors de la bibliothèque C officielle libhdf5.
- Les limitations de verrouillage à écriture unique dans le HDF5 classique ont historiquement compliqué les flux de travail d'écriture simultanés.
- Les superblocs corrompus peuvent rendre l'ensemble de l'arbre hiérarchique inaccessible.
Anecdotes techniques
- Les 8 premiers octets magiques d'un fichier HDF5 (\x89HDF\r\n\x1a\n) imitent délibérément la signature de PNG pour détecter les transferts de fichiers corrompus.
- Le système d'observation de la Terre (EOS) de la NASA stocke des pétaoctets de données climatiques satellitaires quotidiennes au format HDF5.
- Les frameworks d'apprentissage profond comme Keras et TensorFlow ont popularisé HDF5 (.h5) pour l'enregistrement des poids de réseaux de neurones.
Foire aux questions techniques
Qu'est-ce qu'un fichier HDF5 ?
Un fichier HDF5 est comme un système de fichiers complet stocké dans un seul fichier, conçu pour stocker efficacement des tableaux scientifiques massifs, des tables et des modèles d'apprentissage automatique.
Quelle est la différence entre .h5 et .hdf5 ?
Il n'y a aucune différence ; .h5 et .hdf5 sont deux extensions de fichier différentes pour exactement le même format de données hiérarchique 5.
Comment puis-je voir ce qui se trouve à l'intérieur d'un fichier HDF5 ?
Vous pouvez inspecter les groupes, les jeux de données et les métadonnées à l'intérieur de n'importe quel fichier HDF5 à l'aide de HDFView, Python h5py ou en ligne avec File2File.app.