繁体   English   中英

在R中的for循环中创建所有已加载栅格的列表

[英]Create a list of all loaded Rasters in a for loop in R

我想使用rgdal中的mosaic_rasters函数合并3252 .hgt SRTM栅格,因此我需要所有栅格文件的列表。

我开始使用以下for循环将所有栅格文件加载到我的全局环境中:

list_SRTM3_Africa <- list.files("C://.../01_data/01_SRTM/version2_1_SRTM3/Africa")

for(i in list_SRTM3_Africa) { 
  assign(unlist(strsplit(i, "[.]"))[1], raster(i))
  }

但不幸的是,我无法弄清楚如何从已加载的网格创建列表。

而且我不能为所有3252个文件这样做:

raster_list_SRTM3_Africa <- c(S01E006, S01E007,..., S35E0253)

然后创建一个大的空Raster女巫,我想用mosaic_rasters命令填充。

 template <- raster(extent_Africa_canvas)
    projection(template) <- coord_ref_Africa_canvas
    writeRaster(template, file="SRTM3_Africa.tif", format="GTiff")

mosaic_rasters(gdalfile=raster(raster_list_SRTM3_Africa),dst_dataset="SRTM3_Africa.tif",of="GTiff", output_Raster = T)
gdalinfo("SRTM3_Africa.tif")

您可以将lapply用于lapply任务

library(raster)
list_SRTM3_Africa <- list.files("C://.../01_data/01_SRTM/version2_1_SRTM3/Africa")

rlist <- lapply(list_SRTM3_Africa, raster)

通常,您可以执行以下操作:

x <- do.call(merge, rlist)

我已经使用append命令完成了它。

raster_list <- c() # initialise the list of rasters
for(i in list_SRTM3_Africa) { 
  raster_list <- append(raster_list,  assign(unlist(strsplit(i, "[.]"))[1], raster(i)))
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM