2017-11-29 6 views
0

nc.data_1, nc.data_2 ... nc.data_n이라는 n 개의 파일이있는 경우 어떻게 모든 파일에서 동일한 변수를 가져 와서 저장할 수 있습니까? R의 단일 배열? (즉, (a) 시간을 얻고 (b) n 파일에서 [lon, lat, time] = [144, 91, 24] 치수의 강수량 데이터를 얻는다. 아래 코드는 지금까지 내가 해왔 던 것입니다.루프를 사용하여 여러 NetCDF 파일에서 단일 변수 가져 오기

데이터 경로 각각의 파일에서의 시간은 1 일마다 데이터 파일에 스토어 (다르기 때문에 시간 변수 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') 

는, I는 위도 및 경도와 같은 방법을 사용할 수 없다

cdo merge data_*.nc merge_file.nc 
cdo selvar,variable_name merge_file.nc variable.nc 
: 리눅스에서 그냥 처음 CDO를 사용할 수있는 경우)
+0

x가 원하는 파일 이름의 목록 인 곳에'raster :: stack (x)'또는'raster :: brick (x)'을 사용하지 않는 이유는 무엇입니까? 쌓아두기. 아마 벽돌이나 스택 (배열보다 공간 데이터에 더 낫다.)으로 유지할 것이지만 배열이 정말로 필요한 경우에는 as.array가 당신의 친구이다. – dww

+0

아래 해결 방법을 사용해 보셨습니까? 도움이 되었습니까? –

답변

0

가 아닌 경우 R 솔루션

하지만 (나는 당신이 다시 보통) 마지막에 간다 ".nc"확장으로 전면에 파일 이름을 쓴 있으리라 믿고있어

그러면 R에서 간단히 열어서 읽을 수 있습니다.

관련 문제