GPS 프로그래밍 및 개발의 모험: 지리 공간 자습서

게시 됨: 2022-03-11

이 모든 것은 10여 년 전 Zbevnica로의 하이킹 여행에서 시작되었습니다. 나는 내 새 GPS를 가지고 있었고 내 친구는 Windows ME 전화에 연결된 GPS를 가지고 있었습니다. 하이킹은 훌륭했지만 우리가 차로 돌아왔을 때 하나의 GPS는 우리가 6.2km를 걸었다고 주장하고 다른 하나는 6.7km를 보고했다는 사실에 놀랐습니다. 하나는 우리의 고도 증가(즉, 하이킹의 모든 오르막 부분의 합)가 300m라고 주장했고 다른 하나는 500m로 보고했습니다.

프로그래머(그리고 결국 GIS 프로그래머)가 되면서 나는 즉시 그 문제에 흥미를 느꼈다. 나는 스스로에게 이렇게 말했다. "간단한 스크립트로 해결하기가 그렇게 어렵지는 않을 것입니다." 결국, GPS 트랙은 (위도, 경도, 고도) 형식의 튜플 목록일 뿐입니다. 맞습니까?

글쎄,별로.

그리하여 GPS 트랙, 추적 오류, 더 일반적으로 GIS 프로그래밍의 매혹적인 세계로의 여행을 시작했습니다.

지리 공간 정보 시스템(GIS)은 지도 투영 및 측지 데이터), raste 및 vecto 데이터 처리, 원격 감지를 포함하는 거대하고 복잡한 도메인입니다. 이 도메인에 대한 포괄적인 소개는 이 기사의 범위를 훨씬 벗어납니다. 그리고 특정 문제에 초점을 맞추는 것은 어쨌든 새로운 영역에 자신을 소개하는 데 유용한 방법이 될 수 있기 때문에 제가 겪었던 몇 가지 특정 GIS 문제와 몇 가지 가능한 솔루션을 제시하겠습니다. 즉:

  • GPS 추적 오류를 인식, 이해 및 프로그래밍 방식으로 수정하는 방법
  • GPS 트랙에서 유용한 추가 정보를 계산하고 도출하는 방법

우선, GPS 트랙은 일련의 (위도, 경도, 고도) 튜플이 아닙니다 . 많은 GPS 지원 장치는 시간, 심박수 등과 같은 메타데이터도 제공합니다. 일부 GPS 장치는 데이터가 얼마나 정확한지에 대한 정보도 제공합니다. 일명 "정밀도의 희석". 그러나 불행히도 대부분의 GPS 장치, 특히 시장을 지배하는 저가형 장치는 이 정보를 제공하지 않으며 우리는 장치의 정확도를 스스로 추론해야 하는 과제를 안고 있습니다. ).

일반적으로 낮은 품질의 GPS 데이터가 있는 저가형 GPS 장치(대부분의 스마트폰과 같은)를 감지하는 한 가지 가능한 알고리즘부터 시작하겠습니다.

고도 오류 및 특이성

세계의 특정 지역에 거주하는 경우 스마트폰으로 트랙을 기록할 때 GPS 고도 정확도에 대해 이상한 점을 발견했을 수 있습니다. 고도를 확인할 때 오른쪽 고도보다 높거나 낮은(일정한 값에 의해) 일관되게 기록됩니다. 예를 들어, 저는 Višnjan(크로아티아)에 살고 있고 Android는 실제 고도보다 대략 35-40미터 위에 있다고 계속 알려줍니다.

예를 들어 다음은 몇 달 전에 짧은 하이킹을 했을 때의 GPS 고도 그래프입니다.

이 그래프는 GIS 프로그래밍에서 GPS 고도 정확도의 문제를 보여줍니다.

여기서 주목해야 할 두 가지.

첫째, 기록된 GPS 데이터의 첫 번째 부분에 있는 "언덕"은 장치에 의해 완전히 조작되었습니다 . 그래프가 우리 하이킹의 가장 높은 지점이 시작 지점에서 불과 몇 백 미터 떨어져 있음을 나타내는 것처럼 보이지만 실제로는 약 4km 이후였습니다.

둘째, 아마도 더 중요한(그래프에 표시 되지 않는 ) 것은 전체 그래프가 정확하지 않다는 것입니다. 고도 값은 실제보다 대략 30-40미터 더 높은 것으로 일관되게 보고되었습니다. 이 기사에서 더 자세히 논의할 것입니다.

트랙에 이러한 오류가 있음을 감지할 수 있으면 장치가 아마도 품질이 낮은 GPS일 것이라고 추론할 수 있습니다.

이것은 값싼 GPS 장치에서 일어날 수 있는 일입니다. 그리고 트랙에 이러한 오류가 있음을 감지할 수 있으면 장치가 아마도 저품질 GPS일 수 있으므로 이러한 장치에 공통적인 고도 오류뿐만 아니라 다른 오류도 있을 것으로 예상할 수 있다고 추론할 수 있습니다.

시작 권한 상승 오류

기본적으로 GPS 장치가 고도를 결정하기 위해 사용하는 두 가지 기술이 있습니다. "GPS 고도"(GPS 위성 시스템에 의해 장치에 보고됨) 및 "기압 고도"(기압 판독값을 기반으로 장치에서 계산됨). 어느 쪽도 완벽하지 않습니다.

GPS 고도 값에는 많은 작은 오류(일반적으로 +/- 10m 범위)가 있을 수 있으며, 이는 나중에 누적 고도 이득을 계산하기로 결정한 경우 특히 문제가 될 수 있습니다. 반면에 기압 고도는 고도뿐만 아니라 기상 조건에도 민감하므로 자체적으로 부정확성을 유발할 수 있습니다.

따라서 일부 장치는 기압 판독값을 사용하여 고도를 기록하지만 GPS 판독값을 사용하여 해당 값을 (재)보정하고 날씨(기압) 변화 등을 설명하는 데 도움이 되는 하이브리드 접근 방식을 사용합니다. 이러한 장치를 사용하면 트랙을 시작할 때 기압 고도가 완전히 틀릴 수 있지만 점점 더 많은 GPS 위성 데이터로 이를 재보정하면 고도 데이터의 신뢰성이 높아집니다. 따라서 이러한 장치에서 이전에 고도 그래프에서 관찰한 "가짜 언덕" 시작 오류 유형이 발생하는 것은 드문 일이 아닙니다.

지속적인 GPS 고도 부정확성

고도 보고의 일관된 오류를 설명하려면 초등학교 지리학으로 돌아가야 합니다. 지리 교사는 일반적으로 지구가 구가 아니라 타원체라고 설명합니다. 이것이 사실이라면 고도는 수학적으로 계산하기 쉬울 것입니다. 하지만 그렇지 않습니다. 지구는 불규칙하다. 실제로는 완벽한 타원체라기보다 타원체를 닮은 감자에 가깝 습니다. 즉, GIS 개발을 위해서는 지구상의 거의 모든 지점에 대한 상세한 고도 데이터 세트가 필요합니다. 측지학에서 이 참조 타원체(일명 데이텀)는 지구의 "진정한" 도형인 지오이드에 근사하는 수학적으로 정의된 표면입니다.

더욱이, 이러한 데이터조차도 지구 표면의 실제 모양에 대한 근사치 일 뿐임을 인식하는 것이 중요합니다. 일부는 세계의 특정 지역에서 더 잘 작동하고 다른 일부는 다른 지역에서 더 잘 작동합니다. 예를 들어 아래 이미지(내 Ruby 라이브러리를 사용하여 생성)는 지구가 가장 일반적으로 사용되는 타원체 모델(WGS84 데이텀) 중 하나와 어떻게 다른지 보여줍니다. 검은색 부분은 위의 지구의 일부를 나타내고 흰색은 이상적인 타원체인 아래의 지구의 부분을 나타냅니다(대륙 및 섬 윤곽은 빨간색으로 표시됨).

이 차트는 지리 공간 및 GIS 프로그래밍을 위해 Ruby 라이브러리에서 생성된 지구의 표면을 보여줍니다.

인도가 WGS84 타원체 아래에 있고 남쪽 부분이 절대 최소값(거의 -100미터!)이고 유럽이 그 위에 있음을 알 수 있습니다.

저품질 GPS 장치는 그러한 데이터를 사용하지 않기 때문에 완벽한 타원체를 가정하여 고도를 계산할 뿐입니다. 따라서 일관된 부정확성.

GPS 고도 오류 감지 및 수정

GPS 앱 개발에서 우리의 트랙을 기록한 장치에 이러한 유형의 오류가 있음을 감지하는 것은 지구 중력 모델 EGM2008 데이터 세트를 사용하여 수행할 수 있으며 때로는 "지오이드 기복" 데이터 세트라고도 합니다. EGM2008을 사용하여 실제 지구 표면과 이상적인 타원체 간의 차이를 근사화할 수 있습니다.

EGM2008을 사용하여 실제 지구 표면과 이상적인 타원체 간의 차이를 근사화할 수 있습니다.

그러나 GPS 트랙에 오류가 있는지 확인하려면 실제 고도라는 한 가지가 더 필요합니다. 이 목적에 도움이 될 수 있는 공개 데이터베이스는 SRTM(Shuttle Radar Topography Mission)입니다. SRTM은 미국의 경우 대략 30m(적도에서) 및 나머지 세계의 경우 90m마다의 해상도로 표고 값을 제공하는 래스터 기반 데이터베이스입니다. 예를 들어, 위 트랙의 포인트에 대한 SRTM 값을 계산할 때 다른 그래프(파란색 선)가 나타납니다.

GPS 앱 개발을 위한 훌륭한 도구는 GIS 고도 값의 SRTM 데이터베이스입니다.

여기서 약간의 성가심은 그래프의 거친 가장자리이지만 이것은 쉽게 부드럽게 됩니다. SRTM 자체는 어떤 경우에도 보간해야 하는 등거리 위치에 이산 지점만 제공하기 때문에 평활화를 통해 정밀도가 거의 손실되지 않습니다. 다음은 평활화된 SRTM 데이터를 나타내는 빨간색 선 오버레이가 있는 이전 그래프의 버전입니다.

이것은 SRTM 데이터베이스의 평활화된 GPS 고도 데이터 차트입니다.

이 모든 것은 우연히도 내 GPS Python 라이브러리를 사용하여 쉽게 수행할 수 있습니다.

  • srtm.py: SRTM(Shuttle Radar Topography Mission) 고도 데이터용 파이썬 파서
  • gpxpy: GPX 파일을 구문 분석하고 조작하기 위한 간단한 파이썬 라이브러리(GPX, GPS 교환 형식은 GPS 데이터용 경량 XML 데이터 형식임)

Ruby 사용자의 경우 SRTM 및 EGM2008 기복을 위한 Geoelevations.rb 파서 라이브러리도 있습니다.

이러한 이상 현상을 감지한 후 작업 중인 소프트웨어 유형에 따라 (a) 직접 오류를 자동 수정하거나 (b) 고도 데이터에서 부정확성이 감지되었음을 사용자에게 알릴 수 있습니다.

또한 이러한 GPS 고도 오류를 프로그래밍 방식으로 수정하는 데 사용할 수 있는 다양한 알고리즘이 있으므로 사용자에게 사용할 알고리즘을 선택할 수 있는 옵션을 제공할 수 있습니다(예: 사용자가 평활화된 SRTM 데이터만 사용하기를 원하는가? "있는 그대로" 또는 사용자가 장치에서 보고한 고도를 수정하는 데 도움이 되도록 SRTM 데이터를 사용하기를 원합니까?

트랙 평활화 및 이상값 제거

축구 선수가 GPS 장치를 착용하고 경기를 기록한다면 결과 트랙은 엉망이 될 것입니다. 경기장은 급격한 회전, 가속 및 감속으로 구성된 트랙으로 빽빽하게 채워질 것입니다.

다행스럽게도 사람들이 GPS를 사용하는 대부분의 경우에는 이와 동일한 패턴이 없습니다. GPS 트랙 라인(및 가속도)은 비교적 부드럽습니다. 이러한 경우 트랙의 불규칙한 점은 오류로 인한 것으로 추정될 수 있으므로 이러한 이상값은 평활화 기능을 사용하여 합리적으로 제거할 수 있습니다.

GIS 개발자로서 평활화는 점을 반복하고 인접 좌표 값을 기반으로 좌표를 변경 하여 가장 일반적으로 달성됩니다. 예를 들어 다음과 같은 알고리즘을 사용하여 모든 위도와 경도를 변경할 수 있습니다.

 points[n].latitude = points[n-1].latitude * 0.3 + points[n].latitude * .4 + points[n+1].latitude * .3 points[n].longitude = points[n-1].longitude * 0.3 + points[n].longitude * .4 + points[n+1].longitude * .3

계수가 클수록 현재 점의 수정된 위치에 해당하는 인접 점의 영향이 커집니다. 이 예에서 사용하는 계수(0.3, 0.4, 0.3)는 다소 임의적이지만 대부분의 경우 합이 1.0이 되기를 원할 것입니다. (예를 들어 더 정교한 접근 방식은 점 사이의 거리를 사용한 다음 점이 가까울수록 해당 계수가 커집니다.)

다음은 무작위 오류가 많은 트랙의 예입니다.

GIS 개발에서 가장 큰 GPS 추적 문제 중 하나는 무작위 오류가 많은 트랙입니다.

트랙이 경로를 잘 따르지 않고 날카롭고 들쭉날쭉한 회전이 많으며 때로는 예상 경로에서 완전히 벗어나는 방법에 유의하십시오.

몇 번의 "스무딩" 반복 후에 이 동일한 트랙이 다음과 같이 변환됩니다.

추적 오류를 완화한 후 이 프로그램의 GPS 추적은 여전히 ​​불완전하지만 더 좋습니다.

훨씬 나아졌지만 여전히 불완전한 것이 사실입니다. 트랙이 여전히 도로에서 벗어나는 장소(특히 경로 중앙 부근)가 여전히 있다는 점에 유의하십시오.

시도할 수 있는 다른 것들이 있습니다. 특정 지역 및 특정 GPS 응용 프로그램의 경우 OSM(OpenStreetMap) 데이터를 사용하여 올바른 경로를 추측한 다음 이 새 라인에 포인트를 "맞추기"를 시도할 수도 있습니다. 이는 종종 도움이 될 수 있지만 OSM 데이터에 두 개의 평행선(예: 고속도로 및 인근 도로) 또는 많은 가까운 경로가 포함된 경우와 같이 불완전할 수도 있습니다.

트랙이 하이킹 트랙이었다는 것을 추론할 수 있고 고속도로 또는 인근 경로에 스냅할 수 있는 옵션이 있다면 하이킹이 고속도로가 아닌 경로를 따라 진행되었다고 안전하게 가정할 수 있습니다.

이러한 경우 가능한 솔루션은 이 문서에서 더 자세히 설명하는 몇 가지 기술을 사용하여 활동 유형을 감지하는 것입니다. 예를 들어, 트랙이 하이킹 트랙이고 고속도로 또는 인근 경로에 스냅할 수 있는 옵션이 있다고 추론할 수 있다면 하이킹이 고속도로가 아닌 경로를 따라 진행되었다고 안전하게 가정할 수 있습니다.

또한 이 예는 표면 좌표(즉, 경도/위도)의 평활화를 보여주지만 평활화는 고도 또는 시간 데이터 또는 심박수 및 자전거 케이던스 데이터의 수차를 제거하는 데 동등하게 유효한 기술이 될 수 있습니다.

추가 이점 및 평활화 사용의 예는 다음과 같습니다.

  • 총 고도 이득을 계산합니다. 트랙의 총 고도 이득을 계산하려면 종종 작은 오류가 포함되기 때문에 오르막의 모든 작은 "점프"를 합산하는 것만으로는 충분하지 않습니다. 합산을 수행하기 전에 고도를 부드럽게 하면 종종 이 문제를 완화하는 데 도움이 될 수 있습니다.
  • 이상치 제거. "스무딩" 후 트랙에서 너무 멀리 떨어진 지점을 더 쉽게 감지할 수 있습니다. 그러면 종종 이상값으로 간주될 수 있으며 제거해야 하는지 묻는 메시지가 사용자에게 표시될 수 있습니다.

이 알고리즘이 부족한 한 가지 종류의 문제가 있습니다. 어떤 경우에는 GPS가 부드러운 경로를 기록하지만 경로는 특정 방향의 일정한 차이에 의해 "이동"됩니다. 이러한 경우 스무딩은 선을 더욱 매끄럽게 만들 수 있지만 이 이동 오류는 수정되지 않습니다.

우리가 설명한 단순 평활화 기술의 덜 명확하지만 중요한 추가 문제는 변환이 경로의 모든(또는 거의 모든) 지점을 수정한다는 것입니다. 오류가 아닐 수도 있는 지점도 포함됩니다. 이 단순한 접근 방식이 일반 GPS 사용자에게 합리적인 솔루션인 경향이 있지만 보다 정교한 평활화 알고리즘은 확실히 GIS 프로그래밍에 사용할 수 있습니다. 어떤 경우에는 사용자, 장치 및 응용 프로그램에 따라 평활화를 수행하지 않고 단순히 이상값을 제거하는 것이 더 나을 수도 있습니다.

최고 속도 감지

경로의 모든 지점에 대한 좌표와 타임스탬프가 있는 경우 트랙의 최대 속도를 감지하는 것은 매우 간단합니다. 점 사이의 속도를 계산하고 가장 높은 값을 찾으면 됩니다. 직관적인 것 같습니다.

그러나 우리는 저가형 GPS 장치를 다루고 있으며 데이터를 완전히 신뢰하지 않는다는 점을 기억하십시오. 이 데이터는 계산에 상당한 영향을 미칠 수 있습니다. 장치가 5미터마다 위치를 기록하고 한 지점에서 실수로 지점을 10미터 잘못 배치하면 트랙의 해당 부분이 이전보다 3배 빨라진 것처럼 보일 수 있습니다!

GIS 개발 세계에서 한 가지 일반적인 접근 방식은 포인트 사이의 모든 속도를 추출한 다음 제거된 5%가 대부분의 오류를 나타내기를 바라면서 상위 5%를 제거하는 것입니다(즉, 95번째 백분위수 사용). 그러나 이것은 명백히 비과학적이고 정확한 결과를 보장하지 않습니다. 이 기술을 실험하면서 백분위수에 대해 다른 값을 시도했고 일부는 한 GPS 장치에서 잘 작동하는 것도 있고 다른 장치에서는 잘 작동하는 것도 발견했습니다. 일부는 하이킹에 적합하고 다른 일부는 자전거에 적합합니다. 그러나 대부분의 경우 결과가 나에게 적합하지 않다고 느꼈 습니다.

많은 알고리즘을 시도한 후 저에게 효과가 있었던 것은 간단했습니다. 다음과 같이 속도뿐만 아니라 거리를 기준으로 극한값을 제거하기 위해 다른 필터를 추가하는 것입니다.

  1. 이웃 간의 거리를 기준으로 포인트를 정렬하고 상위 5%를 제거합니다.
  2. (선택 사항:) 트랙을 매끄럽게 합니다(수평 및/또는 수직으로).
  3. 이웃 간의 속도로 포인트를 정렬하고 상위 5%를 제거합니다.
이 알고리즘은 무작위 오류가 있는 저렴한 GPS 장치의 트랙에 대해서도 상당히 신뢰할 수 있는 결과를 산출합니다.

내 경험에 따르면 이 알고리즘은 무작위 오류가 있는 저렴한 GPS 장치의 트랙에 대해서도 상당히 신뢰할 수 있는 결과를 산출합니다.

활동 유형 추론

대부분의 경우 평균 속도는 활동 유형을 결정하는 데 충분합니다. 예를 들어 평균 속도가 5kmh이면 도보/산책로일 가능성이 있고 평균 속도가 30kmh이면 자전거 도로일 가능성이 있습니다.

그러나 평균 속도가 12kmh인 경우 사용자가 산악 자전거인지 달리기인지 확신할 수 없습니다. 이러한 경우 최대 속도는 두 가지 유형의 활동을 구분하는 데 도움이 될 수 있습니다. 특히, 우리는 주자가 평균의 두 배 이상의 속도에 도달하는 경우가 거의 없는 반면, 자전거 이용자는 정기적으로(예: 그다지 어렵지 않은 경로에서 내리막길을 내려가는 동안) 속도에 도달한다는 사실을 사용할 수 있습니다.

따라서 평균 속도 12kmh, 최고 속도 18kmh의 트랙은 달리는 동안 기록되었을 것이고, 반면에 평균 속도 12kmh, 최대 속도 30kmh의 트랙은 산악 자전거로 기록되었을 것입니다. (물론 이것이 안정적으로 작동하려면 계산된 최대 속도가 올바른지 확인해야 합니다.)

보이는 하늘의 비율: GPS 오류 감지를 위한 영리한 프록시

각 GPS 측정(즉, 위도, 경도 및 고도)의 정밀도는 기록 시점에 볼 수 있었던 위성의 수에 따라 크게 달라집니다. 따라서 각 녹음 시점에 얼마나 많은 위성이 "관찰 중"인지를 어떻게든 결정할 수 있다면 이를 해당 녹음의 정확도를 추정하는 방법으로 사용할 수 있습니다. 예를 들어, 필요한 모든 GPS 위성이 시야에 있다는 것을 어떻게든 알고 있다면 해당 GPS 데이터에 대해 높은 정확도를 가정할 수 있습니다. 반대로, 시야에 GPS 위성이 없다는 사실을 알게 되면 데이터에 오류가 발생하기 쉽다고 가정할 수 있습니다.

그러나 너무 흥분하기 전에 그러한 GIS 문제를 해결하려는 시도의 복잡성을 고려하십시오. 우선, 장치가 통신할 수 있는 GPS 위성 시스템을 알아야 합니다. 원래 미국 기반의 글로벌 포지셔닝 시스템, 유럽 갈릴레오 및 러시아 GLONASS 시스템이 있습니다. 일부 장치는 이러한 모든 위성 유형에서 작동하지만 대부분은 작동하지 않습니다. 그리고 많은 장치는 사용하는 시스템을 보고하지도 않습니다.

그러나 이러한 복잡성을 우회하고 보이는 위성 수의 대략적인 근사치를 달성하는 영리한 방법이 있습니다. 보이는 위성 수에 대한 프록시로 보이는 하늘의 백분율을 사용합니다 . 하늘이 덜 보인다는 것은 우리의 GPS가 더 적은 수의 위성으로 "보거나" 볼 수 있다는 것을 의미합니다. 그러나 지구상의 어느 지점에서나 보이는 하늘의 백분율을 어떻게 계산할 수 있습니까? 솔루션은 실제로 매우 간단합니다. 앞에서 설명한 SRTM 데이터를 사용하여 우리 주변의 수평선을 계산할 수 있습니다.

예를 들어, 이것은 SRTM을 사용하여 계산된 Triglav(슬로베니아의 최고봉) 아래 계곡에 있는 경우 지평선입니다.

GIS 코드를 사용하여 만든 Triglav 아래 계곡의 수평선 이미지.

(관심 있는 사람들을 위해 이 이미지를 만드는 코드는 여기에서 찾을 수 있습니다.)

이 이미지는 기본적으로 중심점에서 본 등거리 고도 그래프의 레이어로 구성됩니다. 파란색 영역이 어두울수록 고도 레이어가 더 멀리 떨어져 있습니다. 파란색 영역이 밝을수록 고도 레이어가 더 가깝습니다. 그려진 가장 높은 점은 수평선을 나타냅니다. GPS 위성이 하늘의 이 선 아래에 있는 경우 우리 장치는 위성을 통해 볼 수 없습니다(또는 볼 수 없음). (그러나 이미지가 평평한 직사각형으로 그려지더라도 실제로 수평선 아래 영역을 적절하게 계산하려면 구형 기하학에 대한 기본 지식이 필요합니다.)

이 방법은 깊은 협곡(GPS 수신이 좋지 않음)에서 산등성이(훨씬 더 나은 수신)로 갈 수 있는 산악 하이킹과 같은 상황에서 유용할 수 있습니다. 이것은 트랙의 어느 부분에서 오류가 발생하기 쉬운지를 나타내는 유용한 지표가 될 수 있습니다.

명심해야 할 또 다른 사항은 이것이 GPS 고도 오류를 감지하기 위한 은총알이 아니라는 것입니다. 우선, 지구의 대부분의 부분은 산이 아니며, 설령 산이 있더라도 고도를 과대 평가하는 것은 우리의 심리학입니다. 보이는 하늘의 실제 비율은 사람이 거주하는 대부분의 지역에서 75% 이상입니다 . 그러나 이 방법은 깊은 협곡(GPS 수신 상태가 좋지 않음)에서 산등성이(위성 수신이 훨씬 더 나을 수 있음)로 갈 수 있는 산악 하이킹과 같은 특정 상황에서 유용할 수 있습니다. 이 방법이 트랙의 오류 수를 절대적으로 측정하는 것은 아니지만 트랙에서 다른 부분보다 오류가 발생하기 쉬운 부분을 나타내는 유용한 지표가 될 수 있습니다.

마무리

저가형 GPS 장치에서 예상할 수 있는 몇 가지 일반적인 GPS 추적 오류 유형에 대해 논의했습니다. 우리는 그것들을 수정하기 위한 몇 가지 GIS 프로그래밍 기술 뿐만 아니라 그 원인에 대한 이해를 제공했습니다.

어떤 경우에는 높은 신뢰도로 트랙을 수정할 수 있습니다. 다른 경우에는 최소한 의심스러운 트랙 부분에 대해 사용자에게 경고할 수 있습니다. 확실하지 않은 경우 항공 이미지와 지도를 사용하여 사용자가 직접 트랙을 수정할 수 있는 옵션이 항상 있습니다. 우리의 확률적 추측은 더 높은 오류 확률을 감지한 트랙 부분을 강조 표시하는 데 도움이 될 수 있습니다.

많은 경우에 우리가 개괄한 기술은 만족스러운 "80% 솔루션"이 될 수 있으며, 저가형 GPS 장치 사용자에게 GPS 트랙의 정확도를 자동으로 합당한 수준으로 향상시킬 수 있습니다.