Зачем конвертировать NC в HDF5?
Некоторые научные конвейеры и инструменты принимают HDF5, но не имеют выделенного драйвера netCDF. Конвертация создает обычный файл HDF5, который любой ридер с поддержкой HDF5, такой как h5py или HDFView, может открыть без необходимости использования библиотеки netCDF.
Способы конвертации NC в HDF5
nccopy FREE
Запустите nccopy -k netCDF-4 input.nc output.nc, чтобы преобразовать классический файл netCDF в формат netCDF-4/HDF5; переименуйте результат в .hdf5, если ваш инструмент требует это расширение.
Python (netCDF4 + h5py) OPEN-SOURCE
Установите с помощью pip install netCDF4 h5py, прочитайте файл .nc через netCDF4.Dataset(), затем запишите каждую переменную в файл HDF5, используя h5py.File() и create_dataset().
Об этих форматах
Файл .nc - это файл netCDF (Network Common Data Form), бинарный формат для многомерных научных данных, таких как наборы данных о климате, погоде и океане от NOAA, NASA и Copernicus.…
Открыть детали .NC →Файл .HDF5 связан с HDF5, это файл категории misc.
Открыть детали .HDF5 →Качество и на что обратить внимание
- netCDF-4 построен непосредственно на HDF5 - если
ncdump -k yourfile.ncсообщаетnetCDF-4, вы можете переименовать файл в.hdf5и открыть его с помощью h5py или HDFView без какой-либо конвертации. - Классические файлы netCDF начинаются с байтов
CDF(hex43 44 46) и не являются HDF5 - для их преобразования требуетсяnccopyили перезапись через Python. - Обратное неверно: обычные файлы HDF5 не являются валидными netCDF, поэтому переименование
.hdf5в.ncне сработает без реструктуризации внутренней разметки в соответствии с конвенциями netCDF.
Часто задаваемые вопросы
Как узнать, является ли мой файл NC уже HDF5?
ncdump -k yourfile.nc; если команда вернет netCDF-4, значит файл внутри является HDF5. Вы также можете проверить, являются ли первые два байта 89 48 (сигнатура HDF5).Сможет ли h5py прочитать конвертированный файл напрямую?
nccopy файл становится валидным контейнером HDF5; имена переменных и данные сохраняются, хотя внутренняя структура следует соглашениям об именовании netCDF.Сохраняются ли метаданные при конвертации?
nccopy. При использовании h5py напрямую вы должны копировать атрибуты вручную, так как h5py не переносит метаданные netCDF автоматически.