在 R 中获取每个多边形的多数像素值的区域统计?

2024-01-02

实际上,我尝试使用 SpatialPolygonsDataFrame 计算栅格的主要像素值。这是我发现的一些代码,可能会导致正确的方向:

library(raster)
# Create interger class raster
r <- raster(ncol=36, nrow=18)
r[] <- round(runif(ncell(r),1,10),digits=0)
r[]<-as.integer(r[])
# Create two polygons
cds1 <- rbind(c(-180,-20), c(-160,5), c(-60, 0), c(-160,-60), c(-180,-20))
cds2 <- rbind(c(80,0), c(100,60), c(120,0), c(120,-55), c(80,0))
polys <- SpatialPolygonsDataFrame(SpatialPolygons(list(Polygons(list(Polygon(cds1)), 1), 
Polygons(list(Polygon(cds2)),2))),data.frame(ID=c(1,2)))

# Extract raster values to polygons                             
( v <- extract(r, polys) )

# Get class counts for each polygon
v.counts <-lapply(v,table)

到目前为止,一切都很好,但我真的很难提取计数最高的列的列名称。

我尝试过类似的事情:

v.max<- lapply(v.counts,max)

但列信息会丢失。后:

v.max<- lapply(v.counts, max.col)

结果我只得到“1”。

如果有人能给我提示我做错了什么,我将不胜感激。还有另一种方法可以提取多边形中的主要像素值吗?


exactextractr https://github.com/isciences/exactextract包可以做到这一点。它计算区域统计数据的速度甚至比terra在某些情况下。查看比较here https://tmieno2.github.io/R-as-GIS-for-Economists/extract-speed.html

library(exactextractr)
exact_extract(r, polys, 'majority')

#> Warning in .exact_extract(x, sf::st_as_sf(y), ...): No CRS specified for
#> polygons; assuming they have the same CRS as the raster.
#> |======================================================================| 100%
#> [1] 4 2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 R 中获取每个多边形的多数像素值的区域统计? 的相关文章

随机推荐

  • 将派生类强制转换为基类

    这里发生什么类型的演员表 在B get class A public A a 0 int a class B public A public A get return this is this C style cast int main B
  • 使用不透明类型(Char 和 Long)

    我正在尝试导出算法的 Scala 实现以在 JavaScript 中使用 我在用着 JSExport 该算法适用于 ScalaChar and Long值被标记为opaque in the 互操作性指南 http www scala js
  • 我如何在 xcode 中获取数组?

    如何获取字典的值而不是循环 我知道如何使用以下方法获取单个值 NSString valueStr dict objectForKey Key2 我需要通过循环所有键来获取 我需要在字典中搜索一个值 因为看起来您正在尝试使用NS词典 http
  • 迁移合约时耗尽 Gas

    我看过其他 没油了 的帖子 但他们没有解决我的问题 我正在使用 ganache cli 开始 ganache cli account 0xce2ddf7d4509856c2b7256d002c004db6e34eeb19b37cee04f7
  • 如何确定实体框架是否正在等待连接池中的连接?

    我看到一些间歇性的速度减慢 sql 超时错误 我无法确定原因 我已经拼凑了一些线索 但我需要一些帮助来确定可能的后续步骤 问题 我们有一个表 其中包含 10 多万条记录 我们从 Web 应用程序运行异步计数 该表经常被写入 有时计数需要 2
  • 安装svn:重启apache后出错

    我这样创建了我的存储库 须藤 svnadmin 创建 svn 重新启动 apache 后出现此错误 第 16 行语法错误 etc apache2 mods enabled dav svn conf 这里不允许 DAV dav svn con
  • 我尝试从此 HTML 中提取价格 2 890 000K 和 地址 有 12 个相同的 div class list items content list items content 1 div class list items conten
  • 如何使 Ember.js 与 Grails 控制器名称配合?

    Grails 非常强大 可以让您使用一条语句将 Domain 对象转换为 JSON object as JSON 不幸的是 由于一些原因 这不足以与 Ember js 交互 如何让 Grails 与 Ember js 完美配合 好问题 自我
  • 像 epub/ebook 一样显示动态 html 内容,而不将 html 转换为 epub 格式?

    我想创建一个响应式 移动优化的阅读体验 类似于 epub 电子书阅读器 如 Kindle 应用程序或 iBooks 使用动态 html 作为源 想象一下一篇长文章或博客文章需要大量垂直滚动才能阅读 尤其是在小型移动设备上 我想做的是将长页面
  • seaborn clustermap:subplots_adjust 取消颜色条重新定位

    我正在尝试使用seaborn制作侧面带有颜色条的热图 但是 在我的实际应用程序案例中 我有很长的列名称需要轮换 这需要使用plt subplots adjust 否则标签不适合图像 plt setp g ax heatmap get xti
  • Netbeans“未执行任何测试”

    我有一个包含单元测试的 php 项目 我使用 Netbeans 进行开发 并希望在我的 IDE 中集成 phpunit 如果我从命令行运行 phpunit 它就可以工作 如果我按 Alt F6 在 Netbeans 中运行测试 则不会运行任
  • 在 Python 中转义 JavaScript 字符串

    我有一个 Python 脚本 它构建一些 JavaScript 以 JSON 信封的形式发送到浏览器 我想转义 JavaScript 字符串并用单引号分隔它们 我不能使用json dumps因为它使用双引号作为分隔符 就像 JSON 规范所
  • 如何通过 ajax 刷新由 JSF 填充的 javascript 变量?

    我想做以下事情 从其中选择一个项目h selectOneMenu 通过 ajax 使用新值更新支持 bean 使用新值运行 Javascript 函数 但在下面的代码中 alert backingBean derivedValue 仍然包含
  • golang mqtt 发布和订阅

    有谁知道我可以在哪里获得一些在无限循环中发布和订阅的示例 MQTT 客户端 Go golang 代码 我正在与在 MacO 上运行的 Mosquitto 代理进行消息传递 更详细地 从网络获取消息 主题 根据该消息计算一些内容 将计算结果发
  • 使用 github api 从拉取请求号获取拉取请求合并提交 sha

    我正在尝试使用 github api 通过 githubothttps github com iangreenleaf githubot https github com iangreenleaf githubot 从拉取请求编号获取拉取请
  • 在反应中创建表单的最佳方法是什么?

    我是反应初学者 我有以下代码 import React useState useEffect from react import Card Form Button from react bootstrap import Axios from
  • 张量流梯度 - 获取所有 nan 值

    我正在使用带有 anaconda 的 python 3 以及带有 eager eval 的tensorflow 1 12 我正在使用它为暹罗网络创建三元组损失函数 并且需要计算不同数据样本之间的距离 我创建了一个函数来创建距离计算 但无论我
  • docker-compose 用于分离模式

    我有以下 docker 命令来运行容器 docker run d name test v etc hadoop conf etc hadoop conf v usr lib python2 7 dist packages hdinsight
  • 带有布尔值的 java.lang.NullPointerException

    我根据另一个问题编写了一个非常简单的代码 如下所示 它给我一个错误 java lang NullPointerException 第 5 行和第 17 行 我不知道我做错了什么 public class Main public static
  • 在 R 中获取每个多边形的多数像素值的区域统计?

    实际上 我尝试使用 SpatialPolygonsDataFrame 计算栅格的主要像素值 这是我发现的一些代码 可能会导致正确的方向 library raster Create interger class raster r lt ras