【问题标题】:NA handling in raster terrain function栅格地形函数中的 NA 处理
【发布时间】:2018-03-14 04:34:20
【问题描述】:

在使用 raster 包的地形函数计算高程栅格的坡度时,存在边界效应,即为具有一个或多个 NA 邻居的像元返回 NA。

library(raster)

elevation <- getData('alt', country='ITA')
x <- terrain(elevation, 'slope', neighbors = 8)
e <- elevation
e[!is.na(e)] <- 1
e[is.na(e)] <- 2
x[!is.na(x)] <- 1
x[is.na(x)] <- 2
y <- e-x
plot(y)

我正在寻找可能的方法(或替代功能/包)来覆盖此边界效果并根据可用邻居的数量计算所有非 NA 单元的斜率?

我是否认为这种效果适用于由于栅格范围而人为创建的边界(例如意大利北部与奥地利、瑞士断开连接...),在其他情况下边界是合法的(例如沿海单元格)。

na.rm = TRUE 传递给地形不会改变结果。

非常感谢!

【问题讨论】:

    标签: raster terrain


    【解决方案1】:

    这将是一个简单的解决方法:

    首先,下载取消屏蔽的高程数据(如果需要,您可以稍后屏蔽):

    elevation <- getData('alt', country='ITA',mask=F)
    

    现在您可以假设您的所有NA 高程都是海面/海洋表面,因此其值为0

    所以你可以将你的NAs 设置为 0:

    elevation[is.na(elevation)] <- 0
    

    这应该会消除由于NA 值引起的所有边框问题。

    【讨论】:

    • 确实如此。谢谢!
    • @JGMolinos 很高兴它有帮助。如果它回答了您的问题,请考虑接受答案作为解决方案。谢谢!
    猜你喜欢
    • 2019-04-22
    • 2015-09-27
    • 1970-01-01
    • 1970-01-01
    • 2013-04-22
    • 1970-01-01
    • 2019-06-28
    • 1970-01-01
    • 2020-06-27
    相关资源
    最近更新 更多