지구를 지구로 근사하는 것이 얼마나 정확합니까?


63

지구를 구로 근사 할 때 어떤 수준의 오류가 발생합니까? 구체적으로, 포인트의 위치 및 예를 들어 포인트 간의 큰 원거리를 다룰 때.

타원체와 비교하여 평균 및 최악의 오류에 대한 연구가 있습니까? 더 쉬운 계산을 위해 구체와 함께 가면 얼마나 많은 정확도가 희생되는지 궁금합니다.

필자의 특정 시나리오는 WGS84 좌표가 변환없이 완벽한 구 ( IUGG에 의해 정의 된 평균 반경을 가진)의 좌표 인 것처럼 직접 매핑하는 것 입니다.


구형 모델에 관심이 있거나 타원체 모델에 관심이 있습니까? 구와 타원 사이에서 오차의 양이 크게 다를 것이라고 생각합니다.
Jay Laura

2
이 회신 에 관련 분석이 나타납니다 . 그러나 질문에 대한 답을 얻으려면 지구가 구로 근사되는 방식 을 지정해야 합니다 . 많은 근사값이 사용되고 있습니다. 그것들은 모두 함수 f '= u (f, l)와 l'= v (f, l)을 제공하는 것과 관련이 있습니다. 여기서 (f, l)은 구의 지리적 좌표이고 (f ', l')는 타원체. Bugayevskiy & Snyder, Map Projections, A Reference Manual의 1.7 절 ( "구면 표면의 회전 타원체 변형")을 참조하십시오 . 테일러 & 프랜시스 [1995].
whuber

이는 Google / Bing EPSG 900913 프로젝션 (WGS84 좌표를 사용하지만 마치 구체에있는 프로젝트)에 대한 초기 토론과 유사하며 오류는 아마도 개발자의 압력을받을 때까지 EPSG가 프로젝션을 거부 한 것으로 보입니다. 당신을 지나치게 산만하게하고 싶지 않다면,이 토론에 대한 후속 조치는 whuber가 제공하는 훌륭한 링크의 정보에 폭을 더할 수 있습니다.
MappaGnosis

@ Jzl5325 : 그렇습니다. 타원형이 아닌 엄격한 구를 의미했기 때문에 조금 더 많은 맥락을 제공하기 위해 질문을 편집했습니다.
Jeff Bridgman

1
: 난 당신이 읽기해야한다고 생각 en.wikipedia.org/wiki/Haversine_formula
longtsing

답변:


83

요컨대, 해당 지점따라 거리가 최대 22km 또는 0.3 %까지 오차가있을 수 있습니다. 그건:

  • 오차는 (i) (잔여) 오차, 계산 된 두 거리 (킬로미터)의 차이와 동일한 차이, (ii) 상대 오차를 "올바른"(타원형) 값. 작업하기 편리한 숫자를 만들기 위해 이러한 비율에 1000을 곱하여 상대 오차를 천 단위 로 표현합니다 .

  • 오류는 엔드 포인트에 따라 다릅니다. 타원체와 구의 회전 대칭과 그 양측 (남북 및 동서) 대칭으로 인해 북반구 (0에서 90 사이의 위도)의 자오선 (경도 0)을 따라 끝점 중 하나를 배치 할 수 있습니다. ) 및 동반구의 다른 끝점 (0과 180 사이의 경도)입니다.

이러한 종속성을 살펴보기 위해 위도 x -90에서 90도 사이의 함수로 (lat, lon) = (mu, 0) 및 (x, lambda)에서 끝점 사이의 오류를 표시했습니다. (모든 점은 명목상 타원체 높이가 0입니다.) 그림에서 행은 {0, 22.5, 45, 67.5}도에서 mu 값에 해당하고 {0, 45, 90, 180}에서 람다 값에 해당하는 열에 해당합니다. 도. 이것은 우리에게 가능성의 스펙트럼을 잘 보여줍니다. 예상 한 바와 같이, 최대 크기는 대략 주축 (약 6700km) 또는 약 22km의 평탄화 (약 1/300)입니다.

오류

잔차 오류

상대 오차

상대 오차

등고선 플롯

오류를 시각화하는 다른 방법은 한 끝점을 수정하고 다른 끝점을 변경하여 발생하는 오류를 윤곽을 그리는 것입니다. 예를 들어, 첫 번째 끝 점이 북쪽 위도 45도, 경도 0 도인 등고선도입니다. 이전과 마찬가지로 오류 값은 킬로미터이며 양수 오류는 구 계산이 너무 큼을 의미합니다.

등고선 플롯

지구를 감싸면 읽기가 더 쉬울 수 있습니다.

글로브 플롯

프랑스 남부의 빨간색 점은 첫 번째 끝점의 위치를 ​​보여줍니다.

기록 을 위해 계산에 사용되는 Mathematica 8 코드는 다음과 같습니다.

WGS84[x_, y_] := GeoDistance @@ (GeoPosition[Append[#, 0], "WGS84"] & /@ {x, y});
sphere[x_, y_] := GeoDistance @@
   (GeoPosition[{GeodesyData["WGS84", {"ReducedLatitude", #[[1]]}], #[[2]], 0}, "WGS84"] & /@ {x, y});

그리고 플로팅 명령 중 하나 :

With[{mu = 45}, ContourPlot[(sphere[{mu, 0}, {x, y}] - WGS84[{mu, 0}, {x, y}]) / 1000, 
                   {y, 0, 180}, {x, -90, 90}, ContourLabels -> True]]


21

나는 최근 에이 질문을 탐구했다. 사람들이 알고 싶어

  1. 어떤 구형 반경을 사용해야합니까?
  2. 결과 오류는 무엇입니까?

근사 품질에 대한 합리적인 척도는 원거리에서의 최대 절대 상대 오차입니다.

err = |s_sphere - s_ellipsoid| / s_ellipsoid

가능한 모든 포인트 쌍에 대해 최대 값을 평가합니다.

평탄화 f가 작은 경우, err을 최소화하는 구면 반경은 (a + b) / 2에 매우 가까우며 결과 오류는 약

err = 3*f/2 = 0.5% (for WGS84)

(10 ^ 6 무작위로 선택된 포인트 쌍으로 평가). 구면 반경으로 (2 * a + b) / 3를 사용하는 것이 좋습니다. 이로 인해 약간 더 큰 오류가 발생합니다 (err = 5 * f / 3 = 0.56 % (WGS84의 경우)).

구형 근사치에 의해 길이가 가장 과소 평가 된 측지선은 극 근처에 있습니다 (예 : (89.1,0) ~ (89.1,180)). 구형 근사로 가장 긴 길이를 가진 측지선은 적도 근처에서 자오선이 있습니다 (예 : (-0.1,0) ~ (0.1,0)).

부록 :이 문제에 접근하는 또 다른 방법이 있습니다.

타원체에서 균일하게 분포 된 점 쌍을 선택하십시오. 타원체 거리 s단위 구면 t 의 거리를 측정합니다 . 점 쌍에 대해 s / t 는 동등한 구형 반경을 제공합니다. 모든 점 쌍에 대해이 수량의 평균을 구하면 평균 구면 반경이 같습니다. 평균을 정확히 어떻게 해야하는지에 대한 의문이 있습니다. 그러나 내가 시도한 모든 선택

1. <s>/<t>
2. <s/t>
3. sqrt(<s^2>/<t^2>)
4. <s^2>/<s*t>
5. <s^2/t>/<s>

모두 IUGG 권장 평균 반경 인 R 1 = (2 a + b ) / 3 의 몇 미터 내에 나왔습니다. 따라서이 값은 구면 거리 계산에서 RMS 오류를 최소화합니다. (그러나 ( a + b ) / 2 와 비교할 때 최대 상대 오차가 약간 더 커집니다 . 위를 참조하십시오.) R 1 이 다른 목적 (면적 계산 등)으로 사용될 가능성이 있다고 가정 할만한 이유가 있습니다. 거리 계산을 위해이 선택을 고수하십시오.

결론 :

  • 거리 계산에서 1 % 오차를 견딜 수있는 모든 종류의 체계적인 작업에는 반경 R 1 의 구를 사용하십시오 . 최대 상대 오차는 0.56 %입니다. 구로 지구를 근사화 할 때이 값을 일관되게 사용하십시오.
  • 타원체 측지 문제를 해결하려면 추가 정확도가 필요합니다.
  • 엔벨로프 계산의 경우 R 1 또는 6400km 또는 20000 / pi km 또는 a를 사용하십시오 . 이로 인해 약 1 %의 최대 상대 오차가 발생합니다.

다른 부록 : 큰 원 계산에서 위도 를 μ = tan -1 ((1- f ) 3/2 tanφ) (불량한 남자의 정류 위도)를 사용하여 큰 원 거리에서 약간의 정확도를 누를 수 있습니다 . 이렇게하면 최대 상대 오차가 0.56 %에서 0.11 %로 감소합니다 ( 구의 반경으로 R 1 사용 ). 타원체 측지 거리를 직접 계산하는 것과는 반대로이 방법을 사용할 가치가 있는지는 확실하지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.