我正在嘗試創建120個光柵文件的光柵堆棧。我在循環內生成這些文件,並將生成的柵格添加到rasterstack。代碼如下:堆棧函數僅堆棧最後一個光柵文件
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'的函數。 – drmariod
適用於我。你確定你的數據文件不完全相同嗎? – Spacedman
下面的代碼用於創建當前目錄中包含年份數字網格的光柵文件測試集:'r = raster(); for(i in 2001:2004){r [] = i; writeRaster(r,paste0 「temp _」,i,「。nc」))}'#WARNING可以覆蓋你的文件#這樣做,然後運行你的代碼,我會得到一個4層堆棧,其中包含四層數值。即它適用於我。 – Spacedman