У меня есть трехмерная переменная nc PP = (время, широта, долгота) накопленных осадков за весь год, и я хочу рассчитать ежедневные значения.
Я хочу сделать что-то по ссылке в примере, но не смог найти примеров.
Я попытался сделать цикл, в котором вычитание должно быть между значениями с [index+1] минус значение [index] (как показано ниже)
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, они приветствуются.





вы можете сделать это с помощью двух команд оболочки NCO
приведенная ниже команда сдвигает записи вверх на один
ncks -v ОБЩИЙ ДОЖДЬ --msa_usr_rdr -d время,1 364 -d время,364 дюйма.nc shift.nc
теперь используйте ncbo, чтобы найти разницу
ncbo -v TOTALRAIN shift.nc in.nc diff.nc
теперь разница файлов netcdf должна содержать ваш ежедневный pp Последняя запись TOTALRAIN в этом файле будет нулевой.
...Генри
В cdo вы можете дезагрегировать накопленные переменные, используя
cdo deltat in.nc diff.nc
Это связано с этот вопрос, пожалуйста, обратитесь к ответам там для получения более подробной информации, включая вставку начального временного шага.