Jeu de données HDF5 (.hdf5)

Spécification Standard

HDF5 (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 :

Sélectionnez ou déposez des fichiers ici

Privé - les fichiers ne quittent jamais votre appareil

ou coller Ctrl+V
Garantie de confidentialité sans transmission réseau : 0 octet envoyé vers des serveurs externes. Tout le traitement a eu lieu localement dans le bac à sable de votre navigateur.

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 0A

REPRÉSENTATION ASCII : \x89HDF\r\n\x1a\n

Normalisation : Spécification de la norme ouverte du groupe HDF

Spécifications techniques

Architecture de conteneurConteneur 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
CompressionFiltres de compression basés sur des blocs : Gzip (Deflate), SZIP, Zstandard, Blosc et LZF
Ordre des octetsDéclaré dans le superbloc (little-endian ou big-endian)
Espaces colorimétriquesN/A (Tableaux numériques multidimensionnels)
Canaux et structureTableaux scientifiques de haute dimension, types de données composites et chaînes de longueur variable
Dimensions maximalesPratiquement illimité (prend en charge les coordonnées 64 bits et les ensembles de données à l'échelle du pétaoctet)
TransparenceAucune
Prise en charge du traitement en continuLe 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 techniqueHDF5 (Actuel)NETCDFFITSZARR
Structure de la hiérarchieSystème de fichiers complet de type POSIX (groupes et jeux de données)NetCDF-4 utilise HDF5 en dessousTableaux et tables de blocs fixesFormat de répertoire fragmenté natif du cloud
Découpage de jeux de donnéesLecture rapide de blocs multidimensionnels contigusLecture rapide de blocs multidimensionnels contigusIndexation directe par blocsRécupérations de blocs parallèles dans le cloud
Utilisation en apprentissage automatiqueStandard pour les poids de modèles (Keras .h5)Rarement utilisé en IAAucunUtilisation croissante pour les ensembles de données d'entraînement en IA
Écosystème principalNCSA, supercalcul, Python h5pyNOAA, météorologie, océanographieNASA, astronomie, télescopesScience 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

2020HDF5 v1.12 introduit des connecteurs de couche d'objets virtuels (VOL) pour le stockage d'objets cloud (Amazon S3).
2006Le groupe HDF se sépare du NCSA de l'Université de l'Illinois en tant que fondation à but non lucratif indépendante.
1998Le NCSA publie HDF5, refondant complètement le HDF4 d'origine pour éliminer les limites de fichiers de 2 Go.

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.