nco - как удалить значения вырезки из определенной области

У меня есть файл netcdf такой:

dimensions:
    time = 8760 ;
    lon_lat = 35047 ;
    temperature = 8760 ;
variables:
    float temp(temperature, lon_lat) ;
        temp:units = "C" ;
    float time(time) ;
    float longitude(lon_lat) ;
        longitude:units = "degrees east" ;
    float latitude(lon_lat) ;
        latitude:units = "degrees north" ;

Netcdf охватывает все Соединенные Штаты. Что я хотел бы сделать с nco, так это удалить определенную область, скажем квадрат.

Таким образом, задавая определенные координаты для определенной области, я бы удалил "вырезать" эту область.

Тогда я бы получил netcdf для Штатов с тремя переменными, но без данных для этой конкретной области. Скажем, я бы получил Штаты с дырой.

Я пробовал это с Hyperslabs (http://nco.sourceforge.net/nco.html#hyp):

ncks -d lon,-106.,-102. -d lat, 20.,30. in.nc out.nc

Однако там сказано, что:

ncks: ERROR dimension longitude is not in input file

Верно, потому что размер равен (lon_lat). Есть ли способ сократить его по переменным?


person tom    schedule 20.04.2017    source источник
comment
Этот файл выглядит неправильно, почему temperature измерение? И почему там единственное пространственное измерение lat_lon? Скорее всего, файл должен быть трехмерным, time x lat x lon, и иметь temperature в качестве переменной, а не размер. После того, как вы выпрямите файл, вы можете использовать гиперплашки для извлечения прямоугольника, пересекающего lat и lon.   -  person N1B4    schedule 20.04.2017


Ответы (2)


У меня тот же вопрос, что и у N1B4, по поводу измерения temperature. Размер lat_lon, вероятно, указывает на неструктурированную сетку.

Попробуйте функцию вспомогательных координат NCO. Сначала добавьте эти standard_name атрибуты:

ncatted -a standard_name,latitude,o,c,latitude -a standard_name,longitude,o,c,longitude in.nc 

Затем используйте -X для гиперплазирования желаемой области, то есть всего, кроме дыры:

ncks -X 10,180,10,90 -X -180,0,-90,0 in.nc out.nc
person Charlie Zender    schedule 20.04.2017
comment
Это здорово, я понятия не имел об этих особенностях ncks! - person N1B4; 23.04.2017

вы можете установить область для отсутствующего значения netcdf в CDO, используя:

 cdo setclonlatbox,missing_vlaue,lon1,lon2,lat1,lat2 infile outfile

Это то, чего вы хотели достичь?

person Adrian Tompkins    schedule 27.03.2018