HDF5-dataset (.hdf5)
The StandaardHierarchical Data Format 5 (HDF5) is de belangrijkste architectuur voor wetenschappelijk databeheer voor massale multidimensionale arrays en wordt veel gebruikt in supercomputing, klimaatmodellering, neurowetenschappen en machine learning.
HDF5 naar CSV converteren
Gratis HDF5-naar-CSV-converter in uw browser. Converteer bestanden direct op uw apparaat.
Inspecteren en metadata
Besturingssystemen en bestandsanalysators herkennen HDF5-bestanden aan de hand van de eerste binaire bytesequentie:
Bestandshandtekening op byteniveau (magic bytes)
Besturingssystemen en bestandsanalysators herkennen HDF5-bestanden aan de hand van de eerste binaire bytesequentie:
HEX-HANDTEKENING (OFFSET 0):
89 48 44 46 0D 0A 1A 0AASCII-WEERGAVE: \x89HDF\r\n\x1a\n
Standaardisatie: The HDF Group Open Standard Specification
Technische specificaties
| Containerarchitectuur | Hiërarchische, bestandssysteemachtige binaire container die data organiseert in groepen (mappen) en datasets (multidimensionale arrays) met attributen |
| Compressie | Op chunks gebaseerde compressiefilters: Gzip (Deflate), SZIP, Zstandard, Blosc en LZF |
| Bytevolgorde (endianness) | Vastgelegd in het superblok (Little-Endian of Big-Endian) |
| Kleurruimten | N.v.t. (Multidimensionale numerieke arrays) |
| Kanalen en structuur | Hoogdimensionale wetenschappelijke arrays, samengestelde datatypen en tekenreeksen van variabele lengte |
| Maximale afmetingen | Praktisch onbeperkt (ondersteunt 64-bits coördinaten en datasets ter grootte van petabytes) |
| Transparantie | Geen |
| Streaming en progressief | Chunk-opslag maakt gedeeltelijke hyperslab-slicing mogelijk zonder de volledige dataset in het geheugen te laden |
Technische vergelijkingsmatrix: HDF5 versus concurrenten
| Technisch kenmerk | HDF5 (Huidig) | NETCDF | FITS | ZARR |
|---|---|---|---|---|
| Hiërarchiestructuur | Volledig POSIX-achtig bestandssysteem (groepen en datasets) | NetCDF-4 gebruikt HDF5 als onderliggende laag | Vaste blokarrays en tabellen | Cloud-native mapformaat met chunks |
| Dataset-slicing | Ultrasnelle binaire hyperslab-leesbewerkingen | Snelle hyperslab-leesbewerkingen | Directe blokindexering | Parallelle chunk-opvragingen in de cloud |
| Gebruik voor machine learning | Standaard voor modelgewichten (Keras .h5) | Zelden gebruikt in AI | Geen | Toenemend gebruik voor AI-trainingsdatasets |
| Primair ecosysteem | NCSA, supercomputing, Python h5py | NOAA, meteorologie, oceanografie | NASA, astronomie, telescopen | Cloud-native datawetenschap |
Veelvoorkomende beschadigingen en gids voor hex-herstel
Python h5py-fout: 'Unable to open file (file signature not found)'.
Oorzaak: Beschadigd superblok van 8 bytes aan het begin van het bestand.
Herstel: Controleer de offsets van het superblok of herstel datasets met de HDF5-tool van File2File.app.
Beveiligingsanalyse en aanvalsvectoren voor parsers
De officiële libhdf5-bibliotheek verwerkt complexe B-bomen en heaptabellen, waarbij beschadigde offsets heap-overloopkwetsbaarheden hebben veroorzaakt.
Bekende aanvalsvectoren
- Heap-bufferoverloop tijdens doorkruising van B-boomknooppuntindexen (bijv. CVE-2021-37501).
- Schrijven buiten de grenzen in plug-ins voor aangepaste decompressiefilterpipelines.
- Denial of service door cycli in circulaire groepskoppelingen.
Aanbevolen beveiligingspraktijken: Verwerk niet-vertrouwde HDF5-bestanden met WebAssembly-engines die in een sandbox draaien en beperkte geheugenlimieten hebben.
Historische oorsprong en mijlpalen
Belangrijkste voordelen
- Compleet bestandssysteem in één bestand: organiseert complexe datasets van meerdere petabytes in benoemde groepen en datasets zoals mappen.
- Snelle hyperslab-slicing: lees een kleine 2D-plak uit een enorme 5D-matrix van 100 gigabyte zonder het volledige bestand te lezen.
- Nauwe integratie met moderne wetenschappelijke Python (h5py), MATLAB, R en krachtige MPI-parallelle supercomputers.
Technische beperkingen
- Hoge specificatiecomplexiteit maakt onafhankelijke parserimplementaties moeilijk buiten de officiële libhdf5 C-bibliotheek.
- Beperkingen van vergrendeling bij klassieke HDF5, waarbij één schrijver tegelijk kan schrijven, bemoeilijkten historisch gezien gelijktijdige schrijfprocessen.
- Beschadigde superblokken kunnen de hele hiërarchische boom ontoegankelijk maken.
Interessante technische weetjes
- De HDF5-bestandshandtekening (\x89HDF\r\n\x1a\n) is afgeleid van de PNG-bestandshandtekening. Volgens The HDF Group identificeert deze HDF5-bestanden en helpt deze veelvoorkomende problemen met bestandsoverdracht op te sporen.
- Het Earth Observing System (EOS) van NASA slaat petabytes aan dagelijkse satellietklimaatdata op in HDF5-formaat.
- Deep learning-frameworks zoals Keras en TensorFlow populariseerden HDF5 (.h5) voor het opslaan van neurale netwerkgewichten.
Veelgestelde technische vragen
Wat is een HDF5-bestand?
Een HDF5-bestand is vergelijkbaar met een compleet bestandssysteem in één bestand. Het is ontworpen om zeer grote wetenschappelijke arrays, tabellen en machinelearningmodellen efficiënt op te slaan.
Wat is het verschil tussen .h5 en .hdf5?
Er is geen verschil; .h5 en .hdf5 zijn twee verschillende bestandsextensies voor exact hetzelfde formaat, Hierarchical Data Format 5.
Hoe kan ik bekijken wat er in een HDF5-bestand zit?
U kunt de groepen, datasets en metadata in elk HDF5-bestand inspecteren met HDFView, Python h5py of online met File2File.app.