簡體   English   中英

for循環堆疊光柵圖像?

[英]for loop to stack raster images?

我正在嘗試從名為的目錄中打開 58 個文件

ncfiles <- list.files("~/Desktop/Summer 2020/Tropomi/Aerosol Height", full.names = T, pattern = "*.nc")

通過使用帶有TryCatchfor循環來快速打開文件夾中的文件,我的目標是創建一個由所有 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM