Как добавить столбец с данными о местоположении в SpatialPolygonsDataFrame в R?

У меня есть пространственные данные в R, которые загружаются как SpatialPolygonsDataFrame:

library(sp)
library(tmap)
d <- readRDS("data.rds")
qtm(d)

В качестве примера я использовал данные по Германии с сайта http://www.gadm.org/download.

Ниже вы видите карту, составленную qtm(d). Однако я хотел бы отобразить свои собственные данные. У меня есть местоположения с долготой и широтой, и я хотел бы подсчитать количество точек внутри нанесенных на карту многоугольников и показать эти подсчеты в виде цвета карты ниже.

Я понятия не имею, с чего начать. Есть ли простой подход, который сопоставляет местоположения с полигонами?

Карта


person Xiphias    schedule 11.10.2015    source источник


Ответы (1)


Однако я не очень разбираюсь в пространственных данных, возможно, вы можете использовать это в качестве стартера:

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))

введите здесь описание изображения

person lukeA    schedule 11.10.2015
comment
Это круто. Большое спасибо. Особенно gContains() кажется именно тем, что мне нужно. - person Xiphias; 11.10.2015