#netcdf #nco
#netcdf #nco
Вопрос:
У меня есть файлы с ежемесячными данными только за сентябрь, октябрь и ноябрь (отфильтрованные на предыдущем шаге), и я хочу вычислить средние сезонные значения (по одному значению для каждого триместра каждого года). Я использую ncra --mro -d time,,,3,3
(среднее значение по измерению записи, от начала до конца, переход по всем записям дерева, и каждый подцикл равен 3 записям), но результатом является не среднее значение по месяцам дерева, а просто значение каждого сентября.
Я могу подтвердить, что, используя ncks -d time,,,3
для выбора только первый месяц каждого года (в моем случае сентябрь), и когда я читаю оба результата с помощью внешнего инструмента, они точно такие же.
Вот команды, которые я выполнил вместе с комментариями к результатам. Все файлы могут быть здесь.
# Try to make a seasonal average from the orignal file
# It gets :
# ncra: WARNING Subcycle argument is only supported for the record dimension on ncra and ncrcat operations
ncra --mro -d time,,,3,3 original.nc4 average.nc4
# Select only the first month of the season
ncks -d time,,,3 original.nc4 sampled.nc4
# When I read both files (using an external tool) I see that both files are identical. That is,
# the first command didn't actually compute an average, it just selected the first value
# of each season.
# Perhaps it's related to the warning about the record dimension.
# Ok, let's make sure time is a record dimension I guess?
ncks --mk_rec_dmn time original.nc4 record.nc4
# And now again try to compute seasonal average
ncra --mro -d time,,,3,3 record.nc4 record_average.nc4
# Now this new file is too small (77kb vs 928kb) and I cannot read it with any tool
ncks --version
ВОЗВРАТ:
NCO NetCDF Operators версия «4.6.3», созданная buildd на binet 23 декабря 2016 г. 22:34:40
версия ncks «4.6.3»
Ответ №1:
Ваши команды выглядят правильными для меня (хорошая работа!). Ниже приведена демонстрация того, что ваши команды работают с последней версией NCO. Вашей версии более 5 лет! Я могу только предположить, что в этой версии что-то было нарушено. Пожалуйста, обновите. Чарли
zender@firn:~$ ncrcat -O -v FSNT,area -p ${DATA}/ne30/raw 20180129.DECKv1b_piControl.ne30_oEC.edison.cam.h0.0001-09.nc 20180129.DECKv1b_piControl.ne30_oEC.edison.cam.h0.0001-10.nc 20180129.DECKv1b_piControl.ne30_oEC.edison.cam.h0.0001-11.nc 20180129.DECKv1b_piControl.ne30_oEC.edison.cam.h0.0002-09.nc 20180129.DECKv1b_piControl.ne30_oEC.edison.cam.h0.0002-10.nc 20180129.DECKv1b_piControl.ne30_oEC.edison.cam.h0.0002-11.nc ~/FSNT_000109_000211.nc
zender@firn:~$ ncks --cal -v time -C ~/FSNT_000109_000211.nc
netcdf FSNT_000109_000211 {
dimensions:
time = UNLIMITED ; // (6 currently)
variables:
double time(time) ;
time:long_name = "time" ;
time:units = "days since 0001-01-01 00:00:00" ;
time:calendar = "noleap" ;
time:bounds = "time_bnds" ;
time:cell_methods = "time: mean" ;
data:
time = "0001-10-01", "0001-11-01", "0001-12-01", "0002-10-01", "0002-11-01", "0002-12-01" ;
} // group /
zender@firn:~$ ncra -O --mro -d time,,,3,3 ~/FSNT_000109_000211.nc ~/FSNT_SON_000109_000211.nc
zender@firn:~$ ncwa -O -w area -a ncol ~/FSNT_000109_000211.nc ~/FSNT_glb_avg.nc
zender@firn:~$ ncwa -O -w area -a ncol ~/FSNT_SON_000109_000211.nc ~/FSNT_SON_glb_avg.nc
zender@firn:~$ ncks -H -v FSNT -C ~/FSNT_glb_avg.nc
netcdf FSNT_glb_avg {
dimensions:
time = UNLIMITED ; // (6 currently)
variables:
float FSNT(time) ;
data:
FSNT = 241.5002, 242.7969, 244.3921, 241.2065, 242.6262, 242.8979 ;
} // group /
zender@firn:~$ ncks -H -v FSNT -C ~/FSNT_SON_glb_avg.nc
netcdf FSNT_SON_glb_avg {
dimensions:
time = UNLIMITED ; // (2 currently)
variables:
float FSNT(time) ;
data:
FSNT = 242.8964, 242.2435 ;
} // group /
zender@firn:~$
Комментарии:
1. Я обновил версию (на моем локальном компьютере, поскольку у меня нет прав администратора на сервере, на котором я запускаю это), скомпилировав ее самостоятельно, и у меня возникли те же проблемы. Вы проверили это на файле, на который я ссылался в своем сообщении, просто чтобы убедиться, что это не проблема с плохими файлами?
2. Извините, у меня нет времени загружать и отлаживать то, что может происходить с вашими файлами. Надеюсь, с помощью приведенного выше руководства вы сможете упростить свои файлы (например, одна переменная, одна точка широты / широты), пока не станет очевидно, где / почему что-то идет не так.