[英]Getting single variable from multiple NetCDF files using loop in R
如果我有n個名為nc.data_1,nc.data_2 ... nc.data_n的文件,如何從所有文件中獲取相同的變量並將其存儲到R中的單個數組中? (即(a)獲取時間,然后(b)從n個文件中分別獲取維度為[lon,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相同的方法
不是R解決方案,但是如果在Linux中,您可以先使用CDO(我假設您將文件名寫回了文件的開頭,因為擴展名“ .nc”通常在結尾處):
cdo merge data_*.nc merge_file.nc
cdo selvar,variable_name merge_file.nc variable.nc
那么您只需打開並閱讀R中的后者即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.