在R中提取形状文件对象的质心?

2024-04-11

我有一个形状文件,上传到以下路径:

https://drive.google.com/open?id=0B1ITb_7lHh1EUFVfVWc4ekRfSnc https://drive.google.com/open?id=0B1ITb_7lHh1EUFVfVWc4ekRfSnc

我使用“shapefiles”包中的“read.shapefiles”函数导入数据:

landuse<- read.shapefile("landuse")

我现在需要提取土地利用对象中所有形状的纬度/经度质心并将其添加到 landuse$dbf 数据框中

我尝试了两件事:

lu_df<-coordinates(landuse)
lu_df<-SpatialPoints(landuse)

两者都给了我以下错误:

Error in coordinates(as.data.frame(obj)) : 
  error in evaluating the argument 'obj' in selecting a method for function 'coordinates': Error in data.frame(record = 1L, content.length = 80L, shape.type = 5L,  : 
  arguments imply differing number of rows: 1, 4, 7

我不确定如何继续。


首先,我建议使用rgdal空间数据包。这readOGR and writeOGR函数提供了很好的 Shapefile 处理(如投影的输入和输出等)。

UPDATE: 由于这不适用于@Shaz(请参阅评论中的错误),maptools功能readShapePoly()被利用了。另请参阅这个帖子 https://stackoverflow.com/a/36674077/3250126.

针对您的问题:rgeos包提供了一个函数gCentroid()它计算多边形的质心。解决方案看起来像这样:

setwd("/path/to/your/shapefile/")

library(maptools)
library(rgeos)
landuse <- readShapePoly("landuse") 

centr <- gCentroid(landuse, byid = TRUE)

# create SpatialPointsDataFrame to export via writeOGR
# positive side effect: All data from landuse@data joined to centr@data
centr <- SpatialPointsDataFrame(centr, data= landuse@data) 

writeOGR(centr, ".", "landuse_centroids", driver = "ESRI Shapefile")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在R中提取形状文件对象的质心? 的相关文章

  • 访问 R 工作区中的数据[重复]

    这个问题在这里已经有答案了 我是自学 R 的 可能有一些非常基本的东西我可能不熟悉 如果是这样我道歉 我正在尝试访问外部来源提供给我的数据 它作为一个工作空间出现 我的流程如下 gt ls 1 2003OHT HR gt attach 20
  • R闪亮:使用闪亮的JS从数据表中获取信息

    我想读出所有列名称以及它们在数据表中显示的顺序 由于不同的原因 我无法使用 stateSave 等选项 我对 JS 没有什么把握 但我确信用它可以完成 所以我需要你帮助我 我尝试过类似的代码片段 datatable data callbac
  • 在`rmarkdown`中,如何在句子中添加图标?

    In rmarkdown 如何在句子中添加图标 例如如下 如何添加markdown icon单词 Markdown 和 is 之间 有一个很好的 R 包 可以轻松下载 RMarkdown 文档并将图标添加到其中 icons https gi
  • 删除缺失的数据值

    我删除了原始帖子 以便能够发布更大版本的数据集 实际上总共有 418 行 这是我正在进行的生存分析的数据 第一列是 ID 号 其他列标记为 V2 V20 有很多缺失的数据 用 表示 我用coxph 函数来获取以下内容 Saves survi
  • R data.table 多个条件连接

    我设计了一种解决方案 用于从两个单独数据表的多个列中查找值 并添加基于新列的值计算 多个条件比较 代码如下 它涉及在计算两个表中的值时使用 data table 和联接 但是 这些表没有联接在我正在比较的列上 因此我怀疑我可能无法获得 da
  • R:ifelse 中的字符串列表

    我正在寻找与 MySQL 中的 where var in 语句类似的东西 我的代码如下 data lt data frame id 10001 10030 cc1 rep c a b c 10 attach data data new lt
  • 如何在R中匹配具有相同主键的两个表中的数据

    我有两个表 其中包含有关人员的数据 df1 lt data frame id c 113 202 377 288 359 name c Alex Silvia Peter Jack Jonny 这为我提供了 id name 1 113 Al
  • RStudio 不会通过 rPython 调用加载所有 Python 模块

    我从 Bash 和 RStudio 中运行相同的脚本时出现一些意外行为 请考虑以下事项 我有一个文件夹 rpython 包含两个脚本 test1 R library rPython setwd rpython python load tes
  • R参考类问题

    我正在尝试在 R 中创建一个简单的参考类 这是我的代码 R 初学者 MyClass lt setRefClass MyClass fields list a numeric b numeric methods list initialize
  • 按组计算连续行中的值之间的差异

    这是我的一个df 数据框 group value 1 10 1 20 1 25 2 5 2 10 2 15 我需要按组计算连续行中的值之间的差异 所以 我需要一个结果 group value diff 1 10 NA because the
  • R Leaflet Legend:colorBin-删除中断之间的小数

    我正在使用 Leaflet 库在 R 中创建交互式 HTML 地图 传说中采用的是colorBin用于创建将数据分为 6 个类别的方法 使用min values and max values 我已经定义了美国社区调查收入数据的特定范围可能落
  • 通过 R 中的数据子集执行计算

    我想对数据框的 PERMNO 列中的每个公司编号进行计算 其摘要可以在此处查看 gt summary companydataRETS PERMNO RET Min 10000 Min 0 971698 1st Qu 32716 1st Qu
  • 如何确定 R 包的作者?

    如何确定包的作者是谁 鉴于我们拥有这个广泛使用的代码库 我认为参考我在分析中使用的软件是合适的 有没有办法以编程方式检索作者和任何其他相关信息 在伪代码中 我想执行以下操作 references base 我怎样才能做到这一点 为了能够引用
  • 使用 ggplot 构面时增加闪亮的绘图大小

    有没有办法增加绘图窗口的大小shiny取决于在一个中使用的面的数量ggplot图 也许使用垂直滚动 例如 使用下面的示例 当输入为 A 有三个方面 情节看起来不错 当选项 B 选择绘图数量会增加 但绘图窗口保持相同大小 导致绘图太小 是否有
  • R 中的龙卷风图

    我正在尝试在 R 中绘制龙卷风图 又名敏感性图 目标是可视化某些变量增加 10 和减少 10 的效果 到目前为止我已经得到这个结果 这是我正在使用的代码 Tornado plot data lt matrix c 0 02 0 02 0 0
  • 在 igraph 中为社区分配颜色

    我在 igraph 中使用 fastgreedy community 检测算法在 R 中生成社区 代码返回 12 个社区 但是在绘图时很难识别它们 因为它返回的图的颜色数量有限 我怎样才能用十二种不同的颜色绘制这个图表 l2 lt layo
  • 当有很多列时,使用 readr::read_csv() 导入数据时覆盖列类型

    我正在尝试使用 R 中的 readr read csv 读取 csv 文件 我导入的 csv 文件大约有 150 列 我只包含示例的前几列 我希望将第二列从默认类型 我执行 read csv 时为日期 覆盖为字符或其他日期格式 GIS Jo
  • RStudio 如何确定控制台宽度,为什么它似乎总是出错?

    我刚刚发现wid lt options width在 RStudio 中 它似乎是我日常控制台使用中令人烦恼的根源 或者更确切地说 更接近根源 我应该先说一下 我目前使用的是 R 3 2 2 RStudio 0 99 491 Linux M
  • 无法部署 ShinyApp:readTableHeader 在“raw”上发现不完整的最后一行(使用默认值:en_US)

    我已经拼命尝试部署我的闪亮应用程序大约一周了 但不幸的是我无法停止收到以下消息 Warning message Error detecting locale Error in read table file file header head
  • 如何绘制大时间序列(数千次给药次数/药物剂量)?

    我正在尝试绘制医院中如何开出单一药物的图解 在这个虚拟数据库中 我在 2017 年 1 月 1 日之后遇到了 1000 名患者 绘图的目的是了解该药物的给药模式 在接近入院 出院或患者住院期间是否更频繁 高剂量给药 Get random d

随机推荐