【问题标题】:what operations is there to crop a raster to the extent of another raster?有什么操作可以将一个栅格裁剪到另一个栅格的范围?
【发布时间】:2021-11-20 04:16:48
【问题描述】:

在再次重新分类之前,我必须将 3 个栅格相乘以进行重新分类,但在进行相乘之前,我必须使 3 个栅格的范围相同。距离栅格的 xmax 存在差异

ext(dem)
ext(slope)
ext(distance)

ext(dem)
SpatExtent : 1089831.75, 1721631.75, 4748091, 5516991 (xmin, xmax, ymin, ymax)
ext(slope)
SpatExtent : 1089831.75, 1721631.75, 4748091, 5516991 (xmin, xmax, ymin, ymax)
ext(distance)
SpatExtent : 1089831.75, 1721031.75, 4748091, 5516991 (xmin, xmax, ymin, ymax)

我在其他问题上尝试了以下答案,但仍然失败,我尝试了以下方法,将裁剪到坡度和距离 dem 的范围

distance <- crop(slope, distance)
distance <- crop(dem, distance)

但在运行它并再次检查分机后,它仍然无法修复它。我检查了预测,它们也都一样。

【问题讨论】:

  • 您可以使用 raster::extent() 简单地设置任何栅格的范围。它应该像这样raster::extent(slope) &lt;- c(xmin=1089831.75, xmax=1721031.75, ymin=4748091, ymax=5516991)

标签: r raster crop extent


【解决方案1】:

您没有show(dem)show(distance),因此很难给出具体答案。我们只能看到distance 的 x 范围比其他栅格的 x 范围小 600 (m)。将来请通过在代码中创建 SpatRasters 来提供一个可重现的示例(请参阅as.character(dem) 开始),就像这样

 library(terra)
 dem <- rast(ncol=, nrow=, xmin=, ....)

crop 只能删除 整个 行和列(不能有栅格单元的一部分)。我怀疑您期望的程度不符合该要求。但它可能会让你更接近。如果非常接近(即差异远小于空间分辨率,且行数和列数匹配),则可以这样做

ext(distance) <- ext(slope)

否则,考虑resample

distance2 <- resample(distance, slope)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-06
    • 1970-01-01
    • 1970-01-01
    • 2018-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多