Jeu de données HDF5 (.hdf5)

Spécification Standard

Le 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 :

Sélectionnez ou déposez des fichiers ici

Conversion 100 % privée dans le navigateur - les fichiers ne quittent jamais votre appareil

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

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 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
Boutisme des octetsDéclaré dans le superbloc (Little 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
Streaming et progressifLe 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 techniqueHDF5 (Actuel)NETCDFFITSZARR
Structure de la hiérarchieSystème de fichiers complet de type POSIX (Groupes & 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éesLectures d'hyperslabs binaires ultra-rapidesLectures d'hyperslabs rapidesIndexation 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 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

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 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.