n 개의 예상 위치에서 한 지점에 대한 대략적인 GPS 좌표


9

관심 지점의 좌표 (X 지점, 파란색으로 표시)를 찾으려고합니다. 포인트 x를 방문 할 때마다 차량을 주차 한 위치에 따라 좌표를 수집하기 위해 자동차의 GPS 장치를 사용했습니다. 그래서이 운동을 16 일 동안 수행 한 후, 나는 16 점의 좌표를 얻어 내 관심 지점 주위로 둥글게 퍼뜨 렸습니다.

이 좌표를지도에 플로팅 한 후 다음을 관찰했습니다. 10 회 중 2 회 또는 3 회 GPS 장치가 X 좌표에서 멀어도 조용하지 않은 잘못된 좌표 세트를 제공했습니다. 또한 교통 때문에 때때로 x 지점에 가까이 주차 할 수 없으므로이 경우에도 획득 한 좌표는 X 지점에서 멀어집니다.

문제점 : 획득 한 16 개 좌표에서 관심 지점 (X 점)에 가장 가까운 하나의 좌표로 좁히기 위해 어떤 프로세스를 사용합니까?

이미지는 위의 문제 설명을 지원합니다


GPS 장치에서 제공하는 PDOP에 대한 정보가 있습니까? 신뢰할 수없는 지점을 식별하는 데 도움이 될 수 있습니다.
radouxju

나는 이것을 대답에 넣을 것이지만 이것이 정확히 당신이하려는 일인지 확실하지 않지만 이상 값을 던지고 최소 제곱 조정을 사용하면 문제를 해결할 수 있다고 생각합니다. utdallas.edu/~aiken/GPSCLASS/ch11.pdf
ed.hank

답변:


13

이 흥미로운 문제에 접근하는 한 가지 방법은이 문제를 이변 량 점 ​​분포 중심의 강력한 추정값으로 보는 것입니다. (잘 알려진) 해결책은 아무것도 남지 않을 때까지 볼록 껍질벗겨내는 것입니다 . 비어 있지 않은 마지막 선체의 중심이 중심을 찾습니다.

(이것은 bagplot 과 관련이 있습니다. 자세한 정보는 웹에서 "볼록 껍질 벗김 다변량 특이 치"를 검색하십시오.)

그림

16 개의 예시 된 점에 대한 결과가이 맵에서 중심 삼각형으로 표시됩니다. 세 개의 다각형은 연속적인 볼록 껍질을 보여줍니다. 처음 두 단계에서 5 개의 외곽 포인트 (총 30 %)가 제거되었습니다.


예는에서 계산되었습니다 R. 알고리즘 자체는 중간 블록 "볼록 필링"에서 구현됩니다. 내장 chull루틴을 사용하여 선체의 포인트 인덱스를 반환합니다. 이러한 점은 음의 인덱싱 표현식을 통해 제거됩니다 xy[-hull, ]. 마지막 지점이 제거 될 때까지이 과정이 반복됩니다. 마지막 단계에서 좌표를 평균하여 중심을 계산합니다.

많은 경우에 데이터를 투영 할 필요는 없습니다. 원래의 특징이 자오선 (+/- 180도 경도), 극점에 걸쳐 있거나 그것들 사이의 세그먼트의 곡률이 너무 넓지 않으면 볼록 선체는 변하지 않습니다. 차이를 만들다. (따라서 필링은 여전히 ​​중심점으로 수렴되기 때문에 곡률은 거의 관심이 없습니다.)

#
# 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")

좋은. 한 가지 생각 : 선체를 계산하기 전에 불량 데이터를 버리는 것이 적절할까요? 전적으로 데이터를 수집 한 것이 아니라 수집 된 방식 (주변에 주차 할 수 없음)에 근거하는 것입니까?
Simbamangu

@Simba 합리적인 접근 방식입니다.
whuber

우리가 이와 같은 여러 사이트를 가지고 있다면, 각각 엑셀 파일에 다른 수의 관측치 (이것과 같은 16 개가 있음)가있는 경우 어떻게 코드를 수정합니까?
user3587184

@ user3587184 Excel에서 작업을 수행하지 않는 것이 가장 좋습니다. 필요한 경우 관측 그룹을 반복하는 매크로를 작성하십시오.
whuber
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.