如何更正文件中的行数以允许显示光栅图像?

How may I correct the number of rows in my files to allow my raster image to be displayed?

在我尝试将多个光栅图像堆叠在一起时,我标识了我的目标文件:

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

创建空栅格:

bigstack <- stack()

构造一个for循环来读取文件夹中的文件并堆叠光栅:

for (i in 1: length(ncfiles)){
  fname <-(ncfiles[i])
  f <- nc_open(fname)
  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)
  print("test")
}

我在仅 1 次迭代后就遇到了这条错误消息:

[1] "test"
Error in data.frame(as.vector(lon), as.vector(lat), as.vector(ah)) : 
  arguments imply differing number of rows: 1428672, 1301440

定义每个文件的行数是否相同的最小阻力路径?如果是这样,我该如何纠正这个错误?提前谢谢你。

你需要弄清楚这里发生了什么:

s1 <- cbind(as.vector(lon), as.vector(lat), as.vector(ah))

lonlatah的长度是多少;为什么它们不同?有些地方不匹配,所以你做错了什么,可能是非常错误的。

编辑 您正在组合来自不同文件(fnc)的数据。现固定在下方

pmraster <- raster(res=0.1, ext=extent(c(-180,-140,10,30)))  
biglist <- list()
for (i in 1: length(ncfiles)){
    print(i); flush.console()
    f <- nc_open(ncfiles[i])
    ah <- ncvar_get(f, varid = "DETAILED_RESULTS/aerosol_optical_thickness")
    lon <- ncvar_get(f, varid = "PRODUCT/longitude")
    lat <- ncvar_get(f, varid = "PRODUCT/latitude")
    nc_close(f)
    s1 <- cbind(as.vector(lon), as.vector(lat), as.vector(ah))
    biglist[[i]]  <- rasterize(s1[,1:2], pmraster, s1[,3], fun=mean, na.rm=T)
}

s <- stack(biglist)