簡體   English   中英

使用R中的循環從多個NetCDF文件中獲取單個變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM