Derece Uzunluğu formülündeki terimleri anlama?


13

Http://www.csgnetwork.com/degreelenllavcalc.html (sayfa kaynağını görüntüle) gibi çevrimiçi hesap makineleri , derece başına metre almak için aşağıdaki formülleri kullanır. Genel olarak derece başına mesafenin enlem konumuna bağlı olarak nasıl değiştiğini anlıyorum, ancak bunun aşağıya nasıl dönüştüğünü anlamıyorum. Daha spesifik olarak, sabitler, her formüldeki 3 "cos" terimi ve "lat" için katsayılar (2, 4, 6; 3 ve 5) nereden geliyor?

    // 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
Bir çemberde, m = 0, 1, 2, ... için cos (m * x) formunun terimleri, Taylor için 1, x, x ^ 2, x ^ 3, ... monomials ile aynı rolü oynar. serisi on line. Bu tür bir genişleme gördüğünüzde aynı şekilde düşünebilirsiniz: her terim bir işleve daha üst düzey bir yaklaşım verir. Genellikle bu tür trigonometrik seriler sonsuzdur; ancak pratik kullanımda, yaklaştırma hatası kabul edilir edilmez kesilebilirler. Böyle bir teknoloji, her CBS'nin başlığı altında yer alır, çünkü birçok küresel projeksiyon bu seri kullanılarak hesaplanır.
whuber

Bu, enlem çizgileri arasındaki mesafenin değiştiği mesafeleri hesaplamak için çok yararlıdır, ayrıca bir bindirme olarak x, y ızgarası varsa bir mercator haritasındaki noktaların nerede

İpucu: için radyan kullanmayı unutmayın lat(sonuçta ortaya çıkan değişkenler latlenve longlenderece başına metre, radyan başına metre değil). İçin derece kullanırsanız lat, için negatif bir değer de elde edebilirsiniz longlen.
Luke Hutchison

Yanıtlar:


23

WGS84 küresinin ana yarıçapı a = 6378137 metredir ve ters düzleşmesi f = 298.257223563'tür, bu durumda kare eksantriklik

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

Enlem eğrilik yarıçapı meridyen phi olduğu

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

ve paralel boyunca eğrilik yarıçapı

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

Ayrıca, paralelin yarıçapı

r = N cos(phi)

Bunlar , her ikisi de küresel yarıçapa a eşit olan M ve N küresel değerlerine çarpımsal düzeltmelerdir , bu da e2 = 0 olduğunda azaldığı şeydir.

şekil

45 derece kuzey enlemindeki sarı noktada, M yarıçapının mavi diski meridyen yönünde salınımlı ("öpüşen") çemberdir ve N yarıçapının kırmızı diski paralel yönde salınımlı dairedir: her ikisi de diskler bu noktada "aşağı" yönü içerir. Bu rakam, dünyanın düzleşmesini iki büyüklükte abartıyor.

Eğrilik yarıçapları derece uzunluklarının belirlenmesi: Bir daire çapındaki sahip olduğunda R , bir derece uzunluğu pi *, R / 180. İkameci uzunluğu 2 pi R kapakların 360 derece arasında olan çevre uzunluğu olan nereden M ve R için R - - yani M ve r'nin pi / 180 ile çarpılması - derece uzunlukları için basit kesin formüller verir .

Verilen değerlere sadece dayanmaktadır - Bu formüller bir ve f (bulunabilir birçok yerde ) ve dönme bir elips olarak sfero açıklaması - başına 0,6 parçalar içinde söz konusu hesaplamalar ile kabul Milyon (birkaç santimetre), ki bu da sorudaki en küçük katsayıların büyüklüğü ile aynıdır, bu da aynı fikirde olduklarını gösterir. (Yaklaşıklık her zaman biraz düşüktür.) Grafikte, enlem derecesinin uzunluğundaki göreceli hata siyahtır ve boylamın kesiti kırmızıdır:

şekil

Buna göre, sorudaki hesaplamaları, yukarıda verilen formüllere (kesilmiş trigonometrik seri yoluyla) yakınlaştırma olarak anlayabiliriz.


Katsayılar , enlemin fonksiyonları olarak M ve r için Fourier kosinüs serisinden hesaplanabilir . Burada çoğalmak için çok dağınık olacak olan e2'nin eliptik fonksiyonları açısından verilmiştir . WGS84 küresi için hesaplamalarım

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

( p4Formüle nasıl girdiğini tahmin edebilirsiniz . :) Koddaki parametrelere bu değerlerin yakınlığı, bu yorumun doğruluğunu kanıtlar. Bu iyileştirilmiş yaklaşım, her yerde milyar başına bir bölümden çok daha iyi bir doğrudur.


Bu cevabı test Retmek için her iki hesaplamayı da yapmak için kod yürüttüm:

#
# 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")

İle kesin hesaplama radii, derecelerde uzunluk tablolarını yazdırmak için kullanılabilir.

zapsmall(radii(phi) * pi / 180)

Çıktı metre cinsindendir ve şöyle görünür (bazı satırlar kaldırıldığında):

          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

Referanslar

LM Bugayevskiy ve JP Snyder, Harita Projeksiyonları - Bir Referans Kılavuzu. Taylor ve Francis, 1995. (Ek 2 ve Ek 4)

JP Snyder, Harita Projeksiyonları - Bir Çalışma Kılavuzu. USGS Professional Paper 1395, 1987. (Bölüm 3)


Basit bir formül çiftine bu kadar karmaşık bir yaklaşımın neden kullanılacağını bilmiyorum.
whuber

Ne kapsamlı, mükemmel bir cevap! Doğru görünüyor; şimdi anlamak için sadece bu matematiği fırçalamam gerekiyor. :)
Brent

@Brent Matematiği anlamanıza yardımcı olacak bir rakam ekledim.
whuber

0

Garip bir şekilde ifade edilmesine rağmen Haversine formülü budur .


Açıkça Haversine formülü değil! Bu, sferoid için kullanılan bir düzensizliktir. Hatta Haversine formülünün (küre üzerinde) kullanıldığı rastgele noktalar arasında bile mesafe bulmuyor.
whuber

1
Başka bir deyişle, Haversine formülü büyük daire mesafesini hesaplar ve bu formül daha doğru elipsoid mesafeyi hesaplayan bir düzensizliktir?
Brent
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.