首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R中的for循环中创建所有加载Raster的列表

在R中的for循环中创建所有加载Raster的列表
EN

Stack Overflow用户
提问于 2017-11-24 10:20:32
回答 2查看 1.5K关注 0票数 0

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

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

代码语言:javascript
复制
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个文件,我不能这样做:

代码语言:javascript
复制
raster_list_SRTM3_Africa <- c(S01E006, S01E007,..., S35E0253)

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

代码语言:javascript
复制
 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")
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-24 12:10:29

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

代码语言:javascript
复制
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)))
}
票数 0
EN

Stack Overflow用户

发布于 2017-11-24 19:27:11

您可以将lapply用于类似的任务。

代码语言:javascript
复制
library(raster)
list_SRTM3_Africa <- list.files("C://.../01_data/01_SRTM/version2_1_SRTM3/Africa")

rlist <- lapply(list_SRTM3_Africa, raster)

通常,您可以这样做:

代码语言:javascript
复制
x <- do.call(merge, rlist)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47471117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档