【发布时间】:2017-03-10 01:35:07
【问题描述】:
我下载了 50 个 landsat 8 图像并将它们提取到子文件夹 Landsat8
通过遍历包含图像的文件夹列表,我提取了 2 个波段来计算植被指数 (LSWI),并创建了一个名为 calcIndex 的函数:
for(scene in folders){
NIR <- raster(b5.tif)
SWIR1 <- raster(b6.tif)
LSWI <- overlay(x=nir, y=SWIR1, fun=calcIndex)
writeraster(LSWI, filename=LSWIxxx.tif, format='GTiff', datatype = 'FLT4s')
}
这一切都有效,例如,我可以访问所有 LSWI.tiff 文件并将它们导入 ArcGIS。我的问题与堆叠(或砖块)它们并使用堆叠的文件进行分析有关。
我选择了一个列表中的所有 LSWI.tif 文件并将该列表堆叠起来:
LSWI_list <- list.files(full.names = TRUE, recursive = TRUE, pattern = "LSWI.tif$")
LSWI_stack <- stack(LSWI_list, quick = TRUE)
我在这里使用了 quick = TRUE 来确保尽管图像的范围不同,但堆叠仍然有效。现在我想使用 intersect 来找到所有图像的最大公共区域并在结果范围内裁剪所有图像,有人可以向我解释如何在大量堆叠的图像列表上使用 intersect 函数吗? 例如,我想将所有图像加起来,我认为只有在所有范围都相等时才有效。
除此之外,我想访问一个特定位置(坐标系 WGS84,自动分配以米为单位的单位)并从该特定位置的图像中导出 所有 LSWI 值。
希望我清楚地表达了我的挑战。 谢谢!
【问题讨论】:
标签: r list stack raster intersect