Dataset HDF5 (.hdf5)
Specifiche StandardHierarchical Data Format 5 (HDF5) è un'architettura avanzata per la gestione di grandi array scientifici multidimensionali. È molto usata nel supercalcolo, nella modellazione climatica, nelle neuroscienze e nell'apprendimento automatico.
Converti da HDF5 a CSV
Convertitore gratuito da HDF5 a CSV nel browser. Converti i file istantaneamente sul tuo dispositivo.
Ispezione e metadati
I sistemi operativi e gli analizzatori di file identificano i file HDF5 ispezionando la sequenza di byte binari iniziale:
Firma dell'intestazione a livello di byte (Magic Bytes)
I sistemi operativi e gli analizzatori di file identificano i file HDF5 ispezionando la sequenza di byte binari iniziale:
FIRMA ESADECIMALE (OFFSET 0):
89 48 44 46 0D 0A 1A 0ARAPPRESENTAZIONE ASCII: \x89HDF\r\n\x1a\n
Standardizzazione: Specifiche dello standard aperto di The HDF Group
Specifiche tecniche
| Architettura del contenitore | Contenitore binario gerarchico, simile a un file system, che organizza i dati in gruppi (cartelle) e dataset (array multidimensionali) con attributi |
| Compressione | Filtri di compressione basati su blocchi: Gzip (Deflate), SZIP, Zstandard, Blosc e LZF |
| Endianness dei byte | Dichiarato nel superblocco (little-endian o big-endian) |
| Spazi colore | Non applicabile (array numerici multidimensionali) |
| Canali e struttura | Array scientifici ad alta dimensionalità, tipi di dati composti e stringhe di lunghezza variabile |
| Dimensioni massime | Praticamente illimitate (supporta coordinate a 64 bit e dataset di scala petabyte) |
| Trasparenza | Nessuna |
| Streaming e progressivo | L'archiviazione a blocchi consente di leggere porzioni iperslab senza caricare l'intero dataset in memoria |
Matrice di confronto tecnico: HDF5 vs Concorrenti
| Attributo tecnico | HDF5 (Attuale) | NETCDF | FITS | ZARR |
|---|---|---|---|---|
| Struttura gerarchica | File system completo simile a POSIX (gruppi e dataset) | NetCDF-4 usa HDF5 internamente | Array e tabelle a blocchi fissi | Formato a blocchi nativo per il cloud, basato su directory |
| Lettura di porzioni di dataset | Lettura binaria rapidissima di porzioni iperslab | Lettura rapida di porzioni iperslab | Indicizzazione diretta dei blocchi | Recupero parallelo di blocchi dal cloud |
| Uso nell'apprendimento automatico | Standard per i pesi dei modelli (Keras .h5) | Raramente utilizzato nell'IA | Nessuno | Uso crescente per i dataset di addestramento dell'IA |
| Ecosistema principale | NCSA, supercalcolo, Python h5py | NOAA, meteorologia, oceanografia | NASA, astronomia, telescopi | Data science nativa per il cloud |
Modalità di corruzione comuni e guida al recupero esadecimale
Errore Python h5py: 'Unable to open file (file signature not found)' (Impossibile aprire il file: firma non trovata).
Causa principale: Superblocco di 8 byte danneggiato all'inizio del file.
Ripristino: Controlla gli offset del superblocco o recupera i dataset con HDF5 Tool di File2File.app.
Analisi di sicurezza e vettori di attacco del parser
La libreria ufficiale libhdf5 analizza alberi B complessi e tabelle heap; offset danneggiati possono provocare overflow dell'heap.
Vettori di attacco noti
- Overflow del buffer heap durante l'attraversamento degli indici dei nodi dell'albero B (es. CVE-2021-37501).
- Scrittura fuori dai limiti nei plugin personalizzati per i filtri di decompressione.
- Interruzione del servizio tramite cicli di riferimenti circolari ai gruppi.
Migliori pratiche difensive: Elabora i file HDF5 non attendibili con motori WebAssembly isolati e limiti di memoria.
Origini storiche e tappe fondamentali
Vantaggi principali
- Un file che funge da intero file system: organizza dataset complessi di più petabyte in gruppi e dataset con nome, simili a directory.
- Lettura efficiente di porzioni iperslab: consente di leggere una piccola porzione 2D di un'enorme matrice 5D da 100 GB senza leggere tutto il file.
- Strettamente integrato con Python scientifico (h5py), MATLAB, R e supercomputer ad alte prestazioni con parallelismo MPI.
Limiti tecnici e svantaggi
- L'elevata complessità delle specifiche rende difficili le implementazioni di parser indipendenti al di fuori della libreria C ufficiale libhdf5.
- I limiti alla scrittura simultanea, con un solo writer nel formato HDF5 classico, hanno complicato a lungo i flussi di lavoro concorrenti.
- Un superblocco danneggiato può rendere inaccessibile l'intera struttura gerarchica.
Curiosità tecniche
- La firma HDF5 deriva da quella PNG; identifica il formato e aiuta a rilevare errori comuni di trasferimento.
- L'EOS (Earth Observing System) della NASA memorizza petabyte di dati climatici satellitari giornalieri in formato HDF5.
- I framework di deep learning come Keras e TensorFlow hanno reso popolare HDF5 (.h5) per il salvataggio dei pesi delle reti neurali.
Domande tecniche frequenti
Cos'è un file HDF5?
Un file HDF5 è come un file system completo contenuto in un unico file. È progettato per archiviare in modo efficiente grandi array scientifici, tabelle e modelli di apprendimento automatico.
Qual è la differenza tra .h5 e .hdf5?
Non c'è differenza: .h5 e .hdf5 sono due estensioni diverse per lo stesso formato Hierarchical Data Format 5.
Come posso vedere cosa c'è dentro un file HDF5?
Puoi esaminare gruppi, dataset e metadati di qualsiasi file HDF5 con HDFView, Python h5py o File2File.app.