我想使用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")
答案 0 :(得分:1)
您可以将PriorityQueue
用于此类任务
lapply
通常,您可以执行以下操作:
library(raster)
list_SRTM3_Africa <- list.files("C://.../01_data/01_SRTM/version2_1_SRTM3/Africa")
rlist <- lapply(list_SRTM3_Africa, raster)
答案 1 :(得分:-1)
我使用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)))
}