2012-07-25 29 views
7

Tengo coordenadas, todas las cuales deben estar ubicadas en DC, pero no puedo encontrar la manera de convertirlas de NAD 83 a latitud y longitud en R. Estoy usando la función spTransform() en el paquete rgdal y me sale un error sobre datos no conformes.Cómo convertir coordenadas NAD 83 a latitud y longitud con el paquete rgdal?

library(rgdal) 
nad83_coords <- data.frame(x=c(396842.6, 397886.9, 398315.5, 398154.3, 398010.3), y=c(140887.1, 139847.0, 138743.9, 139534.5, 138697.3)) 
coordinates(nad83_coords) <- c('x', 'y') 
proj4string(nad83_coords) <- CRS("+init=epsg:4269") 
Error in `proj4string<-`(`*tmp*`, value = <S4 object of class "CRS">) : 
    Geographical CRS given to non-conformant data: 398315.5 140887.1 

Otras combinaciones de proj4strings producen el mismo error. Creo que el error se debe a que las coordenadas son demasiado grandes, pero no estoy seguro de por qué. La documentación para las coordenadas está a continuación:

Los valores están en la proyección del mapa del plano del estado de Maryland NAD 83.

Soy muy nuevo en mapeo y proyecciones, y cualquier ayuda es apreciada.

+0

La multitud en [GIS StackExchange] (http://gis.stackexchange.com/) está por todas partes tipo de transformación, FYI – DefenestrationDay

+0

Gracias. No puedo realizar un seguimiento de todos los sitios de StackExchange en estos días. –

Respuesta

6

Busque ESPG: 4269:

http://spatialreference.org/ref/epsg/4269/

y su sistema de latitud-longitud. Entonces tus grandes números (que son metros) son demasiado grandes.

Si usted tiene un archivo de formas en cualquier lugar con los datos en estas coordenadas entonces usted podría tener un archivo .prj con ella que tendrá la especificación de proyección, de lo contrario tendrá que perseguir en spatialreference.org:

http://spatialreference.org/ref/?search=nad83+maryland&srtext=Search

Hay variaciones variadas en NAD83, y también hay 'plano de estado' aquí y allá. No estoy muy seguro de cuál es cuál. Los códigos epsg: son más estándar, luego hay un montón de códigos esri. Los sr-org: los son provistos por el usuario en el sitio.

El código esri parece lo más parecido posible al texto que usted entregó. Vamos a intentar:

> proj4string(nad83_coords)=CRS("+init=esri:102285") 
> spTransform(nad83_coords,CRS("+init=epsg:4326")) 
SpatialPoints: 
      x  y 
[1,] -77.03642 38.93586 
[2,] -77.02437 38.92650 
[3,] -77.01942 38.91656 
[4,] -77.02128 38.92368 
[5,] -77.02294 38.91614 

Cualquier lugar cerca de DC? En realidad, epsg: 2804 y epsg: 3559 dan las mismas respuestas, y probablemente sean más 'estándar' ...

+1

Gracias, eso es genial. Para ser claros, esri: 102285 es el plano del estado de Maryland para NAD 83 con unidades en metros, y epsg: 4326 es el sistema de coordenadas de longitud/latitud estándar? –

+2

Sí, por algún valor de 'Estándar' :) Si lo buscas en http://spatialreference.org/ref/epsg/4326/ te dice lo que obtienes de un GPS. Hay otros lat-long estándar basados ​​en otras medidas del aplanamiento de la tierra, o diferentes meridianos cero, etc. ... – Spacedman

+0

Fantástico, gracias por la explicación clara. –

Cuestiones relacionadas