【问题标题】:How to get contour lines around the grids in R-raster?如何在 R-raster 中获取网格周围的等高线?
【发布时间】:2015-03-04 16:05:44
【问题描述】:

在 R 中有一个栅格,我如何在具有某些值(或由一些面具)?

下面的例子展示了如何获得值为 0.6 的区域周围的等高线:如何做同样的事情,但线条跟随网格的边界? 该函数应返回要添加到绘图的对象(作为SpatialLinesDataFramerasterToContour),并且相邻的网格应包含在一条等高线中(即,应仅绘制多边形的外边界)。我找不到rasterToPolygons 的解决方案(请参阅here 以了解视觉方面,但在这里对我没有帮助)。

set.seed(2)
r <- raster(nrow=10, ncol=10)
r[] <- runif(ncell(r))
r[r>0.6] <- 0.6
rc <- rasterToContour(r, levels=c(0.6))
plot(r)
plot(rc, add=TRUE)

【问题讨论】:

    标签: r r-raster


    【解决方案1】:

    我会使用clump()rasterToPolygons() 的组合:

    library(raster)
    library(rgeos)  ## For dissolve = TRUE in rasterToPolygons()
    
    ## Recreate your data
    set.seed(2)
    r <- raster(nrow = 10, ncol = 10)
    r[] <- runif(ncell(r))   
    plot(r)
    
    ## Compute and then plot polygons surrounding cells with values greater than 0.6
    SP <- rasterToPolygons(clump(r > 0.6), dissolve = TRUE)
    plot(SP, add = TRUE)
    

    【讨论】:

    • 感谢@Josh O'Brien,工作得很好。如果对其他人有用:我最初的尝试实际上可能失败了,因为我在一个非常繁重的 R 会话中工作,加载了许多包(包括用于空间分析);使用rasterToPolygonsdissolve=TRUE 时,我没有收到明确的错误消息。在新的 R 会话下,出现了一条明确的错误消息,导致我重新安装并重新加载 rgeos 包,rasterToPolygons 的效果要好得多 - 包括上面的好解决方案。
    猜你喜欢
    • 1970-01-01
    • 2021-08-07
    • 1970-01-01
    • 2023-02-04
    • 2020-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-06
    相关资源
    最近更新 更多