Сильно зависит от того, какие инструменты вы хотите использовать. Это очень тривиальная задача с большинством языков программирования («Python/R/...»), если вы хотите использовать инструмент командной строки, вы можете посмотреть NCO и особенно его команду ncks
(NetCDF Kitchen Sink).
Например, если у меня есть NetCDF файл (выход ncdump -h
)
netcdf u.xz {
dimensions:
xh = 256 ;
y = 1 ;
z = 160 ;
time = UNLIMITED ; // (481 currently)
variables:
float time(time) ;
string time:units = "Seconds since start of experiment" ;
float xh(xh) ;
float y(y) ;
float z(z) ;
float u(time, z, xh, y) ;
}
можно извлечь, например, первая запись времени с помощью:
ncks -d time,0,0 u.xz.nc test.nc
Или что-то ближе к вашему вопросу, выбрать первую запись времени и разрезать пространственные размеры:
ncks -d time,0,0 -d xh,0,5 -d z,0,5 u.xz.nc test.nc
Каждый раз, когда управляемый файл NetCDF записывается в новый файл. Вы можете оставить последний аргумент test.nc
, чтобы вывести вывод на экран или просто выгрузить вывод test.nc
с помощью ncdump
.
Дорогой Чарли, я знаю этого метода , Я хочу, чтобы я хотел использовать ncdump, а затем визуализировать значения в запрошенном регионе, не создавая файл out.nc. –
Я не уверен, что вы подразумеваете под визуализацией. В отличие от ncdump, ncks выведет гиперслот значений на экран в формате CDL (без генерации файла .nc), если вы передадите ему ключ -cdl: ncks --cdl -d time, 0 -d rlat, 0,5 - d rlon, 0,5 in.nc –