Việc chuyển đổi sang một phép chiếu mới, sau đó quay lại, có ảnh hưởng đến độ chính xác của dữ liệu không?


13

Tôi có một lớp đối tượng (các quận Nam Carolina, vì vậy một khu vực địa lý khá rộng lớn) trong Máy bay Bang NAD83 SC. Nó cần phải được chuyển đổi sang hình chiếu thứ hai (NAD83 UTM 17), sau đó chuyển đổi trở lại bản gốc. Tôi sẽ sử dụng công cụ Dự án của Esri để thực hiện điều này.

Sự biến đổi kép này có thể gây ra sự thay đổi vị trí của tọa độ đa giác hay không, và bao nhiêu - cm, mét, km?


Bởi vì: độ phân giải biến đổi, phối hợp độ phân giải hệ thống, và độ phân giải và dung sai lưu trữ hình học. Mỗi một trong số các "biến" này là khác nhau. Vì vậy, bạn cần phải đọc tài liệu cho từng.
GISI

... Và nếu bạn đang sử dụng ArcGIS, có khả năng hàng trăm phương trình biến đổi được liệt kê theo thứ tự các phép biến đổi có độ phân giải cao nhất cho miền không gian của dữ liệu của bạn.
GISI

1
Kết quả thông thường từ A -> B -> A 'là A ~ = A', nhưng việc thêm phép biến đổi dữ liệu vào hỗn hợp có thể thực sự làm hỏng mọi thứ nếu bạn làm sai. Một phần lớn phụ thuộc vào cách xác định các tham chiếu tọa độ (và do đó, việc cắt bớt trong các đơn vị bản đồ của mỗi hệ tọa độ).
Vince

Câu trả lời:


19

Tôi không biết ArcGis sử dụng công cụ chiếu nào, nhưng cũng là một câu hỏi rất thú vị cho proj.4. Vì vậy, tôi cho nó thử kiểm tra công cụ chiếu proj.4 trong môi trường GNU-R. Tôi sử dụng các góc NAD 83 - UTM 17 và EPSG 26917 và định nghĩa lại nó 10000 và 1000000 lần một cách đệ quy và tính toán sự khác biệt cho các giá trị bắt đầu.

Đây là kết quả:

Có vẻ như lỗi "từ chối" nằm trong phạm vi centimet cho 10000 vòng.

"LON/LAT differences after  10000  loops"
           DLON          DLAT
1 -2.441464e-07 -1.341807e-07
2  2.441129e-07 -1.341807e-07
3  1.852679e-07 -1.691737e-08
4 -1.853157e-07 -1.691819e-08

"X/Y differences after  10000  loops"
            DX           DY
1 -0.025169783 -0.014338141
2  0.025166375 -0.014338208
3  0.002419045 -0.002016762
4 -0.002419690 -0.002016889

Và phát triển thành một lỗi trong phạm vi mét nếu bạn chạy vòng lặp 1000000 lần.

"LON/LAT differences after  1000000  loops"
           DLON          DLAT
1 -2.441464e-05 -1.341845e-05
2  2.441128e-05 -1.341846e-05
3  1.852621e-05 -1.691837e-06
4 -1.853105e-05 -1.691828e-06

"X/Y differences after  1000000  loops"
          DX         DY
1 -2.5172288 -1.4339977
2  2.5168869 -1.4340064
3  0.2419201 -0.2017070
4 -0.2419859 -0.2017094

Đây là kịch bản.

# load the package
require('proj4')

# the LON/LAT frame of NAD83 UTM 17 
lon = c(-84.00, -78.00, -84.00, -78.00 ) 
lat = c( 24.00,  24.00,  83.00,  83.00)

# build the projection conform object
ll0 = matrix(c(lon,lat),nrow=4,ncol=2)
xy0 = project(ll0,"+init=epsg:26917",ellps.default='GRS80')

# make a copy
ll1 = ll0
xy1 = xy0

# number of iterations
num = 1000000

# reproject the stuff num times
for(i in 1:num) {
 # project forward  
 xy1 = project(ll1,"+init=epsg:26917", ellps.default='GRS80')
 # project backward
 ll1 = project(xy1,"+init=epsg:26917", inverse=T, ellps.default='GRS80')
}

# build difference table ll
dll = as.data.frame(ll1-ll0)
names(dll) = c('DLON','DLAT')
# print results LON/LAT
print(paste("LON/LAT differences after ", num," loops"))
print(dll)

# build difference table xy
dxy = as.data.frame(xy1-xy0)
names(dxy) = c('DX','DY')
# print results X/Y
print(paste("X/Y differences after ", num," loops"))
print(dxy)

Kiểm tra thêm trong một môi trường thống kê nên dễ dàng. Các tập lệnh và giải thích mã cho môi trường linux có sẵn tại github.com/bigopensky .


Điều này thậm chí còn kỹ lưỡng hơn tôi mong đợi, và rất đáng khích lệ. Cảm ơn bạn đã kiểm tra cho kịch bản ví dụ để sao chép nó với dữ liệu của riêng tôi!
Erica

Bạn có thể bao gồm những gì bạn có nghĩa là các góc UTM NAD83? Nếu họ ở cực trị của khu vực (ví dụ vĩ độ cao), sử dụng các điểm trong Hoa Kỳ có thể sẽ cho kết quả thậm chí tốt hơn.
mkennedy

Tôi giả sử rằng các giới hạn WGS84 được vận chuyển với EPSG 26917 tại spatialreference.org/ref/epsg/nad83-utm-zone-17n .. WGS84 Bounds: -84.0000, 24.0000, -78.0000, 83.0000là khu vực quan tâm đúng đắn. Tôi có làm sai không?
huckfinn

@huckfinn Duh, lẽ ra tôi đã thấy các giá trị trong mã! Xin lỗi cho những câu hỏi ngu ngốc. Giá trị tuyệt vời cho một câu trả lời khái quát về UTM.
mkennedy

7

Esri có công cụ chiếu riêng.

Hầu hết các phép chiếu và phương pháp biến đổi địa lý / mốc chuẩn đều hoạt động tốt khi được sử dụng trong một lĩnh vực quan tâm thích hợp. Nếu bạn đi quá xa ra ngoài vùng UTM, Mercator ngang không phải lúc nào cũng 'nghịch đảo' (chuyển đổi thành kinh độ vĩ độ) chính xác. Các phép chiếu được sử dụng cho toàn thế giới có thể có một số vấn đề tại hoặc xung quanh các cực hoặc kinh tuyến +/- 180 hoặc 'chống kinh tuyến' (kinh tuyến đối diện với trung tâm của hệ tọa độ tọa độ dự kiến).

Tôi đã chạy 4 điểm rơi bên ngoài Nam Carolina thông qua công cụ chiếu Esri. Đối với bài kiểm tra căng thẳng 1k hoặc 10k hoặc 1M điểm, tôi sẽ phải mã hóa một cái gì đó vì bài kiểm tra tương tự hiện tại của tôi chỉ thực hiện một 'chuyến đi khứ hồi' - dự kiến ​​theo địa lý để dự kiến. 32133 là NAD 1983 State Airplane South Carolina (mét). 26917 là NAD 1983 UTM khu 17 Bắc.

C:\Users\melita>inverse 32133
382000 20000
      -83.40806392522212        31.98974518135408
382000 383000
      -83.50098893136905        35.26180827475587
839100 20000
      -78.57184097446545        31.98934439195045
839100 383000
      -78.47814111839074        35.26139222680582

C:\Users\melita>forward 26917
  -83.40806392522212        31.98974518135408
       272490.5730967618        3541832.738731374
  -83.50098893136905        35.26180827475587
       272485.6257057797         3904944.98998655
  -78.57184097446545        31.98934439195045
       729409.4734382738        3541830.781689366
  -78.47814111839074        35.26139222680582
       729414.4926270114        3904946.919009762

C:\Users\melita>inverse 26917
 272490.5730967618        3541832.738731374
      -83.40806392522212        31.98974518135408
  272485.6257057797         3904944.98998655
      -83.50098893136905        35.26180827475587
  729409.4734382738        3541830.781689366
      -78.57184097446545        31.98934439195045
  729414.4926270114        3904946.919009762
      -78.47814111839074        35.26139222680582
^Z

C:\Users\melita>forward 32133
  -83.40806392522212        31.98974518135408
                382000.0                  20000.0
  -83.50098893136905        35.26180827475587
                382000.0                 383000.0
  -78.57184097446545        31.98934439195045
                839100.0        19999.99999999814
  -78.47814111839074        35.26139222680582
                839100.0        382999.9999999981

Vì vậy, bạn có thể thấy chúng tôi đã có hai điểm trở lại vào lúc 10e-09.

Việc xử lý trong ArcGIS rất phức tạp bởi thực tế là có một tài liệu tham khảo không gian. Tham chiếu không gian bao gồm hệ tọa độ cộng với một số giá trị lưu trữ và phân tích. Theo mặc định, các hệ tọa độ sử dụng đồng hồ đo được lưu trữ với độ chính xác bằng một phần mười milimét, 0,0001.

Tiết lộ: Tôi làm việc cho Esri.


5

Tôi nghĩ rằng đây là trường hợp bạn cần kiểm tra quy trình làm việc được đề xuất của mình với một số tính năng điểm kiểm tra, dễ dàng thêm các trường tọa độ XY vào.

So sánh các giá trị XY của các điểm ban đầu của bạn với các giá trị mà bạn đã chiếu / chuyển đổi (tuy nhiên nhiều lần) và bạn sẽ định lượng được sự khác biệt.


1
Đồng ý. Ngoài ra, hãy lưu ý ArcGIS hiển thị 6 vị trí thập phân của kiểu dữ liệu Double theo mặc định trong Chế độ xem bảng. Bạn có thể thay đổi các thuộc tính của trường để hiển thị 12 vị trí thập phân, trong chế độ xem bảng. Giá trị xy địa lý thường là 9 chữ số thập phân hoặc hơn, độ chính xác gấp đôi.
klewis
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.