डिग्री फार्मूले की लंबाई में शर्तों को समझना?


13

ऑनलाइन कैलकुलेटर जैसे http://www.csgnetwork.com/degreelenllavcalc.html (दृश्य पृष्ठ स्रोत) प्रति सूत्र मीटर प्राप्त करने के लिए नीचे दिए गए सूत्रों का उपयोग करते हैं। मैं सामान्य रूप से समझता हूं कि अक्षांश स्थान के आधार पर प्रति डिग्री की दूरी कैसे बदलती है, लेकिन मुझे समझ में नहीं आता है कि नीचे कैसे अनुवाद होता है। अधिक विशेष रूप से, कहां स्थिरांक, प्रत्येक सूत्र में 3 "कॉस" शब्द, और "लाट" के लिए गुणांक (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
एक वृत्त पर, मी = 0, 1, 2, ... के लिए फॉर्म कॉस (m * x) की शर्तें ... एक ही भूमिका निभाते हैं 1, x, x ^ 2, x ^ 3, ... टेलर के लिए करते हैं। लाइन पर श्रृंखला। जब आप इस प्रकार का विस्तार देखते हैं तो आप इसे उसी तरह से सोच सकते हैं: प्रत्येक शब्द एक फ़ंक्शन को उच्च-क्रम सन्निकटन देता है। आमतौर पर इस तरह के त्रिकोणमितीय श्रृंखला अनंत हैं; लेकिन व्यावहारिक उपयोग में सन्निकटन की त्रुटि स्वीकार्य होते ही उन्हें छोटा किया जा सकता है। इस तरह की कुछ तकनीक हर जीआईएस के दायरे में आती है क्योंकि इस तरह की श्रृंखला का उपयोग करके कई गोलाकार अनुमानों की गणना की जाती है।
whuber

यह उन दूरी की गणना करने के लिए बहुत उपयोगी है जहां अक्षांशों की रेखाओं के बीच की दूरी भिन्न होती है, यह भी निर्धारित करने में मदद करने के लिए उपयोगी है कि एक मर्सटर मैप पर बिंदुओं की साजिश करने के लिए यदि आपके पास एक ओवरले के रूप में x, y ग्रिड है

युक्ति: रेडियन का उपयोग करना न भूलें lat(भले ही परिणामस्वरूप चर प्रति डिग्री मीटर में हों latlenऔर longlenप्रति मीटर नहीं)। यदि आप के लिए डिग्री का उपयोग करते हैं lat, तो आप के लिए एक नकारात्मक मूल्य के साथ भी समाप्त हो सकते हैं longlen
ल्यूक हचिसन

जवाबों:


23

WGS84 उपगोल के प्रमुख त्रिज्या है एक = 6,378,137 मीटर और इसके उलटा सपाट है = २९८.२५,७२,२३,५६३, जिस कारण से वर्ग सनक है

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

अक्षांश phi पर वक्रता का गुणात्मक त्रिज्या है

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

और समानांतर के साथ वक्रता की त्रिज्या है

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

इसके अलावा, समानांतर की त्रिज्या है

r = N cos(phi)

ये गोलाकार मूल्यों के गुणक सुधार कर रहे हैं एम और एन , जो दोनों के गोलाकार त्रिज्या के बराबर एक है, जो है क्या वे जब e2 = 0 को कम करते हैं।

आकृति

45 डिग्री उत्तरी अक्षांश पर स्थित पीले बिंदु पर, त्रिज्या एम के ब्लू डिस्क osculating ( "चुंबन") मध्याह्न और त्रिज्या एन के लाल डिस्क की दिशा में चक्र समानांतर की दिशा में osculating चक्र है: दोनों इस बिंदु पर डिस्क में "डाउन" दिशा होती है। यह आंकड़ा परिमाण के दो आदेशों द्वारा पृथ्वी के समतल को अतिरंजित करता है।

वक्रता की त्रिज्या डिग्री की लंबाई निर्धारित: जब एक चक्र की परिधि है आर , लंबाई 2 pi r कवर 360 डिग्री की अपनी परिधि, जहां से एक डिग्री की लंबाई अनुकरणीय * आर / 180 स्थानापन्न है एम और आर के लिए आर - - अर्थात, पी / 180 से M और r को गुणा करना - डिग्री की लंबाई के लिए सरल सटीक सूत्र देता है ।

ये सूत्र - जो पूरी तरह से a और f (जो कई जगह मिल सकते हैं ) के दिए गए मूल्यों पर आधारित हैं और घूमने के एक दीर्घवृत्त के रूप में गोलाकार का वर्णन - प्रति 0.6 0.6 के भीतर प्रश्न में गणना से सहमत हैं मिलियन (कुछ सेंटीमीटर), जो प्रश्न में सबसे छोटे गुणांक के परिमाण का लगभग एक ही क्रम है, जिससे वे सहमत होते हैं। (सन्निकटन हमेशा थोड़ा कम होता है।) कथानक में अक्षांश की एक डिग्री की लंबाई में सापेक्ष त्रुटि काली होती है और देशांतर का रंग लाल होता है:

आकृति

तदनुसार, हम ऊपर दिए गए सूत्रों के अनुसार अनुमानों (छंटनी किए गए त्रिकोणमितीय श्रृंखला के माध्यम से) होने के लिए प्रश्न को समझ सकते हैं।


गुणांक एम और आर के लिए फूरियर कोसाइन श्रृंखला से अक्षांश के कार्यों के रूप में गणना की जा सकती है । वे 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सूत्र में प्रवेश होता है। :) कोड में मापदंडों के लिए इन मूल्यों की पराकाष्ठा इस व्याख्या की शुद्धता पर निर्भर करती है। यह सुधरा हुआ सन्निकटन हर जगह प्रति अरब एक भाग से बहुत बेहतर है।


इस उत्तर का परीक्षण करने के लिए मैंने 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 और जेपी स्नाइडर, मानचित्र अनुमान - एक संदर्भ मैनुअल। टेलर एंड फ्रांसिस, 1995. (परिशिष्ट 2 और परिशिष्ट 4)

जेपी स्नाइडर, मानचित्र अनुमान - एक कामकाजी मैनुअल। यूएसजीएस प्रोफेशनल पेपर 1395, 1987. (अध्याय 3)


मुझे नहीं पता कि सूत्रों की एक सरल जोड़ी के लिए इस तरह के एक जटिल सन्निकटन का उपयोग कभी क्यों किया जाएगा ...।
whuber

क्या एक अच्छी तरह से, उत्कृष्ट जवाब! बात तो सही है; अब मुझे इसे समझने के लिए बस इस गणित पर ब्रश करने की जरूरत है। :)
ब्रेंट

@Brent मैंने गणित को समझने में आपकी मदद करने के लिए एक आंकड़ा जोड़ा है।
whuber

0

हालांकि, यह हैवरसाइन सूत्र है , हालांकि एक अजीब तरीके से व्यक्त किया गया है।


यह स्पष्ट रूप से हावरसाइन सूत्र नहीं है! यह गोलाकार के लिए उपयोग किया जाता है। यह मनमाने ढंग से जोड़े के बीच की दूरी को भी नहीं पाता है, जो कि हैवेर्सिन फार्मूला (गोले पर) के लिए प्रयोग किया जाता है।
whuber

1
दूसरे शब्दों में, हैवरसाइन सूत्र महान-वृत्त दूरी की गणना करता है, और यह सूत्र इसका एक गड़बड़ी है जो अधिक सटीक दीर्घवृत्त दूरी की गणना करता है?
ब्रेंट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.