首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >映射R中每个位置的半径内有多少个点

映射R中每个位置的半径内有多少个点
EN

Stack Overflow用户
提问于 2020-12-07 03:37:23
回答 1查看 173关注 0票数 1

在R中,我试图创建一个合唱图。我建立了一个企业数据库,其中一些是连锁企业(如McDonalds)的一部分,另一些则是独立的。我想计算出地图上每点30公里内有多少家企业,但把不同的连锁店位置当作一个企业。

例如,如果您的要点是:

Chick-Fil-A

  • 20km距
  • 5公里,
  • 距塔科贝尔
  • 10公里,距KFC
  • 15公里,距KFC
  • 25公里,距F 213

颜色显示在30公里内有4个快餐店。

我很高兴使用任何R包,但我大多熟悉tmap和ggplot2地图。

在这个阶段,我能想到的最好的方法是为每个链创建多边形,并将它们叠加成透明的相同颜色的层。我不认为这将是非常有效的,也不会创造一个非常漂亮的合唱。

我能找到的其他答案要么是点数(例如https://gis.stackexchange.com/questions/229066/counting-how-many-times-a-point-is-inside-a-set-of-intersecting-polygons-in-r),要么是地理信息系统软件。

编辑:,我已经设法从每个链的每个位置创建了一个30公里的半径(使用rgeos gIntersection)。我现在有了一系列的多边形。

为了解决我的问题,我需要做的另一件事是创建多边形,用于:

  • etc.

  • 只有一个多边形覆盖该区域,
  • 两个多边形覆盖该区域

为了直观起见,我使用了https://gis.stackexchange.com/questions/229066/counting-how-many-times-a-point-is-inside-a-set-of-intersecting-polygons-in-r的答案吗?

在链接的问题中,他们试图计算有多少多边形覆盖了编号的点(右边的图像)。我要做的是在左边创建图像,在那里没有重叠的多边形(1),两个重叠的多边形(2)等等。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-08 19:58:56

我认为你想要达到的目标最好是用光栅法,而不是氯仿法。要制作合唱图,您需要定义一组(通常是不规则的)多边形,在每个多边形中总结一些内容,然后根据属性对多边形进行着色。如果你想知道每个州或县有多少家快餐店,或者每个州平均有多少家快餐店,这将是一个很好的方法。

然而,从你的描述,你正在寻找有多少个快餐店在一套半径内的所有点。这更像是一个栅格问题,因为您可以在常规网格上表示数据。

raster包是处理光栅数据的良好开端,并且可以很好地处理sf包。

您需要确定完成目标所需的密度,然后使用它来确定光栅的分辨率。一旦获得了这些数据,就可以使用raster::rasterize()来总结(我假设)点数据。

我假设你有一个有每一家餐厅的位置的物体,我称之为“点”。

代码语言:javascript
复制
library(raster)
library(sf)

# create raster template with 30km resolution (I'm assuming your projection is in meters)
raster_template = raster((extent(points), 
                         resolution = 30000,
                         crs = st_crs(points)
                         )
# rasterize your point data
r = rasterize(points, raster_template, fun = "count")

这将创建一个网格,其中每个单元格都有每个30公里单元格内的点数。然后,你应该能够绘制光栅,但可能想要剪辑或掩蔽它,只显示在新西兰境内的部分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65175809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档