2012-07-25 59 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

相關問題