0

如果我有 n 个名为 nc.data_1、nc.data_2... nc.data_n 的文件,如何从所有文件中获取相同的变量并将它们存储到 R 中的单个数组中?(即(a)获取时间然后(b)分别从n个文件中获取具有维度的降水数据:[l​​on, lat, time] = [144, 91, 24])。下面的代码是我到目前为止所做的。

数据路径:https ://www.dropbox.com/sh/m8u3xwm5za7m7mc/AACHq2AjeZaxHm1sEhaOJ_g2a/2011?dl=0

## Call library functions for future plot
library(abind)
library(fields)
library(maps)
library(ncdf4)

## create an empty list that saves the incoming files
nc.data<-list()
list.filenames<-list.files(pattern = ".nc")

## Read in all data files using a loop
for(i in 1:length(list.filenames)){
nc.data[[i]]<-nc_open(list.filenames[[i]])
}

## Getting lat and lon from a single file since they're the same for all files
lat_2x25 <- ncvar_get(nc.data[[1]], 'lat')
lon_2x25 <- ncvar_get(nc.data[[1]], 'lon')

对于时间变量,我不能使用与lat和lon相同的方法,因为每个文件中的时间不同(每个文件存储一天的数据)

4

1 回答 1

0

不是 R 解决方案,但如果在 linux 中您可以先使用 CDO(我假设您将文件名写回前面,因为扩展名“.nc”通常放在最后):

cdo merge data_*.nc merge_file.nc
cdo selvar,variable_name merge_file.nc variable.nc

然后你可以简单地在 R 中打开并阅读后者。

于 2017-11-30T02:54:03.947 回答