Zbiór danych HDF5 (.hdf5)

The Standard

Hierarchical Data Format 5 (HDF5) to wiodąca architektura zarządzania dużymi, wielowymiarowymi zbiorami danych naukowych. Jest szeroko stosowana w obliczeniach wielkiej skali, modelowaniu klimatu, neuronauce i uczeniu maszynowym.

Konwertuj HDF5 na CSV

Darmowy konwerter z HDF5 na CSV w przeglądarce. Konwertuj pliki natychmiast na swoim urządzeniu.

Inspekcja i metadane

Systemy operacyjne i analizatory plików identyfikują pliki HDF5, sprawdzając początkową sekwencję bajtów binarnych:

Wybierz lub upuść pliki tutaj

Prywatnie - pliki nigdy nie opuszczają Twojego urządzenia

lub wklej Ctrl+V
Gwarancja prywatności bez przesyłania danych do sieci: 0 bajtów przesłanych na zewnętrzne serwery. Całe przetwarzanie odbyło się lokalnie w piaskownicy przeglądarki.

Podpis nagłówka na poziomie bajtów (Magic Bytes)

Systemy operacyjne i analizatory plików identyfikują pliki HDF5, sprawdzając początkową sekwencję bajtów binarnych:

PODPIS HEX (OFFSET 0):

89 48 44 46 0D 0A 1A 0A

REPREZENTACJA ASCII: \x89HDF\r\n\x1a\n

Normalizacja: The HDF Group Open Standard Specification

Specyfikacja techniczna

Architektura konteneraHierarchiczny kontener binarny przypominający system plików; porządkuje dane w grupach i zbiorach danych (tablicach wielowymiarowych) z atrybutami
KompresjaFiltry kompresji oparte na fragmentach: Gzip (Deflate), SZIP, Zstandard, Blosc i LZF
Kolejność bajtów (Endianness)Kolejność bajtów Little-Endian lub Big-Endian jest określona w superbloku
Przestrzenie kolorówNie dotyczy (wielowymiarowe tablice numeryczne)
Kanały i strukturaWielowymiarowe tablice naukowe, złożone typy danych i ciągi znaków o zmiennej długości
Maks. wymiaryPraktycznie nieograniczony rozmiar; obsługuje 64-bitowe współrzędne i zbiory danych o skali petabajtów
PrzezroczystośćNone
Streaming i progresywne ładowanieZapis we fragmentach umożliwia odczyt wycinka hipersześcianu bez wczytywania całego zbioru do pamięci

Techniczna macierz porównawcza: HDF5 a konkurencja

Atrybut technicznyHDF5 (Bieżący)NETCDFFITSZARR
Struktura hierarchicznaPełna hierarchia w stylu POSIX (grupy i zbiory danych)NetCDF-4 bazuje na HDF5Tablice i tabele o stałych blokachChmurowy format podzielony na bloki (katalogi)
Wycinanie zbiorów danychBardzo szybkie binarne odczyty hiperslabówSzybkie odczyty hiperslabówBezpośrednie indeksowanie blokówChmurowe pobieranie równoległych bloków
Zastosowanie w uczeniu maszynowymStandardowy format wag modeli (Keras .h5)Rzadko stosowany w AIBrakRosnące wykorzystanie w treningu zestawów danych AI
Główny ekosystemNCSA, superkomputery, Python h5pyNOAA, meteorologia, oceanografiaNASA, astronomia, teleskopyNauka o danych w chmurze

Typowe tryby uszkodzeń i przewodnik odzyskiwania szesnastkowego

Błąd Pythona h5py: 'Unable to open file (file signature not found)'.

Główna przyczyna: Uszkodzony 8-bajtowy superblok na początku pliku.

Odzyskiwanie: Sprawdź przesunięcia superbloku lub odzyskaj zbiory danych za pomocą File2File.app HDF5 Tool.

Analiza bezpieczeństwa i wektory ataku na parser

Oficjalna biblioteka libhdf5 przetwarza złożone drzewa B i tablice sterty. Uszkodzone przesunięcia powodowały podatności związane z przepełnieniem sterty.

Znane wektory ataku

  • Przepełnienie bufora sterty podczas przechodzenia przez indeks węzła drzewa B (np. CVE-2021-37501).
  • Zapis poza granicami bufora w niestandardowych wtyczkach potoku filtru dekompresji.
  • Odmowa usługi poprzez zapętlone powiązania grup.

Najlepsze praktyki obronne: Przetwarzaj niezaufane pliki HDF5 w odizolowanym środowisku WebAssembly z ograniczoną ilością pamięci.

Pochodzenie historyczne i kamienie milowe

2020HDF5 w wersji 1.12 wprowadza złącza Virtual Object Layer (VOL) dla chmurowej pamięci obiektowej (Amazon S3).
2006Grupa HDF odłącza się od NCSA Uniwersytetu Illinois jako niezależna fundacja non-profit.
1998NCSA wydaje HDF5, całkowicie przeprojektowując oryginalny HDF4, aby wyeliminować limit 2 GB dla plików.

Główne zalety

  • System plików w jednym pliku: porządkuje złożone zbiory danych o rozmiarze wielu petabajtów w nazwane grupy i zbiory danych, podobnie jak katalogi.
  • Wydajny odczyt wycinków hipersześciennych: pozwala odczytać mały wycinek 2D z ogromnej, 100-gigabajtowej macierzy 5D bez wczytywania całego pliku.
  • Szeroka integracja z nowoczesnym Pythonem naukowym (h5py), MATLAB-em, R oraz superkomputerami wykorzystującymi obliczenia równoległe MPI.

Ograniczenia techniczne i wady

  • Wysoka złożoność specyfikacji utrudnia niezależną implementację parsera poza oficjalną biblioteką C libhdf5.
  • Ograniczenie klasycznego HDF5 do jednego procesu zapisującego historycznie utrudniało równoczesny zapis.
  • Uszkodzone superbloki mogą uniemożliwić dostęp do całego drzewa hierarchicznego.

Ciekawe informacje techniczne

  • Sygnatura HDF5 wywodzi się z PNG; identyfikuje format i pomaga wykrywać częste błędy transferu.
  • System obserwacji Ziemi (EOS) NASA przechowuje petabajty codziennych satelitarnych danych klimatycznych w formacie HDF5.
  • Frameworki uczenia głębokiego, takie jak Keras i TensorFlow, przyczyniły się do popularyzacji HDF5 (.h5) jako formatu zapisu wag sieci neuronowych.

Często zadawane pytania techniczne

Czym jest plik HDF5?

Plik HDF5 przypomina kompletny system plików zamknięty w jednym pliku. Służy do wydajnego przechowywania dużych macierzy i tabel naukowych oraz modeli uczenia maszynowego.

Jaka jest różnica między .h5 a .hdf5?

Nie ma żadnej różnicy; .h5 i .hdf5 to dwa różne rozszerzenia plików dla dokładnie tego samego formatu Hierarchical Data Format 5.

Jak mogę zobaczyć, co znajduje się w pliku HDF5?

Możesz sprawdzać grupy, zbiory danych oraz metadane w dowolnym pliku HDF5 za pomocą programu HDFView, biblioteki h5py dla języka Python lub bezpośrednio w przeglądarce za pomocą File2File.app.