在R中,如何平均空间网格正方形上的空间点数据

2024-05-27

现在设法解决问题

我有一组大约 50,000 个点,它们具有坐标和一个与其关联的值。我希望能够将点放入网格中,对落在网格正方形中的所有点的关联值进行平均。所以我想最终得到一个对象来识别每个网格方块并给出网格方块内的平均值。

如果有帮助的话,我有空间点数据框和空间网格对象中的数据。

改进答案:我确实做了一些搜索,对问题的初始状态感到抱歉,我只是设法在自己的脑海中构建问题;之前没必要跟其他人沟通过...

这是示例数据,希望能更清楚地说明问题

##make some data
longi <- runif(100,0,10)
lati <- runif(100,0,10)
value <- runif(500,20,30)

##put in data frame then change to spatial data frame
df <- data.frame("lon"=longi,"lat"=lati,"val"=value)
coordinates(df) <- c("lon","lat")
proj4string(df) <- CRS("+proj=longlat")

##create a grid that bounds the data
grd <- GridTopology(cellcentre.offset=bbox(df)[,1],
cellsize=c(1,1),cells.dim=c(11,11))
sg <- SpatialGrid(grd)

然后我希望得到一个对象,尽管是一个向量/数据框/列表,它给我每个网格单元/正方形中的平均值以及识别它是哪个单元的某种方法。

Solution

##convert the grid into a polygon##
polys <- as.SpatialPolygons.GridTopology(grd) 
proj4string(polys) <- CRS("+proj=longlat")

##can now use the function over to select the correct points and average them
results <- rep(0, length(polys))

for(i in 1:length(polys)) {
  results[i] = mean(df$val[which(!is.na(over(x=df,y=polys[i])))])
}

我现在的问题是这是最好的方法还是有更有效的方法?


您的描述充其量是模糊的。请尝试提出更具体的答案,最好用代码说明您已经尝试过的内容。对点数据或单个栅格单元中的单个值进行平均是完全没有意义的。

我可以提供的答案的最佳猜测是使用 raster extract() 将栅格值分配给 sp 点对象,然后使用 tapply() 将值聚合到点中的分组值。您可以使用点的坐标来识别单元格位置,或者使用从提取返回的单元格编号(按照下面的示例)。

require(raster)
require(sp)

# Create example data
r <- raster(ncol=500, nrow=500)
  r[] <- runif(ncell(r))
    pts <- sampleRandom(r, 100, sp=TRUE)  

# Add a grouping value to points 
pts@data <- data.frame(ID=rownames(pts@data), group=c( rep(1,25),rep(2,25),
                       rep(3,25),rep(4,25)) )          

# Extract raster values and add to @data slot dataframe. Note, the "cells" 
#   attribute indicates the cell index in the raster. 
pts@data <- data.frame(pts@data, extract(r, pts, cellnumbers=TRUE))
  head(pts@data)

# Use tapply to cal group means  
tapply(pts@data$layer, pts@data$group, FUN=mean)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在R中,如何平均空间网格正方形上的空间点数据 的相关文章

  • 如何删除箱线图上的刻度线

    我试图从箱线图中删除 x 轴刻度线 但保留与刻度线关联的标签 这在基础 R 中可能吗 colors lt c lightskyblue3 gray78 gold1 wheat1 boxplot avgscore module data mi
  • 在 R 中向散点图添加线条

    如何向图表添加线条 我做了以下 dat lt data frame xvar 1 20 rnorm 20 sd 10 yvar 1 20 rnorm 20 sd 10 zvar 1 20 rnorm 20 sd 10 plot dat 1
  • 使用 purrr 迭代替换数据帧列中的字符串

    我想用purrr使用以下命令在数据框列上迭代运行多个字符串替换gsub 功能 这是示例数据框 df lt data frame Year 2019 Text c rep a aa 5 rep a bb 3 rep a cc 2 gt df
  • R 中的快速 QR 分解

    我有大量矩阵 需要对其执行 QR 分解并存储生成的 Q 矩阵 进行归一化 以便 R 矩阵在其对角线上具有正数 除了使用之外还有其他方法吗qr 功能 这是工作示例 system time Parameters for the matrix t
  • Dendextend:关于如何根据定义的组为树状图的标签着色

    我正在尝试使用一个名为 dendextend 的很棒的 R 包来绘制树状图并根据一组先前定义的组为其分支和标签着色 我已阅读您在 Stack Overflow 中的答案以及 dendextend vignette 的常见问题解答 但我仍然不
  • 在 R 中绘制 Likert 变量的堆积条形图

    假设我有一个如下所示的数据框 P Q1 Q2 1 1 4 1 2 2 3 4 3 1 1 4 其中的列告诉我哪个人相应地回答了问题 q1 q2 中的哪一个 这些问题需要按照 4 分李克特量表进行回答 例如 批准 表示 1 稍微批准 表示 2
  • 从命令行运行 R 代码 (Windows)

    我在名为 analysis r 的文件中有一些 R 代码 我希望能够从命令行 CMD 运行该文件中的代码 而无需通过 R 终端 并且我还希望能够传递参数并在我的代码中使用这些参数 例如就像下面的伪代码 C gt execute r scri
  • 使用 R 选择第一个非 NA 值

    df lt data frame ID c 1 1 1 2 3 3 3 test c NA 5 5 6 4 NA 7 3 NA 10 9 我想创建一个名为 value 的变量 它是每个单独 ID 测试的第一个非 NA 值 对于只有NA的个体
  • 将每列的值乘以 R 中另一个 data.frame 中的权重

    我有两个data frames df and weights 代码如下 df看起来像这样 id a b d EE f 1 this 0 23421153 0 02324956 0 5457353 0 73068586 0 5642554 2
  • ggplot2 geom_密度和geom_histogram在一个图中

    如何制作一个所有条形加起来为 1 的直方图 并在适合的上方添加一个密度层 set seed 1234 df lt data frame sex factor rep c F M each 200 weight round c rnorm 2
  • 朴素贝叶斯分类器仅基于先验概率做出决策

    我试图根据推文的情绪将推文分为三类 买入 持有 卖出 我正在使用 R 和包 e1071 我有两个数据框 一个训练集和一组需要预测情绪的新推文 训练集数据框 text sentiment this stock is a good buy Bu
  • 将数据框中重叠的范围合并到唯一的组中

    我有一个 n 行 3 的数据框 df lt data frame start c 178 400 983 1932 33653 end c 5025 5025 5535 6918 38197 group c 1 1 2 2 3 df sta
  • 将阴影区域添加到五分位数之间的直方图中

    All 我有一个包含 2 个直方图的图表 其中我还绘制了代表第 20 40 60 和 80 个百分位数的线条 下面的代码使用虚拟数据重现了类似的图表 data lt rbind data frame x rnorm 1000 0 1 g o
  • 相当于 min() 的 rowMeans()

    我在 R 邮件列表上多次看到这个问题 但仍然找不到满意的答案 假设我有一个矩阵m m lt matrix rnorm 10000000 ncol 10 我可以通过以下方式获得每行的平均值 system time rowMeans m use
  • 如何从 R keras 中的类似生成器的数据中评估()和预测()

    我有以下代码 数据集可以下载here https www dropbox com s qjt5o31oyqj10m8 data tar gz dl 0 or here https www kaggle com c dogs vs cats
  • 如何获得所有大于x且有位置的数字?

    V lt c 1 3 2 4 2 3 1 X lt 3 pos lt V V X pos is 3 3 我需要的是所有 3 个的位置 I need 2 and 6 哪些职位是3 in V Use which pos lt which V 3
  • 将不均匀的层次列表转换为数据框

    我认为还没有有人问过这个问题 但是有没有一种方法可以将具有多个级别和不均匀结构的列表的信息组合成 长 格式的数据帧 具体来说 library XML library plyr xml inning lt http gd2 mlb com c
  • R:使用 tidyverse 将 NA 替换为 df 中的其他变量

    我想使用 tidyverse 替换 df 中的 NA 值 我想要的值应该从其他列中计算出来 input ID X1 X2 X3 A 0 96 NA 0 97 B 1 00 NA 1 01 C 0 98 0 03 NA A 1 00 NA 1
  • 无法更改 RStudio 中的 R 版本

    我的 RStudio V 0 99 491 无法更改 R 版本 我以平常的方式行事Global Options gt R Version 然后它挂起并且不再工作或反应 R 运行良好的初始版本是R 3 1 0 我以前从未遇到过这样的问题 也许
  • 线性判别分析图

    如何将样本 ID 行号 作为标签添加到此 LDA 图中的每个点 library MASS ldaobject lt lda Species data iris plot ldaobject panel function x y points

随机推荐

  • VS Code 多行搜索和替换 HTML / XML 标签? [复制]

    这个问题在这里已经有答案了 如何搜索可能包含多个非空行的开始和结束标记
  • “forms.ContactForm 对象”没有属性“hidden_​​tag”

    我正在尝试使用 Flask 创建联系表单 但在渲染页面时不断收到此错误 forms ContactForm object has no attribute hidden tag 这是我的文件 联系方式 html extends layout
  • 猫鼬查找并删除

    我正在尝试删除满足查询的多个文档 但是 我需要这些文档的数据将它们存储在单独的集合中以实现撤消功能 我让它工作的唯一方法是使用多个查询 Data find query exec function err data Data remove q
  • 在 List ForEach() 中设置多个属性?

    给定一个类 class foo public string a public int b 0 然后是它们的通用列表 var list new List
  • 自动调整所有列的大小以适合内容

    我所有的搜索结果都是sizeColumnsToFit and autoSizeColumns这不是我想要的 我的网格有很多列 所以它水平滚动 这很好 但我无法提前知道一列中最宽的文本所需的最大空间是多少 因此希望网格自动调整所有列的大小以适
  • 在非 Angular 类中获取注入的依赖项

    我有当前的 和简化的 课程 export class NavigationItem constructor private router Router navigateTo this router navigate this id 我不想每
  • 使用 Visual Studio 2015 在防火墙后面使用 npm

    我尝试利用 Visual Studio 2015 中新的 npm 支持 但遇到了一些问题 我位于公司防火墙后面 我尝试从 package json 文件中添加 grunt 并且可以看到与 npm 相关的输出 npm http GET htt
  • 将文本保留在 TextView 中,drawableLeft 居中

    在我的应用程序中 我有一个标题栏 其中包含一个宽度为 fill parent 的文本视图 它具有特定的背景颜色和一些居中的文本 现在我想在标题栏的左侧添加一个drawable 所以我设置了drawableLeft 果然文本和图像都显示出来了
  • R 因子变量之间的相关性

    我想知道是否有一种简单的方法来识别与另一个变量 100 相关的特征 因子变量 因此 在示例中 该过程将匹配 颜色 和 车辆 以及 植物 和 高度 color lt c black black blue blue yellow vehicle
  • 了解 Oracle Apex_Application.G_Fnn 以及如何使用它

    我对 Oracle apex application gfnn 的工作原理以及它是否仅适用于 Oracle ApEx 中的标准 SQL 报告或仅适用于 SQL 可更新报告 即表格形式 感到非常困惑 基本上我试图使用这个示例 SQL 来实现以
  • 如何使用 `ProjectRef` 来引用 sbt 1.x 中的本地项目?

    其他答案中有很多含糊不清的内容 或者涉及到更旧版本的 sbt 即 0 12 x 但似乎没有人真正回答这个问题 鉴于我有一个文件夹 并且我已经运行 sbt new scala scala seed g8 name Scala Seed Pro
  • 错误:没有名为 psycopg2.extensions 的模块

    我正在尝试为我的 django 项目设置一个 PostgreSQL 数据库 由于对上一个问题的答复 我相信我现在已经完成了为 django 项目设置 postgreSQL 数据库时出现问题 https stackoverflow com q
  • 如何从 System.Enum 转换为基本整数?

    我想创建一个通用方法 用于将任何 System Enum 派生类型转换为其相应的整数值 无需进行强制转换 最好无需解析字符串 例如 我想要的是这样的 Trivial example not actually what I m doing c
  • 如何检索多个深度关系的节点 Neo4j Database Cypher?

    假设有一个简单的图如下 City name gotham lt LOCATED Tower name abc lt LOCATED Bank name CityBank City name gotham lt LOCATED Cinema
  • 我应该迁移到 ASP.NET MVC 吗?

    我刚刚听了 StackOverflow 团队的第 17 期播客 他们对ASP NET MVC http www asp net mvc 我决定去看看 但首先 我想确定这是值得的 我已经为几天后开始的项目创建了一个基础 Web 应用程序 供其
  • 安装pytorch时出现PackagesNotFoundError: cudatoolkit=11.1.0

    我从以下位置获取安装命令https pytorch org get started locally https pytorch org get started locally 当我运行命令时 conda install pytorch to
  • 嵌入式系统:使用汇编语言时的内存布局

    根据我的理解 嵌入式系统运行机器代码 有多种方法可以生成此代码 一种是用 C 等高级语言编写程序 然后使用编译器获得这样的代码 另一种方法是用汇编语言为该嵌入式系统编写指令 并使用汇编器将其转换为机器代码 现在我们得到了加载到系统并执行的机
  • 使用 or 运算符进行 Morphia 查询

    我想知道如何使用 or 运算符编写 Morphia mongodb 查询我这样写了 mongodb 查询 效果很好 db Inv find or sug id 2 grp id 2 但是当我尝试在吗啡中编写此内容时 我感到很困惑 以下查询是
  • 如何在 Linux/OS X 上温和地终止 Firefox 进程

    我正在使用 Firefox 进行一些自动化操作 尽管我可以从 shell 打开 Firefox 窗口 但我无法正确终止它 如果我kill火狐进程与kill 3 or kill 2当我下次打开新的 Firefox 窗口时 命令会询问我是否要在
  • 在R中,如何平均空间网格正方形上的空间点数据

    现在设法解决问题 我有一组大约 50 000 个点 它们具有坐标和一个与其关联的值 我希望能够将点放入网格中 对落在网格正方形中的所有点的关联值进行平均 所以我想最终得到一个对象来识别每个网格方块并给出网格方块内的平均值 如果有帮助的话 我