У меня есть шейп-файл с более чем 50-ю различными полигональными формами (представляющими более 50-ти различных областей) и 10000-ю точками данных, которые должны присутствовать в одной из областей. Дело в том, что более 10000 точек уже закодированы с областью, в которой они должны находиться, и я хочу выяснить, как далеко они находятся от этой кодированной области на геопространственном расстоянии.
Мой текущий подход (код ниже), который включает преобразование шейп-файлов в owin
объекты из библиотеки sp
и использование distfun
, дает мне расстояния в широтном, длинном евклидовом пространстве. Но я хотел бы получить геопространственные расстояния (в конце концов, чтобы преобразовать в км). Куда мне идти дальше?
#basically cribbed from http://cran.r-project.org/web/packages/spatstat/vignettes/shapefiles.pdf (page 9)
shp <- readShapeSpatial("myShapeFile.shp", proj4string=CRS("+proj=longlat +datum=WGS84"))
regions <- lapply(slot(shp, "polygons"), function(x) SpatialPolygons(list(x)))
windows <- lapply(regions, as.owin)
# need to convert this to geo distance
distance_from_region <- function(regionData, regionName) {
w <- windows[[regionName]]
regionData$dists <- distfun(w)(regionData$lat, regionData$long)
regionData
}