Xấp xỉ tọa độ GPS cho một điểm từ n vị trí dự kiến


9

Tôi đang cố gắng tìm tọa độ của điểm chú ý của tôi (điểm X, được đánh dấu màu xanh). Tôi đã sử dụng thiết bị GPS của xe hơi để thu thập tọa độ theo nơi tôi đỗ xe mỗi lần tôi đến điểm x. Vì vậy, sau khi thực hiện bài tập này trong 16 ngày, tôi đã có được 16 bộ tọa độ, trải đều về điểm chú ý của tôi.

Sau khi vẽ các tọa độ này trên bản đồ, tôi đã quan sát như sau: Hai lần hoặc ba lần trong mười lần, thiết bị GPS của tôi đưa ra một bộ tọa độ sai, hóa ra là yên tĩnh cách xa điểm X. Cũng do giao thông, thỉnh thoảng tôi không thể đỗ gần điểm x và do đó trong trường hợp này cũng vậy, tọa độ thu được khác xa điểm X.

Vấn đề: Từ 16 bộ tọa độ thu được, tôi sử dụng quy trình nào để thu hẹp thành một bộ tọa độ gần với điểm chú ý của tôi (điểm X)?

Hình ảnh hỗ trợ mô tả vấn đề ở trên


Bạn có thông tin về PDOP được cung cấp bởi thiết bị GPS của bạn không? điều này có thể giúp bạn xác định các điểm không đáng tin cậy.
radouxju

Tôi sẽ đưa ra câu trả lời nhưng tôi không chắc liệu đây có phải là chính xác những gì bạn đang cố gắng làm hay không, nhưng ném các ngoại lệ và sử dụng điều chỉnh bình phương tối thiểu tôi tin có thể giải quyết vấn đề của bạn. utdallas.edu/~aiken/GPSCLASS/ch11.pdf
ed.hank

Câu trả lời:


13

Một cách để tiếp cận vấn đề thú vị này là xem nó như một công cụ ước tính mạnh mẽ của trung tâm phân phối điểm bivariate. Một giải pháp (nổi tiếng) là bóc vỏ tàu lồi cho đến khi không còn gì . Trọng tâm của thân tàu không trống cuối cùng nằm ở trung tâm.

(Điều này có liên quan đến bagplot . Để biết thêm thông tin, hãy tìm kiếm trên Web cho "lồi vỏ lồi đa biến ngoại lệ.")

Nhân vật

Kết quả cho 16 điểm minh họa được hiển thị dưới dạng tam giác trung tâm trong bản đồ này. Ba đa giác xung quanh cho thấy các thân lồi liên tiếp. Năm điểm ngoại vi (30% tổng số!) Đã bị xóa trong hai bước đầu tiên.


Ví dụ đã được tính toán trong R. Thuật toán tự nó được thực hiện trong khối giữa, "lột lồi". Nó sử dụng chullthói quen tích hợp sẵn, trả về các chỉ số của các điểm trên thân tàu. Những điểm này được loại bỏ bằng các biểu thức lập chỉ mục tiêu cực xy[-hull, ]. Điều này được lặp lại cho đến khi các điểm cuối cùng sẽ được gỡ bỏ. Ở bước cuối cùng, trọng tâm được tính bằng cách lấy trung bình các tọa độ.

Lưu ý rằng trong nhiều trường hợp, việc chiếu dữ liệu thậm chí không cần thiết: vỏ lồi sẽ không thay đổi trừ khi các tính năng ban đầu trải dài theo đường phản xạ (+/- 180 độ), hoặc cực, hoặc rộng đến mức độ cong của các đoạn giữa chúng sẽ tạo nên sự khác biệt. (Ngay cả khi đó độ cong sẽ ít được quan tâm, bởi vì bong tróc vẫn sẽ hội tụ đến một điểm trung tâm.)

#
# Project the data.
#
dy <- c(8,7,5,10,7,17,19,19,21,22,22,22,24,24,26,26)
dx <- c(66,67,66,89,89,79,78,76,75,81,78,77,75,80,77,83)
lat <- (28.702 + dy/1e5) / 180 * pi
lon <- (77.103 + dx/1e5) / 180 * pi
y <- dy
x <- cos(mean(lat)) * dx
#
# Convex peeling.
#
xy <- cbind(x, y)
while(TRUE) {
  hull <- chull(xy)
  if (length(hull) < nrow(xy)) {
    xy <- xy[-hull, ]
  } else {
    xy.0 <- matrix(apply(xy, 2, mean), 1, 2)
    break
  }
}
#
# Plot the data `xy` and the solution `xy.0`.
#
plot(range(x), range(y), type="n", asp=1)
points(x, y, pch=21, bg="#a01010")
points(xy.0, pch=24, cex=1.2, bg="#404080")

Đẹp. Một suy nghĩ: có nên loại bỏ bất kỳ dữ liệu xấu nào có thể xảy ra trước khi vỏ máy tính - chỉ dựa trên cách thu thập dữ liệu (không có khả năng đỗ gần) nhưng KHÔNG dựa trên việc kiểm tra dữ liệu?
Simbamangu

@Simba Đó là một cách tiếp cận hợp lý.
whuber

Nếu chúng ta có nhiều trang như thế này, mỗi trang có số lượng quan sát khác nhau (như trang này có 16), trong tệp excel, chúng ta sẽ sửa đổi mã cho điều đó như thế nào.
dùng3587184

@ user3587184 Lý tưởng nhất là bạn sẽ không thực hiện công việc trong Excel. Nếu bạn phải, sau đó viết một macro để lặp qua các nhóm quan sát.
whuber
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.