0

各ファイルに時間セクションのデータが含まれる 5 つの netcdf ファイルがあります。各セルのタイムスパン全体の 98 パーセンタイルを個別に計算したいと考えています。netcdf ファイルの累積ファイル サイズは約 250 MB です。

私のアプローチはこれです:

library(raster)

  fileType="\\.nc$"
  filenameList <- list.files(path=getwd(), pattern=fileType, full.names=F, recursive=FALSE)
  #rasterStack for all layers
  rasterStack <- stack()

  #stack all data
  for(i in 1:length(filenameList)){

    filename <- filenameList[i]
    stack.temp<-stack(filename)
    rasterStack<-stack(rasterStack, stack.temp)

  }

  #calculate raster containing the 98th percentiles
  result <- calc(rasterStack,  fun = function(x) {quantile(x,probs = .98,na.rm=TRUE)} )

ただし、次のエラーが表示されます。

Error in ncdf4::nc_close(x@file@con) : 
  no slot of name "con" for this object of class ".RasterFile"

私のコードのスタック セクションは動作します。クラッシュは calc 関数の実行中に発生します。これがどこから来るのか、何か考えがありますか? おそらくデータが保存されている場所(メモリ/ディスク)の問題ですか?

4

2 に答える 2

0

おそらくこれは、RasterStack を作成する奇妙な方法に関連しています。あなたは単に行う必要があります:

  filenames <- list.files(pattern="\\.nc$")
  rasterStack <- stack(filenames)
于 2015-05-27T15:57:58.923 に答える