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.