NCL-Есть ли способ вычесть одну и ту же переменную, разные значения (тот же файл) из информации индекса?
У меня есть трехмерная переменная nc PP = (время, широта, долгота) накопленных осадков за весь год, и я хочу рассчитать дневные значения.
Я хочу сделать что-то в этом примере, но не могу найти никаких примеров.
Я попытался сделать цикл, в котором вычитание должно быть между значениями с [индекс +1] минус значение [индекс] (как показано ниже)
t = f->time(:) ;size = 365
pp = f->TOTALRAIN(:,:,:) ; time, lat, lon dimensions
do i = 0,dimsizes(t)-1
DailyPp = pp(i,:,:) - pp(i-1,:,:)
end do
но этот путь показывает ошибку.
Мне нужны ежедневные значения и только накопленные осадки в качестве входной информации, и я подумал, что такой цикл должен быть лучшим способом.
Как я могу сделать расчет из переменной???
Я работаю с ncl, но если у вас есть предложения cdo или nco, они приветствуются.
2 ответа
Вы можете сделать это с помощью двух команд оболочки NCO
команда ниже сдвигает записи на единицу
ncks -v TOTALRAIN --msa_usr_rdr -d время,1364-е время,364 in.nc shift.nc
теперь используйте ncbo, чтобы найти разницу
ncbo -v TOTALRAIN shift.nc in.nc diff.nc
теперь в файле netcdf diff должна быть указана ежедневная pp. Окончательная запись TOTALRAIN в этом файле будет равна нулю
...Генри
В cdo вы можете дезагрегировать накопленные переменные, используя
cdo deltat in.nc diff.nc
Это связано с этим вопросом , пожалуйста, обратитесь к ответам там для получения более подробной информации, включая вставку начального временного шага.