2012-07-25 46 views
7

Tôi có tọa độ, tất cả đều được đặt trong DC, nhưng tôi không thể tìm ra cách chuyển đổi từ NAD 83 sang vĩ độ và kinh độ trong R. Tôi đang sử dụng hàm spTransform() trong gói rgdal và nhận lỗi dữ liệu không phù hợp.Làm thế nào để chuyển đổi tọa độ NAD 83 thành vĩ độ và kinh độ với gói 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 

Kết hợp khác của proj4strings mang lại cùng một lỗi. Tôi tin rằng lỗi là bởi vì các tọa độ quá lớn, nhưng tôi không chắc tại sao điều đó lại xảy ra. Tài liệu cho tọa độ dưới đây:

Giá trị nằm trong máy chiếu trạng thái Maryland NAD 83 chiếu bản đồ.

Tôi rất mới lập bản đồ và dự đoán và mọi trợ giúp đều được đánh giá cao.

+0

Đám đông tại [GIS StackExchange] (http://gis.stackexchange.com/) là tất cả điều này loại chuyển đổi, FYI – DefenestrationDay

+0

Cảm ơn. Tôi không thể theo dõi tất cả các trang web StackExchange những ngày này. –

Trả lời

6

Tra cứu espg: 4269:

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

và một hệ thống lat dài của nó. Vì vậy, số lượng lớn của bạn (đó là mét) là quá lớn.

Nếu bạn đã có một shapefile bất cứ nơi nào với dữ liệu trong các tọa độ sau đó bạn có thể có một tệp .prj với nó rằng sẽ có spec chiếu, nếu không bạn sẽ phải đuổi theo nó trên spatialreference.org:

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

Có các biến thể khác nhau trên NAD83 và cũng có 'Máy bay trạng thái' ở đây và ở đó. Tôi không chắc chắn chính xác cái nào. Các epsg: mã là tiêu chuẩn hơn, sau đó có một loạt các esri: mã. Các sr-org: những cái được người dùng cung cấp trên trang web.

Mã esri trông gần đủ nhất với văn bản bạn đã cung cấp. Cho phép thử:

> 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 

Bất kỳ nơi nào gần DC? Trên thực tế, epsg: 2804 và epsg: 3559 cho cùng một câu trả lời, và có lẽ nhiều hơn 'tiêu chuẩn' ...

+1

Cảm ơn, điều đó thật tuyệt. Để rõ ràng, esri: 102285 là máy bay tiểu bang Maryland cho NAD 83 với đơn vị tính bằng mét, và epsg: 4326 là hệ tọa độ kinh độ/vĩ độ tiêu chuẩn? –

+2

Yup, đối với một số giá trị 'Chuẩn' :) Nếu bạn tra cứu nó http://spatialreference.org/ref/epsg/4326/ nó sẽ cho bạn biết những gì bạn nhận được từ GPS. Có các độ dài tiêu chuẩn khác dựa trên các phép đo khác của làm phẳng trái đất, hoặc các số không kinh tuyến khác nhau, vv ... – Spacedman

+0

Tuyệt vời, cảm ơn lời giải thích rõ ràng. –

Các vấn đề liên quan