Converti le coordinate da readShapePoly in R in coordinate long-lat


9

Sto cercando di trovare alcuni centroidi di uno shapefile per i comuni danesi e successivamente trovare il tempo di guida tra di loro. Uso Rla readShapePolyfunzione di maptoolscombinata con la gCentroidfunzione di rgeose tutto funziona. Tuttavia, ottengo punti spaziali come

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

Che chiaramente non è qualcosa che posso usare in Google per prendere i tempi di viaggio. Sto cercando un modo per convertire questi numeri in longitudine-latitudine, ma non ho idea di come.

Quando leggo i dati utilizzando readOGRdalla rgdallibreria ottengo le stesse coordinate ma mi dice quanto segue su ciò che presumo sia la proiezione (ma le coordinate sono le stesse)

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

Esempio riproducibile: ho inserito i dati per l'esempio qui: https://github.com/sebastianbarfort/shapefiles

Questo dovrebbe riprodurre il problema:

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

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

Risposte:


14

Utilizzare spTransformper trasformare le coordinate in WGS84:

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

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

tracciare

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è in grado di leggere automaticamente le informazioni sulla proiezione. maptoolsle funzioni non leggono né scrivono informazioni sulla proiezione, lasciando a te la gestione manuale di questi dettagli.


Questo era proprio quello che stavo cercando.
sBarfort

@sBarfort Se la risposta risolve la tua domanda, potresti voler accettarla. In questo modo gli altri sapranno che è la risposta corretta.
RK,

Non hai lo stesso controllo di gCentroid, ma SpatialPolygons mantiene il centroide nell'oggetto. Puoi recuperarli come matrice usando: coordinate (map_wgs84)
Jeffrey Evans il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.