120ラスタファイルのラスタスタックを作成しようとしています。私はこれらのファイルをループ内で生成し、生成されたラスタをラスタスタックに追加しています。コードは次のようになります。スタック機能は最後のラスタファイルをスタックするだけです
library(raster)
stack_P_95 <- stack()
for (i in startyear:endyear)
{
file <- paste(indir,"\\prec_",i,".nc",sep="")
command <- paste("cdo timmin ",file," ",workdir,"min.nc",sep="")
system(command)
command <- paste("cdo timmax ",file," ",workdir,"max.nc",sep="")
system(command)
command <- paste("cdo timpctl,95 ",file," ",workdir,"min.nc
",workdir,"max.nc ",workdir,"P95_",i,".nc",sep="")
system(command)
grid <- raster(paste(workdir,"P95_",i,".nc",sep=""))
stack_P_95 <- stack(stack_P_95,grid)
}
crs(stack_P_95) <- "+proj=utm +zone=45 +ellps=WGS84 +datum=WGS84 +units=m
+no_defs"
writeRaster(stack_P_95,paste(outdir,model,"_P95.nc",sep=""),format="CDF",overwrite=T)
しかし、私は作成していますちょうど最後のラスター繰り返しn個を持ってstack_P_95(endyear -startyear)回。
この問題の原因は何ですか? このプロセス中にエラーまたは警告は生成されません。
私は私の入力ファイルと、最終的な出力とのリンクを追加しました: Input files
再現可能な例を追加できますか?例えば、 'base'に' addLayer'という関数はありません。R. – drmariod
私のために働きます。あなたのデータファイルがすべて同じではないと確信していますか? – Spacedman
現在のディレクトリに年番号のグリッドを含むラスタファイルのテストセットを作成するコードは次のとおりです: 'r = raster(); for(i:2001:2004){r [] = i; writeRaster(r、paste0 #あなたのファイルを上書きするかもしれない#コードを実行すると、レイヤーに4つの年の値を持つ4層スタックが得られます。それは私のために働く。 – Spacedman