[英]for loop to stack raster images?
我正在嘗試從名為的目錄中打開 58 個文件
ncfiles <- list.files("~/Desktop/Summer 2020/Tropomi/Aerosol Height", full.names = T, pattern = "*.nc")
通過使用帶有TryCatch
的for
循環來快速打開文件夾中的文件,我的目標是創建一個由所有 58 個光柵文件組成的光柵堆棧圖像。 我的循環一直運行到完成,但我無法生成圖像。 我遵循了與這篇文章類似的示例,但無法弄清楚我的問題。 有人可以讓我知道我錯過了什么嗎? 我不確定如何為我的案例附加一個適當的、可重復的示例。
bigstack <- stack()
環形:
for (i in 1: length(ncfiles)){
GetMyImage <- tryCatch(
{
fname <-(ncfiles[i])
f <- nc_open(fname)
print(fname)
},
error=function(e) {
message('Caught Error')
print(e)
},
warning=function(w) {
message('Caught Warning')
print(w)
},
finally = {
message('All done')
}
)
if(inherits(errorCondition("ERROR :", next)))
{
ah <- ncvar_get(f, varid = "DETAILED_RESULTS/aerosol_optical_thickness")
lon <- ncvar_get(nc, varid = "PRODUCT/longitude")
lat <- ncvar_get(nc, varid = "PRODUCT/latitude")
nc_close(f)
s1 <- data.frame(as.vector(lon), as.vector(lat), as.vector(ah))
crsLatLon <- "+proj=longlat +datum=WGS84"
ex <- extent(c(-180,180,-90,90))
pmraster <- raster(ncol=360*10, nrow=180*10, crs=crsLatLon,ext=ex)
pmraster <- rasterize(s1[,1:2], pmraster, s1[,3], fun=mean, na.rm=T)
exHI <- extent(c(-180,-140,10,30))
levelplot(crop(pmraster,exHI))
bigstack <- stack(bigstack, pmraster)
}}
它沒有直接回答您的問題,但是您是否嘗試過僅運行stack(ncfiles)
? 我一直這樣做並且一直在工作。 不過,柵格應該具有相同的范圍和分辨率。
/埃米利奧
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.