Varför konvertera NC till HDF5?
Vissa vetenskapliga pipelines och verktyg accepterar HDF5 men saknar en dedikerad netCDF-drivrutin. Konvertering skapar en ren HDF5-fil som alla HDF5-medvetna läsare såsom h5py eller HDFView kan öppna utan att behöva netCDF-biblioteket.
Hur man konverterar NC till HDF5
nccopy FREE
Kör nccopy -k netCDF-4 input.nc output.nc för att konvertera en klassisk netCDF-fil till netCDF-4/HDF5-format; byt namn på utdata till .hdf5 om ditt efterföljande verktyg kräver den filändelsen.
Python (netCDF4 + h5py) OPEN-SOURCE
Installera med pip install netCDF4 h5py, läs .nc-filen med netCDF4.Dataset(), och skriv sedan varje variabel till en HDF5-fil med h5py.File() och create_dataset().
Om dessa format
En .nc-fil är en netCDF-fil (Network Common Data Form) - ett binärt format för multidimensionell vetenskaplig data såsom klimat-, väder- och havsmätdata från NOAA, NASA och Copernicus.…
Öppna detaljer för .NC →En .HDF5-fil är associerad med HDF5, en misc-fil.
Öppna detaljer för .HDF5 →Kvalitet & vad man bör tänka på
- netCDF-4 är byggt direkt på HDF5 - om
ncdump -k yourfile.ncrapporterarnetCDF-4kan du byta namn på filen till.hdf5och öppna den med h5py eller HDFView utan någon konvertering. - Klassiska netCDF-filer börjar med byten
CDF(hex43 44 46) och är inte HDF5 - dessa krävernccopyeller en Python-omskrivning för att konverteras. - Det omvända gäller inte: vanliga HDF5-filer är inte giltiga netCDF, så att byta namn från
.hdf5till.nckommer inte att fungera utan att strukturera om den interna layouten för att matcha netCDF-konventioner.
Vanliga frågor
Hur vet jag om min NC-fil redan är HDF5?
ncdump -k yourfile.nc; om den returnerar netCDF-4 är filen internt en HDF5. Du kan också kontrollera om de första två byten är 89 48 (HDF5-signaturen).Kommer h5py att kunna läsa den konverterade filen direkt?
nccopy är filen en giltig HDF5-container; variabelnamn och data är intakta, även om den interna strukturen följer netCDF-namngivningskonventioner.Bevaras metadata vid konvertering?
nccopy. När du använder h5py direkt måste du kopiera attribut manuellt, eftersom h5py inte överför netCDF-metadata automatiskt.