R 或 CDO 中几个 netcdf 层之间随时间的每日时间步长插值

Daily time steps interpolation between several netcdf layers over time in R or CDO

我对只有一个时间层的空间变量(假设 var_A_1985.nc、var_A_2000.nc 和 var_A_2010.nc)随时间进行了多次观察。是否可以通过对这些值进行线性插值来有效地重建从 1985 年 1 月 1 日到 2010 年 1 月 1 日的每日值?

我目前探索了两个选项:

类似于:

library(raster)
library(ncdf4)
setwd(mypath)

var_A_1985 <- raster("var_A_1985.nc")
var_A_2000 <- raster("var_A_2000.nc")

var_A_brick <- brick(var_A_1985, var_A_2000)
brick_2<- brick(lapply(1:n_days, function(x) raster::raster(matrix(NA, nrow(var_A_1985), ncol(var_A_1985)))) #with n_days representing the number of days between 01/01/1985 and 01/01/2000
extremes<- c(1, n_days)

for (i in 1:2) {
    brick_2[[extremes[i]]]=var_A_brick[[1]]
}
var_A_brick_filled <- approxNA(brick_2, method = 'linear')
#and then write this the new netcdf with daily values 

第二种方法确实有效,但需要很长时间。有没有更有效的方法来做到这一点?

您可以按如下方式使用 CDO 执行此操作:

cdo -inttime,1985-01-01,12:00:00,1day -mergetime var*.nc outfile

当然要调整开始时间。