小编dam*_*amo的帖子

使用 sf 在 R 中求多边形的交集

我想通过查看 400m(步行 5 分钟)内其他点的数量来评估每个点与其他等效点的空间接近程度。

我在地图上有一些点。我可以在它们周围画一个简单的 400 m 缓冲区。我想确定哪些缓冲区重叠,然后计算重叠的数量。这个重叠数应该与原始点相关,这样我就可以看到哪个点的重叠数最多,因此如果我从该点步行 400 m,我可以确定我可以到达多少个其他点。

我在 GIS 溢出中问过这个问题,但我不确定 ArcGIS 是否会回答这个问题,我想我更喜欢在 R 中完成这项工作。

这就是我的目标 https://www.newham.gov.uk/Documents/Environment%20and%20planning/EB01.%20Evidence%20Base%20-%20Cumulative%20Impact%20V2.pdf

为了简化这里有一些代码

# load packages
library(easypackages)
needed<-c("sf","raster","dplyr","spData","rgdal",
          "tmap","leaflet","mapview","tmaptools","wesanderson","DataExplorer","readxl",
          "sp" ,"rgisws","viridis","ggthemes","scales","tidyverse","lubridate","phecharts","stringr")
easypackages::libraries(needed)

## read in csv data; first column is assumed to be Easting and second Northing
polls<-st_as_sf(read.csv(url("https://www.caerphilly.gov.uk/CaerphillyDocs/FOI/Datasets_polling_stations_csv.aspx")),
                coords = c("Easting","Northing"),crs = 27700)
polls_buffer_400<-st_buffer(plls,400)
polls_intersection<-st_intersection(x=polls_buffer_400,y=polls_buffer_400)
plot(polls_intersection$geometry)
Run Code Online (Sandbox Code Playgroud)

这应该显示投票站周围重叠的缓冲区。我想做的是计算此处完成的重叠次数:

polls_intersection_grouped<-polls_intersection%>%group_by(Ballot.Box.Polling.Station)%>%count()
Run Code Online (Sandbox Code Playgroud)

这是我不确定的一点,为了获得我想要的输出(在这种情况下将显示投票站的“热点”)我该如何着色?我怎样才能:通过查看 400m(步行 5 分钟)内其他点的数量来评估每个点与其他等效点的空间接近程度。

这可能是非常糟糕的形式,但这是我原来的 GIS 问题 https://gis.stackexchange.com/questions/328577/buffer-analysis-of-points-counting-intersects-of-resulting-polygons

编辑:这给了交叉点不同的颜色,这很棒。绘图(polls_intersection$geometry,col = sf.colors(calcategori = TRUE,alpha = .5))

summary(lengths(st_intersects(polls_intersection)))
Run Code Online (Sandbox Code Playgroud)

我在这里涂什么颜色?我的意思是它看起来不错,但我真的不知道我在做什么。

gis r spatial-data r-sf

7
推荐指数
1
解决办法
9133
查看次数

仅在 tmap 中绘制图例

我有一个使用库生成的拥挤地图,我已经使用函数中的tmap参数关闭了图例。legend.show = FALSEtm_layout()

我想知道的是:有没有办法自己为这张地图生成图例?这样它就可以成为一个独立的图像?

(很抱歉,代码不会为您提供地图)

tm_borders()+
tm_shape(parks)+
  tm_polygons()+
tm_shape(houses)+
  tm_polygons()+
tm_shape(grid)+
    tm_polygons(col="n", style ="cont", palette="plasma",alpha = 0.5)+
tm_layout(legend.show=FALSE)  
Run Code Online (Sandbox Code Playgroud)

编辑: 是的。它在帮助文件中,它是:函数legend.only = TRUE中的参数tm_layout()

  tm_borders()+
    tm_shape(parks)+
      tm_polygons()+
    tm_shape(houses)+
      tm_polygons()+
    tm_shape(grid)+
        tm_polygons(col="n", style ="cont", palette="plasma",alpha = 0.5)+
    tm_layout(legend.only= T)
Run Code Online (Sandbox Code Playgroud)

gis r tmap

3
推荐指数
1
解决办法
995
查看次数

标签 统计

gis ×2

r ×2

r-sf ×1

spatial-data ×1

tmap ×1