2012-07-25 144 views
7

我有坐标,所有这些应该位于DC,但我无法弄清楚如何将它们从NAD 83转换为R中的经度和纬度。我在rgdal软件包中使用spTransform()函数,并获取有关不符合的数据。如何使用rgdal包将NAD 83坐标转换为经度和纬度?

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 

proj4strings的其他组合产生相同的错误。我相信这个错误是因为坐标太大,但我不确定这是为什么。坐标文件如下:

值是在马里兰州国家飞机米NAD 83地图投影。

我对映射和预测非常陌生,任何帮助表示赞赏。

+0

[GIS StackExchange](http://gis.stackexchange.com/)那种改造,FYI – DefenestrationDay 2012-07-26 14:35:47

+0

谢谢。我无法追踪所有的StackExchange网站。 – 2012-07-26 15:03:44

回答

6

查找espg:4269:

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

及其经纬度长的系统。所以你的大数字(米)是太大了。

如果你在这些坐标数据得到了shape文件的任何地方,那么你可能有它.prj文件,将有投影规范,否则,你将有追逐它spatialreference.org:

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

在NAD83上有各种各样的变化,还有'国家飞机'在这里和那里。我不太确定哪个是哪个。 epsg:代码更标准,然后有一堆esri:代码。 sr-org:ones是用户在网站上提供的。

esri代码看起来足够接近你给的文本。让我们尝试:

> 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 

DC附近的任何地方?实际上,epsg:2804和epsg:3559给出了相同的答案,并且可能更“标准”...

+1

谢谢,这很好。要明确,esri:102285是NAD 83的马里兰州国家飞机,单位为米,而epsg:4326是标准的经/纬度坐标系? – 2012-07-25 13:53:33

+2

是的,对于'标准'的一些价值:)如果你看它http://spatialreference.org/ref/epsg/4326/它告诉你它从GPS获得什么。还有其他标准经纬度,基于地球变平的其他测量值,或不同的零经线等。 – Spacedman 2012-07-25 14:02:08

+0

非常棒,感谢您的明确解释。 – 2012-07-25 14:04:54

相关问题