【问题标题】:intersect stacked images R相交堆叠图像 R
【发布时间】: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


    【解决方案1】:

    为了获得最大程度,我认为最好的选择是在感兴趣的区域周围绘制一个多边形/shapefile,然后裁剪图像预堆叠。或者计算应该显示大多数观察结果的非 na 单元格的数量,在您的情况下,以下应该有效:

    rNA <- sum(!is.na(LSWI_stack))    
    

    要访问单个点位置,您需要首先从坐标中创建一个空间对象,将其重新投影到 Landsat CRS,然后使用 raster::extract() 获取值。这篇博文详细介绍了大部分内容 https://biologyforfun.wordpress.com/2013/02/24/spatialdataintro/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-17
      • 1970-01-01
      • 2021-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-23
      • 2016-11-30
      相关资源
      最近更新 更多