학위 기간 공식의 용어를 이해하십니까?


13

http://www.csgnetwork.com/degreelenllavcalc.html (페이지 소스보기) 과 같은 온라인 계산기 는 아래 공식을 사용하여 학위 당 미터를 얻습니다. 위도 위치에 따라 학위 당 거리가 어떻게 달라지는 지 일반적으로 이해하지만, 이것이 아래로 어떻게 해석되는지 이해하지 못합니다. 보다 구체적으로, 각 공식에서 상수, 3 개의 "cos"항 및 "lat"의 계수 (2, 4, 6; 3 및 5)는 어디에서 오는가?

    // Set up "Constants"
    m1 = 111132.92;     // latitude calculation term 1
    m2 = -559.82;       // latitude calculation term 2
    m3 = 1.175;         // latitude calculation term 3
    m4 = -0.0023;       // latitude calculation term 4
    p1 = 111412.84;     // longitude calculation term 1
    p2 = -93.5;         // longitude calculation term 2
    p3 = 0.118;         // longitude calculation term 3

    // Calculate the length of a degree of latitude and longitude in meters
    latlen = m1 + (m2 * Math.cos(2 * lat)) + (m3 * Math.cos(4 * lat)) +
            (m4 * Math.cos(6 * lat));
    longlen = (p1 * Math.cos(lat)) + (p2 * Math.cos(3 * lat)) +
                (p3 * Math.cos(5 * lat));

3
원에서 m = 0, 1, 2에 대한 cos (m * x) 형식의 용어는 ... 1, x, x ^ 2, x ^ 3과 같은 역할을합니다. Taylor의 경우 라인에 시리즈. 이런 종류의 확장을 볼 때 같은 방식으로 생각할 수 있습니다. 각 항은 함수에 더 높은 차수를 제공합니다. 일반적으로 이러한 삼각법 시리즈 는 무한합니다. 그러나 실제 사용에서는 근사 오차가 허용되는 즉시 잘릴 수 있습니다. 많은 구상 투영법이 그러한 시리즈를 사용하여 계산되기 때문에 이러한 기술 중 일부는 모든 GIS의 핵심에 있습니다.
whuber

위도 선 사이의 거리가 변하는 거리를 계산하는 데 매우 유용하며, x, y 격자가 오버레이 인 경우 메르카토르 맵에서 점을 그릴 위치를 결정하는 데 유용합니다.

팁 : 라디안을 사용하는 것을 잊지 마세요 lat(비록 결과 변수 latlenlonglen라디안 당 도당 미터 미터하지 않습니다). 당신이도를 사용하는 경우 lat, 당신도에 대한 음의 값으로 끝낼 수 있습니다 longlen.
Luke Hutchison

답변:


23

WGS84 회전 타원체의 주 반경은 a = 6378137 미터이고 역 평탄화는 f = 298.257223563입니다.

e2 = (2 - 1/f)/f = 0.0066943799901413165.

위도 파이 에서 자오 곡률 반경 은

M = a(1 - e2) / (1 - e2 sin(phi)^2)^(3/2)

평행선을 따른 곡률 반경은

N = a / (1 - e2 sin(phi)^2)^(1/2)

또한 평행의 반경은

r = N cos(phi)

이것들은 구면 반지름 a 와 같은 구면 값 MN 에 대한 곱셈 보정 이며 , e2 = 0 일 때 줄어 듭니다.

그림

북쪽 위도 45 도의 노란색 지점에서 반경 M의 파란색 디스크는 자오선 방향의 진동 원 ( "kissing")이며 반경 N의 빨간색 디스크는 평행 방향의 진동 원입니다. 디스크는이 시점에서 "아래쪽"방향을 포함합니다. 이 수치는 지구의 평탄화를 2 배로 과장합니다.

곡률 반경 정도의 길이를 결정 : 원은 반경 가지는 경우 R을 번 정도의 길이 PI * R / 180 대입 길이 2 파이 R 커버 (360 개)도 그 주위, 어디서 왔는지 MR 에 대한 R은 - 즉, Mr 에 pi / 180을 곱 하면 차수 길이에 대한 간단한 정확한 공식이 제공 됩니다.

주어진 af의 값 ( 많은 곳에서 찾을 수 있음 )과 회전 타원체로 회전 타원체에 대한 설명을 기반으로하는이 공식 은 질문의 계산에 따라 0.6 파트 당 백만 (몇 센티미터), 이는 문제에서 가장 작은 계수의 크기와 거의 같은 크기이며 동의 함을 나타냅니다. (근사값은 항상 약간 낮습니다.) 그림에서 위도 길이의 상대 오차는 검은 색이고 경도 오차는 빨간색으로 표시됩니다.

그림

따라서 우리는 문제의 계산이 위에서 주어진 공식에 대한 근사치 (잘린 삼각법 시리즈를 통한)임을 이해할 수 있습니다.


계수는 위도의 함수로 Mr에 대한 푸리에 코사인 시리즈에서 계산할 수 있습니다 . 그것들은 e2 의 타원 함수 측면에서 주어졌으며 , 여기서 재현하기에는 너무 지저분합니다. WGS84 스페 로이드의 경우 내 계산은

  m1 = 111132.95255
  m2 = -559.84957
  m3 = 1.17514
  m4 = -0.00230
  p1 = 111412.87733
  p2 = -93.50412
  p3 = 0.11774
  p4 = -0.000165

( p4수식을 입력하는 방법을 추측 할 수 있습니다 . :) 코드의 매개 변수에 대한 이러한 값의 근접성은이 해석의 정확성을 증명합니다. 이 개선 된 근사값은 모든 곳에서 10 억분의 1보다 훨씬 더 정확합니다.


이 답변을 테스트 R하기 위해 두 가지 계산을 수행하는 코드를 실행했습니다.

#
# Radii of meridians and parallels on a spheroid.  Defaults to WGS84 meters.
# Input is latitude (in degrees).
#
radii <- function(phi, a=6378137, e2=0.0066943799901413165) {
  u <- 1 - e2 * sin(phi)^2
  return(cbind(M=(1-e2)/u, r=cos(phi)) * (a / sqrt(u))) 
}
#
# Approximate calculation.  Same interface (but no options).
#
m.per.deg <- function(lat) {
  m1 = 111132.92;     # latitude calculation term 1
  m2 = -559.82;       # latitude calculation term 2
  m3 = 1.175;         # latitude calculation term 3
  m4 = -0.0023;       # latitude calculation term 4
  p1 = 111412.84;     # longitude calculation term 1
  p2 = -93.5;         # longitude calculation term 2
  p3 = 0.118;         # longitude calculation term 3

  latlen = m1 + m2 * cos(2 * lat) + m3 * cos(4 * lat) + m4 * cos(6 * lat);
  longlen = p1 * cos(lat) + p2 * cos(3 * lat) + p3 * cos(5 * lat);
  return(cbind(M.approx=latlen, r.approx=longlen))
}
#
# Compute the error of the approximation `m.per.deg` compared to the 
# correct formula and plot it as a function of latitude.
#
phi <- pi / 180 * seq(0, 90, 10)
names(phi) <- phi * 180 / pi
matplot(phi * 180 / pi, 10^6 * ((m.per.deg(phi) - radii(phi) * pi / 180) / 
       (radii(phi) * pi / 180)),
        xlab="Latitude (degrees)", ylab="Relative error * 10^6",lwd=2, type="l")

radii사용하여 정확한 계산을 사용하여도 단위의 테이블을 인쇄 할 수 있습니다.

zapsmall(radii(phi) * pi / 180)

출력은 미터 단위이며 다음과 같습니다 (일부 라인이 제거됨).

          M         r
0  110574.3 111319.49
10 110607.8 109639.36
20 110704.3 104647.09
...
80 111659.9  19393.49
90 111694.0      0.00

참고 문헌

LM Bugayevskiy 및 JP Snyder, 맵 프로젝션-참조 매뉴얼. Taylor & Francis, 1995. (부록 2 및 부록 4)

JP 스나이더, 맵 프로젝션-작업 매뉴얼. USGS Professional Paper 1395, 1987. (제 3 장)


왜 간단한 공식 쌍에 대한 복잡한 근사법이 사용되는지 모르겠습니다.
whuber

얼마나 철저하고 훌륭한 대답입니까! 맞습니다. 이제이 수학을 이해하기 위해 솔질하면됩니다. :)
Brent

@ 브렌트 나는 당신이 수학을 이해하는 데 도움이되는 그림을 추가했습니다.
whuber

0

즉, 상기의 하버 사인 화학식 홀수 방식으로 표현하지만,.


Haversine 공식이 아닙니다! 이것은 회전 타원체에 사용 된 섭동과 관련이 있습니다. 그것은 임의의 점 쌍 사이의 거리조차 찾지 못하는데, 이것은 구체에서 Haversine 공식이 사용되는 것입니다.
whuber

1
다시 말해, Haversine 공식은 원거리를 계산하며이 공식은 더 정확한 타원체 거리를 계산하는 동요?
Brent
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.