代码之家  ›  专栏  ›  技术社区  ›  Rose

是否有GRASS GIS的R.neighbors范围的R等效值?

  •  0
  • Rose  · 技术社区  · 3 年前

    使用这些参数的QGIS GRASS r.neighbors函数中有几千个DEM地理坐标出错

    GRASS r.neighbors邻域操作=范围,邻域大小=3

    出现以下错误:-

    2021-04-23T15:51:51     WARNING    Duplicate parameter coordinates registered for alg v.net.visibility
    

    QGIS GRASS r.neighbors issue

    我想在R中复制这个操作。

    看起来唯一内置的focal()函数是mean()、var(),而不是range()?与GRASS不同,输出光栅的确切范围与输入光栅范围不匹配?

    在focal()函数或一般的r中,是否有与GRASS r.neighbors邻域操作=范围,邻域大小=3等效的矩阵表达式?

    R focal function reference

    0 回复  |  直到 3 年前
        1
  •  1
  •   Robert Hijmans    3 年前

    我假设“范围”是指焦点最小值和最大值之间的差异?你可以用(至少)两种方式计算

    library(terra)
    f <- system.file("ex/elev.tif", package="terra")
    r <- rast(f)
     
    xmn <- focal(r, 3, min)
    xmx <- focal(r, 3, max)
    rng <- xmx - xmn
    

    或者像这样

    x <- focal(r, 3, function(i) diff(range(i)))
    

    有NA的地方,结果略有不同。您可以使用 na.rm=TRUE .