for循环以堆叠光栅图像?

时间:2020-07-07 23:32:09

标签: r stack geospatial raster

我正在尝试从名为目录的目录中打开58个文件

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

通过对for使用TryCatch循环来快速打开文件夹中的文件,我的目标是创建由所有58个栅格文件组成的栅格堆栈图像。我的循环一直运行到完成,但是无法生成图像。我遵循了类似于此post的示例,但无法弄清楚我的问题。有人可以让我知道我在想什么吗?我不确定如何为我的案件附加适当的,可复制的示例。

bigstack <- stack()

LOOP:

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)
}}

1 个答案:

答案 0 :(得分:0)

它不能直接回答您的问题,但是您是否尝试过只运行declare @column1 datetime2 =2020-07-10 13:49:51,611 declare @column2 varchar(50) ='qazwsxedcrfv' declare @column3 bigint =302316811 declare @column4 datetime =2020-07-10 13:49:51,611 declare @column5 varchar(50) ='abcdexfgh' insert into table_name (col1,col2,col3,col4,col5) values (@column1,@column2,@column3,@column4,@column5) ?我一直都是这样,而且一直都在工作。栅格应该具有相同的范围和分辨率。

/ Emilio