【问题标题】:Include polygon ID when extracting raster values to polygons in R将栅格值提取到 R 中的多边形时包括多边形 ID
【发布时间】:2016-02-24 18:30:21
【问题描述】:

我按照How do I extract raster values from polygon data then join into spatial data frame?(这很有帮助)创建了一个平均栅格值到多边形的矩阵(然后是数据框)。现在的问题是我想知道哪个多边形是哪个。我的 SpatialPolygonsDataFrame 在p$Block_ID 中有一个 ID 值。有没有办法在extract() 代码中实现这一点?

或者,extract() 函数是否按照输入顺序报告输出(这很有意义)?即p$Block_ID 的顺序将保留在输出中吗?我查看了文档,并不清楚一种或另一种方式。如果是这样,将 ID 列添加到 extract() 输出很容易。

这是我的通用代码供参考。注意注意可重现,因为我认为此时不需要它。其中 r 是栅格,p 在多边形中

extract(r, p, small = TRUE, fun = mean, na.rm = TRUE, df = TRUE, nl = 1)

想法?

【问题讨论】:

    标签: r


    【解决方案1】:

    值按顺序返回,正如人们在 R 中所期望的那样,并且如手册中所述 (?extract):返回值的顺序对应于对象 y 的顺序

    您可以这样做(来自?extract 的可重现示例)

    e <- extract(r, p)
    ee <- data.frame(ID=p$Block_ID, e)
    

    【讨论】:

      【解决方案2】:

      我无法让 R. Hijmans 回答为我工作。我发现这行得通。

      e = extract(r, p)
      e$ID = as.factor(e$ID)
      levels(e$ID) = levels(p$Block_ID)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-06-05
        • 1970-01-01
        • 1970-01-01
        • 2021-05-22
        • 2021-08-15
        • 2020-11-12
        • 2016-06-07
        相关资源
        最近更新 更多