2017-11-29 16 views
0

nc.data_1、nc.data_2 ... nc.data_nという名前のn個のファイルがある場合、すべてのファイルから同じ変数を取得してR? (すなわち、(a)時間を取得してから(b)それぞれ、nファイルから[lon、lat、time] = [144,91,24]の寸法を有する降水量データを得る。以下のコードは私がこれまで行ってきたことです。ループを使用して複数のNetCDFファイルから単一変数を取得するR

データパス:時間変数の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') 

各ファイルの時間(異なるので、私は、各ファイルストアを緯度及び経度として一日のデータを同じ方法を使用することはできません)

+0

raster :: stack(x) 'や' raster :: brick(x) 'だけではなく、xはあなたが望むファイル名のリストです積み重ねる。私はおそらくレンガやスタック(配列よりも空間データのほうがはるかに優れている)として保管していますが、実際には配列を必要とする場合は 'as.array'があなたの友人です。 – dww

+0

あなたは以下の解決策を試しましたか?それは役に立ちましたか? –

答えて

0

ないR・ソリューションが、Linuxにあなただけの(I)は拡張子「.NC」は、通常、最後に行くようにあなたが前後にファイル名を書いたと仮定している最初のCDOを使用することができる場合:

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

あなたは単にRを開いて読むことができます。

関連する問題