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


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.