Wat is het H5-bestandsformaat?
De .h5 bestandsextensie duidt op een HDF5 (Hierarchical Data Format versie 5) bestand, een binaire wetenschappelijke datacontainer ontwikkeld door de HDF Group en oorspronkelijk gecreëerd bij het National Center for Supercomputing Applications (NCSA) in 1998. HDF5 is een zelfbeschrijvend, hiërarchisch formaat ontworpen om enorme multidimensionale datasets op te slaan samen met rijke metadata.
Intern is een .h5 bestand georganiseerd als een boomstructuur van benoemde groepen (vergelijkbaar met mappen) en datasets (N-dimensionale getypeerde arrays). Elke dataset registreert zijn eigen datatype, dimensies, bytevolgorde en compressie-instellingen. Datasets kunnen optioneel per blok («chunk») worden gecomprimeerd met GZIP, SZIP, Blosc of Zstandard, wat efficiënte opslag mogelijk maakt, zelfs voor data op terabyte-schaal. Elk bestand en object kan benoemde attributen bevatten voor aanvullende metadata.
Veelvoorkomende toepassingen zijn:
- grote wetenschappelijke datasets in geowetenschappen, natuurkunde, bio-informatica en lucht- en ruimtevaart (NASA, NOAA, ESA en CERN vertrouwen allemaal op HDF5),
- het opslaan van Keras en TensorFlow neurale netwerkgewichten en modelarchitecturen,
- het leveren van de onderliggende opslaglaag voor NetCDF-4 bestanden.
Alle HDF5-bestanden beginnen met de «magic signature» \x89HDF\r\n\x1a\n (8 bytes, meestal op offset 0). Het formaat ondersteunt zowel little-endian als big-endian bytevolgorde, per bestand gedeclareerd in het superblock. HDF5-bestanden worden gelezen met de h5py bibliotheek van Python, MATLAB, het h5dump opdrachtregelprogramma uit de officiële HDF5-toolset en de HDFView GUI.
De extensies .h5 en .hdf5 zijn uitwisselbaar - beide identificeren geldige HDF5-bestanden en worden identiek behandeld door alle HDF5-compatibele software.
Beveiliging & veiligheid
RISICO: LOWHDF5 is een passieve binaire datacontainer zonder uitvoerbare code. Veilig om te openen. Zeer grote datasets kunnen geheugenproblemen veroorzaken als ze volledig in het RAM worden geladen - gebruik de «lazy-loading» van h5py (f['/dataset'][::]) om grote arrays in segmenten te verwerken. Misvormde HDF5-bestanden kunnen bibliotheekfouten veroorzaken in oudere versies van libhdf5; houd de bibliotheek up-to-date.
Formaatdetails
in een notendop- Keras/TensorFlow neuraal netwerkmodel - Keras slaat getrainde modelgewichten en architectuur op naar .h5 met behulp van HDF5; dit is hetzelfde formaat, geen ander.
- NetCDF-4 klimaat/oceanografie data - NetCDF-4 bestanden (.nc, .nc4) zijn HDF5-bestanden met aanvullende NetCDF-conventies; soms per vergissing opgeslagen als .h5.
Programma's die H5-bestanden openen
Technische details
diepe specificaties| Containerformaat | HDF5 hiërarchische groep/dataset/attribuut container |
| Magic bytes | 89 48 44 46 0D 0A 1A 0A; ASCII \x89HDF\r\n\x1a\n; 8 bytes op offset 0 (kan voorkomen op 512/1024/2048 offsets) |
| Bytevolgorde | Little-endian of big-endian, per bestand gedeclareerd in het superblock |
| Codering | Binair |
| MIME-type | application/x-hdf5 |
| Compressie | Optionele filter-pipeline per dataset: GZIP, SZIP, LZF, Blosc, Zstandard, of geen |
| Checksum | Fletcher32 per chunk (optioneel, per dataset); superblock checksum in v2/v3 |
| Superblock-versies | 0-3; v2/v3 voegen compacte lay-out en bestandsruimtebeheer toe |
| Max dataset dimensies | 32 dimensies; tot 2^64 elementen per dimensie |
| Chunking | Datasets kunnen worden opgesplitst in blokken van vaste grootte, wat compressie per blok, willekeurige toegang en dynamische uitbreiding mogelijk maakt |
| Typische bestandsgrootte | 100 KB - 100 GB+ (Keras/TensorFlow modelgewichten doorgaans 1-500 MB) |
| Zelfbeschrijvend | Elke dataset slaat zijn eigen type, dimensies, bytevolgorde, compressie en benoemde attributen op |
| Achterwaartse compatibiliteit | Nieuwere HDF5-bibliotheekversies lezen alle oudere HDF5-bestanden |
| Platform | Linux, Windows, macOS, HPC-clusters (elk POSIX-besturingssysteem) |
| Uitgebracht | 1998 (HDF5 1.0 release by NCSA) |
| Laatste versie | HDF5 1.14 (2023); file format spec version 1.1 (adds new B-tree type) |
| Open standaard | Ja · royaltyvrij |
| Specificatie | support.hdfgroup.org |
H5 conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over H5-bestanden.