Более

Как сделать netcdf с подгруппами меньше?


Я пытаюсь написать тест для кода, который работает с данными глобальной циркуляции океана hycom netcdf. Исходный файл 2 субданных:

gdalinfo hycom_glb_911_2015110200_t000_uv3z.nc | grep _NAME SUBDATASET_1_NAME = NETCDF: "hycom_glb_911_2015110200_t000_uv3z.nc": water_u SUBDATASET_2_NAME = NETCDF: "hycom_glb_911_2015110200_t000_uv3z.nc": water_v

С 40 полосами глубины:

gdalinfo NETCDF: hycom_glb_911_2015110200_t000_uv3z.nc: water_u | grep '^ Band' | head -3 Band 1 Block = 4500x1 Type = Int16, ColorInterp = Undefined Band 2 Block = 4500x1 Type = Int16, ColorInterp = Undefined Band 3 Block = 4500x1 Type = Int16, ColorInterp = Undefined

У меня есть некоторый код, написанный для таких вещей, как вычисление скорости в м / с от UV и создание геотигмента и т. Д. Исходные файлы слишком велики для использования в юнит-тестах. Есть ли простой способ с gdal, nco или? сохранить структуру и метаданные, но создать файл гораздо меньшего размера? Я готов отбросить все, кроме первых двух полос, и записать постоянное значение в каждую полосу + включить сжатие сдува.

Пробуем с GDAL:

gdal_translate --version # At head -> r31584 GDAL 2.1.0dev, выпущенный в 2015/99/99 г. gdal_translate hycom_glb_911_2015110200_t000_uv3z.nc hycom_glb_911_2015110200_t000_uv3z-trycdafnc -file Пожалуйста, выберите один из них для чтения.

Оригиналы довольно велики для тестов:

wget ftp://ftp.hycom.org/datasets/GLBu0.08/expt_91.1/data/hindcasts/2015/hycom_glb_911_2015110200_t000_uv3z.nc ls -lh hycom_glb_911_2015110200_t000_uv3z.rnc -rw группа 1.4 19 ноя, 09:13 hycom_glb_911_2015110200_t000_uv3z.nc

Подробная информация об исходном файле netcdf:

ncdump -h hycom_glb_911_2015110200_t000_uv3z.nc netcdf hycom_glb_911_2015110200_t000_uv3z {размеры: lat = 2001; lon = 4500; глубина = 40; время = НЕОГРАНИЧЕННО; // (сейчас 1) переменные: double time (time); время: long_name = "Срок действия"; time: units = "часы с 00:00:00 01.01.2000"; время: time_origin = "2000-01-01 00:00:00"; время: календарь = "грегорианский"; время: ось = "Т"; время: NAVO_code = 13; двойной тау (время); тау: long_name = "Тау"; tau: units = "часы с момента анализа"; tau: time_origin = "2015-11-02 00:00:00"; тау: NAVO_code = 56; двойная глубина (глубина); глубина: long_name = "Глубина"; глубина: standard_name = "глубина"; глубина: единицы = "м"; глубина: положительный = "вниз"; глубина: ось = "Z"; глубина: NAVO_code = 5; двойной лат (лат); lat: long_name = "Широта"; широта: standard_name = "широта"; lat: units = "северные градусы"; широта: point_spacing = "даже"; широта: ось = "Y"; широта: NAVO_code = 1; двойной лон (лон); lon: long_name = "Долгота"; lon: standard_name = "долгота"; долг: единицы = "градусы_восток"; lon: modulo = "360 градусов"; lon: axis = "X"; lon: NAVO_code = 2; короткое water_u (время, глубина, широта, долгота); water_u: long_name = "Скорость воды в восточном направлении"; water_u: standard_name = "eastward_sea_water_velocity"; water_u: units = "м / с"; water_u: _FillValue = -30000s; water_u: missing_value = -30000 с; water_u: scale_factor = 0.001f; water_u: add_offset = 0.f; water_u: NAVO_code = 17; short water_v (время, глубина, широта, долгота); water_v: long_name = "Скорость воды в северном направлении"; water_v: standard_name = "northward_sea_water_velocity"; water_v: units = "м / с"; water_v: _FillValue = -30000s; water_v: missing_value = -30000 с; water_v: scale_factor = 0.001f; water_v: add_offset = 0.f; water_v: NAVO_code = 18; // глобальные атрибуты:: classification_level = "UNCLASSIFIED"; : distribution_statement = "Одобрено для публичного выпуска. Распространение неограничено." ; : downgrade_date = "не применимо"; : classification_authority = "не применимо"; : заведение = "Морское океанографическое управление"; : source = "Архивный файл HYCOM"; : history = "archv2ncdf3z"; : field_type = "мгновенно"; : Conventions = "CF-1.0 NAVO_netcdf_v1.0";

Я бы использовал NCO NCO:

ncks -v water_u, water_v -d, глубина, 1,2,1 hycom_glb_911_2015110200_t000_uv3z.nc out.nc

с «глубиной» независимо от размера глубины / диапазона.


Смотреть видео: The Beauty of NetCDF (October 2021).