चूहों के क्षेत्र की गणना करने का अधिक सटीक तरीका


11

अपने दैनिक कार्य में, मुझे लगातार 30 आर्क सेकंड रिज़ॉल्यूशन पर भौगोलिक प्रक्षेपण में वैश्विक रेखापुंज डेटासेट के क्षेत्रों की गणना करने के लिए कहा जाता है। ये डेटासेट आम तौर पर कंबाइन ऑपरेशन (एक विशिष्ट उदाहरण देश की परत के साथ संयुक्त एक वनस्पति वर्ग) का परिणाम है। ऐसा करने के लिए, हमारी इकाई ने 30 सेमी सेकंड में भौगोलिक प्रक्षेपण में प्रत्येक पिक्सेल के क्षेत्र के साथ एक रास्टर डेटासेट बनाया। इस क्षेत्र ग्रिड के साथ, प्रत्येक वर्ग के लिए क्षेत्रों को योग करने के लिए एक जोनलस्टैट किया जाता है। चूंकि मुझे यकीन नहीं है कि यह क्षेत्र ग्रिड कैसे बनाया गया था, इसलिए मैं हमेशा सोचता था कि क्या यह दृष्टिकोण बराबर क्षेत्र के प्रक्षेपण में रेखापुंज को निरस्त करने के लिए अधिक सटीक है (साधारण परीक्षणों से दोनों विधियों के परिणाम समान हैं)। क्या किसी ने ऐसी ही स्थिति का अनुभव किया है?


@radouxju आपको लगता है कि Bugayevskiy और स्नाइडर मैनुअल का हवाला देते हुए मुझे लगता है कि न तो विश्वसनीय है और न ही आधिकारिक है। (इसके विपरीत, यह दोनों है - विशेष रूप से यह विचार करते हुए कि यह अमेरिका और रूस में विश्व-मान्यता प्राप्त अधिकारियों के सहयोग से हुआ है!) उस संशयवाद का आधार क्या है? और क्या आप के लिए देख रहे हो जाएगा? ध्यान दें, भी, कि ये गणना पूरी तरह से सही हैं। सटीक केवल उस परिशुद्धता से सीमित होती है जिसमें दीर्घवृत्तीय मानदंड दिए गए हैं और आपकी गणना की सटीकता से: कोई उच्च परिशुद्धता संभव नहीं है।
whuber

@ जब मैं सुझाव दे रहा था कि आपका उद्धरण विश्वसनीय नहीं था। इनाम के साथ मेरी टिप्पणी आपके द्वारा उत्तर देने से पहले की गई थी, और जब मैं आखिरी बार साइट पर आया था तो इनाम देने के लिए बहुत जल्दी था।
राडौक्सजू

@radouxju आपकी व्याख्या के लिए धन्यवाद! जवाब पोस्ट करने के घंटों बाद तक मुझे इनाम के बारे में पता नहीं चला।
whuber

जवाबों:


14

समांतर चतुर्भुज (अक्षांशों की रेखाएं) और मेरिडियन (देशांतर की रेखाएं) से बंधे क्षेत्र के लिए एक अपेक्षाकृत सरल सटीक सूत्र है । यह दीर्घवृत्त के मूल गुणों (प्रमुख अक्ष a और लघु अक्ष b ) के मूल गुणों का उपयोग करके सीधे निकाला जा सकता है जो दीर्घवृत्त का उत्पादन करने के लिए अपनी छोटी धुरी के चारों ओर घुमाया जाता है। (व्युत्पत्ति एक अच्छा अभिन्न कैलकुलस व्यायाम बनाती है, लेकिन मेरा मानना ​​है कि इस साइट पर बहुत कम रुचि होगी।)

मूल चरणों में गणना को तोड़कर सूत्र को सरल बनाया गया है।

सबसे पहले, पूर्व और पश्चिम की सीमाओं के बीच की दूरी - मध्याह्न l0 और l1 - q = (l1 - l0) / 360 (जब मेरिडियन को डिग्री में मापा जाता है) या 1 = के बराबर पूरे वृत्त का एक अंश होता है। l1 - l0) / (2 * pi) (जब मेरिडियन को रेडियन में मापा जाता है)। समानताएं f0 और f1 के बीच स्थित पूरे स्लाइस का क्षेत्रफल ज्ञात करें और इसे q से गुणा करें ।

दूसरा, हम भूमध्य रेखा (f0 = 0 पर) द्वारा विभाजित दीर्घवृत्त के क्षैतिज स्लाइस के क्षेत्र के लिए एक सूत्र का उपयोग करेंगे और अक्षांश f (= f1) पर एक समानांतर होगा। किसी भी दो अक्षांशों f0 और f1 (एक ही गोलार्ध पर पड़े) के बीच के स्लाइस का क्षेत्रफल बड़े और छोटे क्षेत्र के बीच का अंतर होगा।

अंत में, बशर्ते कि मॉडल वास्तव में एक दीर्घवृत्त (और एक क्षेत्र नहीं है), भूमध्य रेखा के बीच इस तरह के एक स्लाइस का क्षेत्र अक्षांश एफ पर समानांतर द्वारा दिया गया है

area(f) = pi * b^2 * (log(zp/zm) / (2*e) + sin(f) / (zp*zm))

जहाँ aऔर bक्रमशः उत्पन्न होने वाले दीर्घवृत्त के प्रमुख और लघु अक्षों की लंबाई होती है,

e = sqrt(1 - (b/a)^2)

इसकी विलक्षणता है, और

zm = 1 - e*sin(f); zp = 1 + e*sin(f)

(यह जियोडेसिक्स के साथ गणना करने की तुलना में बहुत सरल है, जो वैसे भी केवल समानताएं हैं। कृपया @cffk द्वारा टिप्पणी को इस तरह से गणना करने के तरीके के बारे में ध्यान दें जो log(zp/zm)कम अक्षांशों पर परिशुद्धता के नुकसान से बचा जाता है।)

आकृति

area(f) भूमध्य रेखा से अपारदर्शी स्लाइस का क्षेत्रफल अक्षांश f (चित्रण में लगभग 30 डिग्री उत्तर में) है। X और Y संदर्भ के लिए दिखाए गए भूस्थैतिक कार्टेसियन समन्वय अक्ष हैं।

WGS 84 दीर्घवृत्त के लिए, निरंतर मूल्यों का उपयोग करें

a = 6 378 137 meters,  b =  6 356 752.3142 meters,

entailing

e = 0.08181919084296

(के साथ एक गोलाकार मॉडल के लिए एक = , सूत्र अनिश्चितकालीन हो जाने पर आपको ई के रूप में एक सीमा ले जाना है -। ऊपर है, जो तब मानक सूत्र को कम कर देता से> 0 2 * pi * a^2 * sin(f)।)

इन सूत्रों के अनुसार, भूमध्य रेखा पर आधारित 30 'चतुर्भुज 30' का क्षेत्रफल 3077.2300079129 वर्ग किलोमीटर है, जबकि 30 '30' चतुर्भुज एक ध्रुव को छूता है (जो वास्तव में सिर्फ एक त्रिकोण है) का क्षेत्रफल केवल 13.6086152 वर्ग है। किलोमीटर।

एक जांच के रूप में, पृथ्वी की सतह को कवर करते हुए 720 से 360 ग्रिड के सभी कोशिकाओं पर लागू होने वाले सूत्र 4 * pi * (6371.0071809) ^ 2 वर्ग किलोमीटर के कुल सतह क्षेत्र को दर्शाते हैं, यह दर्शाता है कि पृथ्वी की ऑटोहेरियस त्रिज्या 6371.0071809 किलोमीटर होनी चाहिए। यह विकिपीडिया मूल्य से केवल पिछले महत्वपूर्ण आंकड़े (एक मिलीमीटर के दसवें भाग) के लिए अलग है। (मुझे लगता है कि विकिपीडिया की गणना थोड़ी :-) है।

अतिरिक्त जाँच के रूप में, मैंने लेव एम। बुगाएवस्की और जॉन पी। स्नाइडर, मानचित्र अनुमानों: ए रेफरेंस मैनुअल (टेलर एंड फ्रांसिस, 1995) में परिशिष्ट 4 और 5 को पुन: प्रस्तुत करने के लिए इन सूत्रों के संस्करणों का उपयोग किया । परिशिष्ट 4 निकटतम मीटर को दिए गए मेरिडियन और समानताएं के 30'-लंबे खंडों की चाप लंबाई दिखाता है। परिणामों की एक स्पॉट जांच ने सही समझौता दिखाया। मैंने तब 0.5 'वेतन वृद्धि के बजाय 0.0005 वेतन वृद्धि के साथ तालिका को फिर से बनाया, और इन चाप लंबाई के साथ अनुमानित रूप से चतुर्भुज क्षेत्रों को एकीकृत किया। आठ महत्वपूर्ण आंकड़ों से बेहतर करने के लिए दीर्घवृत्त के कुल क्षेत्रफल को सटीक रूप से पुन: पेश किया गया था। परिशिष्ट 5 शो के मूल्यों area(f)के लिए = 0, 1/2, 1, ..., 90 डिग्री, 1 / (2 * pi) से गुणा। ये मान निकटतम वर्ग किलोमीटर के लिए दिए गए हैं। 0, 45 और 90 डिग्री के पास मूल्यों की एक दृश्य जांच ने सही समझौता दिखाया।


यह सटीक सूत्र रेखापुंज बीजगणित का उपयोग करके एक ग्रिड के साथ शुरुआत करके लागू किया जा सकता है जो प्रत्येक कोशिका की ऊपरी सीमा के अक्षांश और दूसरी को निचली सीमा के अक्षांश दे रहा है। इनमें से प्रत्येक अनिवार्य रूप से एक वाई-समन्वित ग्रिड है। (प्रत्येक मामले में आप बनाना चाहते हैं sin(f)और फिर zmऔर zpमध्यवर्ती परिणाम के रूप में कर सकते हैं ।) दो परिणामों को घटाएं, इसका पूर्ण मान लें, और पहले चरण में प्राप्त अंश q से गुणा करें (0.5 / 360 = 1/720 के बराबर) 30 'सेल चौड़ाई के लिए, उदाहरण के लिए)। यह एक ग्रिड होगा, जिसके मूल्यों में सटीक होगाप्रत्येक सेल के क्षेत्र (ग्रिड की अपनी संख्यात्मक परिशुद्धता तक)। बस साइन फ़ंक्शन द्वारा अपेक्षित रूप में अक्षांशों को व्यक्त करना सुनिश्चित करें: कई रेखापुंज कैलकुलेटर आपको डिग्री में निर्देशांक देंगे लेकिन उनके ट्रिगर कार्यों के लिए रेडियंस की अपेक्षा करें!


रिकॉर्ड के लिए, यहाँ WGS पर 84 'दीर्घवृत्त पर 30' कोशिकाओं के सटीक क्षेत्र 'भूमध्य रेखा से एक ध्रुव तक, 30 के अंतराल में' 11 आंकड़े तक (नाबालिग त्रिज्या b के लिए प्रयुक्त समान संख्या ) हैं:

3077.2300079,3077.0019391,3076.5458145,3075.8616605,3074.9495164,3073.8094348,3072.4414813,3070.8457347,3069.0222870,3066.9712434,3064.6927222,3062.1868550,3059.4537865,3056.4936748,3053.3066912,3049.8930202,3046.2528597,3042.3864209,3038.2939285,3033.9756204,3029.4317480,3024.6625762,3019.6683833,3014.4494612,3009.0061153,3003.3386648,2997.4474422,2991.3327939,2984.9950800,2978.4346744,2971.6519646,2964.6473522,2957.4212526,2949.9740951,2942.3063230,2934.4183938,2926.3107788,2917.9839636,2909.4384482,2900.6747464,2891.6933866,2882.4949115,2873.0798782,2863.4488581,2853.6024374,2843.5412166,2833.2658109,2822.7768503,2812.0749792,2801.1608571,2790.0351582,2778.6985716,2767.1518013,2755.3955665,2743.4306011,2731.2576543,2718.8774905,2706.2908892,2693.4986451,2680.5015685,2667.3004848,2653.8962347,2640.2896746,2626.4816763,2612.4731271,2598.2649300,2583.8580035,2569.2532818,2554.4517149,2539.4542684,2524.2619238,2508.8756783,2493.2965451,2477.5255533,2461.5637477,2445.4121891,2429.0719545,2412.5441367,2395.8298444,2378.9302026,2361.8463521,2344.5794500,2327.1306692,2309.5011988,2291.6922441,2273.7050264,2255.5407830,2237.2007674,2218.6862492,2199.9985139,2181.1388633,2162.1086151,2142.9091030,2123.5416769,2104.0077025,2084.3085615,2064.4456516,2044.4203864,2024.2341953,2003.8885234,1983.3848318,1962.7245972,1941.9093120,1920.9404843,1899.8196375,1878.5483108,1857.1280585,1835.5604507,1813.8470724,1791.9895239,1769.9894206,1747.8483931,1725.5680867,1703.1501618,1680.5962932,1657.9081707,1635.0874985,1612.1359952,1589.0553936,1565.8474409,1542.5138984,1519.0565410,1495.4771578,1471.7775513,1447.9595378,1424.0249466,1399.9756206,1375.8134157,1351.5402005,1327.1578567,1302.6682785,1278.0733724,1253.3750574,1228.5752643,1203.6759360,1178.6790272,1153.5865040,1128.4003439,1103.1225355,1077.7550785,1052.2999830,1026.7592702,1001.1349711,975.42912705,949.64378940,923.78101904,897.84288636,871.83147097,845.74886152,819.59715539,793.37845851,767.09488512,740.74855748,714.34160569,687.87616739,661.35438752,634.77841811,608.15041795,581.47255240,554.74699308,527.97591765,501.16150951,474.30595754,447.41145586,420.48020351,393.51440422,366.51626611,339.48800143,312.43182627,285.34996030,258.24462644,231.11805066,203.97246162,176.81009042,149.63317034,122.44393648,95.244625564,68.037475592,40.824725575,13.608615243

मान वर्ग किलोमीटर में हैं।


यदि आप इन क्षेत्रों को अनुमानित करना चाहते हैं या बस उनके व्यवहार को बेहतर ढंग से समझना चाहते हैं, तो इस पैटर्न के बाद सूत्र एक शक्ति श्रृंखला में कम हो जाता है:

area(f) = 2 * pi * b^2 * z * (1 + (4/3)y + (6/5)y^2 + (8/7)y^3 + ...)

कहाँ पे

z = sin(f), y = (e*z)^2.

(बुगाएवस्की एंड स्नाइडर, ऑप सिट , समीकरण (2.1) में एक समान सूत्र दिखाई देता है ।)

चूँकि e ^ 2 इतना छोटा है (पृथ्वी के सभी दीर्घवृत्त मॉडल के लिए 1/150 के आसपास) और z 0 और 1 के बीच स्थित है, y छोटा है, बहुत छोटा है। इस प्रकार शब्द y ^ 2, y ^ 3, ... तेजी से छोटा हो जाता है, प्रत्येक शब्द के साथ दो और दशमलव स्थानों पर सटीक जोड़ रहा है। यदि हम y को पूरी तरह से नजरअंदाज करते हैं, तो सूत्र त्रिज्या b के क्षेत्र का होगा । शेष शब्दों को पृथ्वी के भूमध्यरेखीय उभार के लिए सही समझा जा सकता है।


संपादित करें

कुछ सवाल उठाए गए हैं कि इन सटीक फ़ार्मुलों के साथ क्षेत्र की भू-दूरी की गणना कैसे की जाती है। जियोडेसिक डिस्टेंस मेथड जेरोडिक्स द्वारा प्रत्येक चतुष्कोण को समांतर की बजाय समतल करता है, जो इसके कोनों को क्षैतिज रूप से जोड़ता है, और एक ट्रेपोजॉइड के लिए यूक्लिडियन फॉर्मूला लागू करता है । छोटे चतुर्भुजों के लिए, जैसे कि 30 'क्वाड्स, यह थोड़ा कम पक्षपाती है और प्रति मिलियन 6 और 10 भागों के बीच एक सापेक्ष सटीकता है। यहाँ WGS 84 (या उस मामले के लिए किसी भी उचित पृथ्वी दीर्घवृत्त) के लिए त्रुटि की एक साजिश है:

चित्र 2

इस प्रकार, यदि (1) आपके पास जियोडेसिक दूरी की गणना के लिए आसान पहुंच है और (2) पीपीएम-स्तर की त्रुटि को सहन कर सकता है, तो आप पूर्वाग्रह को सही करने के लिए उन जियोडेसिक गणनाओं का उपयोग करने और उनके परिणामों को 1.00000791 से गुणा करने पर विचार कर सकते हैं। परिशुद्धता के दो और दशमलव स्थानों के लिए, सुधार कारक से pi / 2 * cos (2f) / 10 ^ 6 घटाएँ: परिणाम 0.04 ppm के भीतर सटीक होगा।


1
यदि आपका सिस्टम एक एंथन फंक्शन की आपूर्ति करता है, तो आप लॉग (zp / zm) को 2 * atanh (e * sin (f)) के स्थान पर थोड़ा अधिक सटीक परिणाम (कम राउंड-ऑफ) कर सकते हैं।
cffk

@ cffk यह एक अच्छी बात है। मैंने सूत्र मूल रूप से अतन के संदर्भ में प्राप्त किए हैं, लेकिन उन्हें इस उम्मीद के साथ लघुगणक में बदल दिया है कि (ए) अधिकांश जीआईएस उपयोगकर्ता इस फ़ंक्शन से अपरिचित होंगे और (बी) कई उपयोगकर्ताओं के पास सिस्टम तक पहुंच नहीं होगी जिसमें यह प्रदान किया गया है। यद्यपि परिशुद्धता का नुकसान एक संभावित चिंता है, सनकीपन की परिमाण की एक त्वरित जांच से पता चलता है कि पृथ्वी दीर्घवृत्त के साथ काम करते समय बहुत कम खो जाता है - शायद दो दशमलव स्थानों से थोड़ा अधिक। मैंने पाठकों को पूर्ण सटीकता प्राप्त करने की अनुमति देने के लिए भाग में बिजली श्रृंखला प्रदान की, यदि वे चाहें तो।
whuber

3

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

जियोडेसिक और रंबल लाइन बहुभुज के लिए सूत्रों का कार्यान्वयन मेरी लाइब्रेरी जियोग्राफिकलिब द्वारा प्रदान किया गया है । जियोडेसिक क्षेत्र कई भाषाओं में उपलब्ध है; rhumb लाइन क्षेत्र केवल C ++ है। यहां एक ऑनलाइन संस्करण (जियोडेसिक + रूम्ब लाइन) उपलब्ध है । इन गणनाओं की सटीकता आमतौर पर 0.1 वर्ग मीटर से बेहतर है।

आपको विश्वसनीय / आधिकारिक पर न्याय करना होगा ... जियोडेसिक सूत्र भूगणित (डेनियलसेन, 1989, सदस्यता की आवश्यकता) के तहत क्षेत्र में व्युत्पन्न हैं , और भूविज्ञान (कारनी, 2013, ओपन एक्सेस) के लिए एल्गोरिदम । रम्ब लाइन सूत्र यहाँ दिए गए हैं


(+1) मैं इस पोस्ट को इस में उपयोगी जानकारी के लिए बढ़ा रहा हूं, भले ही यह वास्तव में प्रश्न (या बाउंटी) को संबोधित नहीं करता है, दोनों विशेष रूप से भौगोलिक समन्वय प्रणालियों में आपदाओं के बारे में हैं।
whuber

1

WGS84 पिक्सेल के क्षेत्र के लिए एक सूत्र निर्धारित करने की कोशिश करते समय मैं इस सवाल पर भागा। जबकि @ व्हिबर के उत्तर में यह जानकारी नहीं है, फिर भी यह एक अक्षांश पर एक वर्ग डिग्री पिक्सेल के क्षेत्र के लिए एक सूत्र प्राप्त करने के लिए कुछ काम था। मैंने एक पायथन फ़ंक्शन शामिल किया है जिसे मैंने नीचे लिखा है कि यह एक कॉल में सार है। हालांकि यह सीधे एनटीआरईआर रेखापुंज के क्षेत्र के बारे में पोस्टर के सवाल का जवाब नहीं देता है (हालांकि कोई सभी पिक्सल के क्षेत्रों को जोड़ सकता है), मुझे लगता है कि यह अभी भी किसी के लिए उपयोगी जानकारी है जो समान गणना के लिए खोज कर सकता है।

def area_of_pixel(pixel_size, center_lat):
    """Calculate m^2 area of a wgs84 square pixel.

    Adapted from: https://gis.stackexchange.com/a/127327/2397

    Parameters:
        pixel_size (float): length of side of pixel in degrees.
        center_lat (float): latitude of the center of the pixel. Note this
            value +/- half the `pixel-size` must not exceed 90/-90 degrees
            latitude or an invalid area will be calculated.

    Returns:
        Area of square pixel of side length `pixel_size` centered at
        `center_lat` in m^2.

    """
    a = 6378137  # meters
    b = 6356752.3142  # meters
    e = math.sqrt(1 - (b/a)**2)
    area_list = []
    for f in [center_lat+pixel_size/2, center_lat-pixel_size/2]:
        zm = 1 - e*math.sin(math.radians(f))
        zp = 1 + e*math.sin(math.radians(f))
        area_list.append(
            math.pi * b**2 * (
                math.log(zp/zm) / (2*e) +
                math.sin(math.radians(f)) / (zp*zm)))
    return pixel_size / 360. * (area_list[0] - area_list[1])
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.