Перетворити координати з readShapePoly в R в довгострокові координати


9

Я намагаюся знайти декілька центроїдів форми файлів для датських муніципалітетів, а потім знайти час руху між ними. Я використовую R«s readShapePolyфункцію з в maptoolsпоєднанні з gCentroidфункцією від rgeos, і все працює. Однак я отримую просторові точки, такі як

SpatialPoints:
     x       y
1 571860.7 6225016
Coordinate Reference System (CRS) arguments: NA 

Що явно не те, що я можу використовувати в Google, щоб взяти час подорожей. Я шукаю спосіб перетворити ці числа на довготу-широту, але поняття не маю як.

Коли я читаю дані за readOGRдопомогою rgdalбібліотеки, я отримую ті самі координати, але це говорить мені наступне про те, що я припускаю, це проекція (але координати однакові)

Slot "proj4string":
CRS arguments:
+proj=utm +zone=32 +ellps=intl +units=m +no_defs

Приклад, що відтворюється: дані для прикладу я помістив сюди: https://github.com/sebastianbarfort/shapefiles

Це має відтворити проблему:

library(maptools)
library(rgdal)
library(rgeos)

map = readShapePoly("~/Downloads/shapefiles-master/kommuner1983.shp")
centroid = gCentroid(map)
centroid

Відповіді:


14

Використовуйте spTransformдля перетворення координат у WGS84:

library("rgdal")
library("rgeos")

map <- readOGR(".", "kommuner1983")
map_wgs84 <- spTransform(map, CRS("+proj=longlat +datum=WGS84"))
plot(map_wgs84, axes=TRUE)

сюжет

gCentroid(map_wgs84)
# SpatialPoints:
#       x     y
# 1 10.05 55.96
# Coordinate Reference System (CRS) arguments: +proj=longlat +datum=WGS84
# +ellps=WGS84 +towgs84=0,0,0 

rgdal::readOGRздатний автоматично зчитувати інформацію про проекцію. maptoolsфункції ні читати, ні записувати інформацію про проекцію, залишаючи за вами керувати цими деталями вручну.


Це було саме те, що я шукав.
sBarfort

@sBarfort Якщо відповідь вирішує ваше запитання, ви можете прийняти його. Таким чином інші дізнаються, що це правильна відповідь.
РК

У вас немає такого ж контролю, як gCentroid, але SpatialPolygons утримує центроїд в об'єкті. Ви можете отримати їх у вигляді матриці, використовуючи: координати (map_wgs84)
Джеффрі Еванс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.