如何将包含基于位置的数据的列添加到 R 中的 SpatialPolygonsDataFrame?
How to add a column with location-based data to a SpatialPolygonsDataFrame in R?
我在 R 中有空间数据,它作为 SpatialPolygonsDataFrame
:
加载
library(sp)
library(tmap)
d <- readRDS("data.rds")
qtm(d)
例如,我使用了来自 http://www.gadm.org/download 的德国数据。
下面是 qtm(d)
绘制的地图。但是,我想显示我自己的数据。我有经度和纬度的位置,我想计算映射多边形内的点数,并将这些计数显示为下面地图的颜色。
我不知道从哪里开始。有没有一种简单的方法可以将位置映射到多边形?
我对空间数据不是很有经验,但是,也许你可以用这个作为入门:
library(sp)
library(raster)
library(rgeos)
# load map
d <- getData("GADM", country = "Germany", level = 2)
# generate some random points
set.seed(1)
p <- data.frame(
lon = jitter(sample(8:13, 20, T)),
lat = jitter(sample(49:52, 20, T))
)
# match points with polygons
mat <- gContains(d, SpatialPoints(p, proj4string=CRS(sp::proj4string(d))), byid=TRUE)
hits <- colSums(mat)
cols <- rev(heat.colors(diff(range(hits))+1))
# plot
plot(d, col = cols[hits+1], border = "green")
with(p, points(lon, lat, col = "blue", pch = 19, cex = .5))
我在 R 中有空间数据,它作为 SpatialPolygonsDataFrame
:
library(sp)
library(tmap)
d <- readRDS("data.rds")
qtm(d)
例如,我使用了来自 http://www.gadm.org/download 的德国数据。
下面是 qtm(d)
绘制的地图。但是,我想显示我自己的数据。我有经度和纬度的位置,我想计算映射多边形内的点数,并将这些计数显示为下面地图的颜色。
我不知道从哪里开始。有没有一种简单的方法可以将位置映射到多边形?
我对空间数据不是很有经验,但是,也许你可以用这个作为入门:
library(sp)
library(raster)
library(rgeos)
# load map
d <- getData("GADM", country = "Germany", level = 2)
# generate some random points
set.seed(1)
p <- data.frame(
lon = jitter(sample(8:13, 20, T)),
lat = jitter(sample(49:52, 20, T))
)
# match points with polygons
mat <- gContains(d, SpatialPoints(p, proj4string=CRS(sp::proj4string(d))), byid=TRUE)
hits <- colSums(mat)
cols <- rev(heat.colors(diff(range(hits))+1))
# plot
plot(d, col = cols[hits+1], border = "green")
with(p, points(lon, lat, col = "blue", pch = 19, cex = .5))