Jeu de données HDF5 (.hdf5)
Spécification StandardHDF5 (format de données hiérarchique, version 5) est un format de référence pour gérer de vastes tableaux multidimensionnels. Il est largement utilisé en calcul intensif, en modélisation climatique, en neurosciences et en apprentissage automatique.
Convertir HDF5 en CSV
Outil de conversion gratuit de HDF5 vers CSV dans le navigateur. Convertissez des fichiers instantanément sur votre appareil.
Inspection et métadonnées
Les systèmes d'exploitation et les analyseurs de fichiers identifient les fichiers HDF5 en inspectant leur séquence initiale d'octets binaires :
Signature d'en-tête au niveau des octets (octets magiques)
Les systèmes d'exploitation et les analyseurs de fichiers identifient les fichiers HDF5 en inspectant leur séquence initiale d'octets binaires :
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 |
| Ordre des octets | Déclaré dans le superbloc (little-endian 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 |
| Prise en charge du traitement en continu | 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 face aux concurrents
| Attribut technique | HDF5 (Actuel) | NETCDF | FITS | ZARR |
|---|---|---|---|---|
| Structure de la hiérarchie | Système de fichiers complet de type POSIX (groupes et 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 | Lecture rapide de blocs multidimensionnels contigus | Lecture rapide de blocs multidimensionnels contigus | 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 restauration hexadécimale
Erreur Python h5py : 'Impossible d'ouvrir le fichier (signature de fichier introuvable)'.
Cause initiale: Superbloc de 8 octets corrompu au début du fichier.
Récupération: Inspectez les décalages des superblocs ou récupérez les jeux de données avec l’outil HDF5 de File2File.app.
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 intégré à 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.
- Sélection rapide d’une petite tranche 2D dans une matrice 5D de 100 Go sans lire le fichier entier.
- Intégration étroite avec Python scientifique moderne (h5py), MATLAB, R et superordinateurs parallèles MPI haute performance.
Limites techniques
- La complexité élevée de la spécification rend difficile la création d’analyseurs indépendants sans 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.
Faits intéressants
- La signature HDF5 dérive de celle de PNG; elle identifie le format et aide à détecter des erreurs courantes de transfert.
- 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 pas de différence : .h5 et .hdf5 sont deux extensions différentes pour le même format de données hiérarchique, version 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.