मैं कई अक्षांशों और देशांतर स्थानों के बीच औसत की गणना कैसे कर सकता हूं?
क्या मुझे केवल लेट और लैंग दोनों के लिए अंकगणित माध्य की गणना करनी चाहिए?
मैं कई अक्षांशों और देशांतर स्थानों के बीच औसत की गणना कैसे कर सकता हूं?
क्या मुझे केवल लेट और लैंग दोनों के लिए अंकगणित माध्य की गणना करनी चाहिए?
जवाबों:
एक सरल मतलब के लिए, आप देशांतर और अक्षांश निर्देशांक औसत नहीं करना चाहते हैं। यह कम अक्षांशों पर बहुत अच्छा काम कर सकता है, लेकिन उच्च अक्षांशों पर यह खराब परिणाम देने लगेगा और ध्रुवों के पास पूरी तरह से टूट जाएगा।
इस प्रकार की चीज़ के लिए मैंने जिस विधि का उपयोग किया है, वह देशांतर / अक्षांश निर्देशांक को 3 डी कार्टेशियन निर्देशांक (x, y, z) में परिवर्तित करना है। औसत ये (एक कार्टेशियन वेक्टर देने के लिए), और फिर वापस फिर से परिवर्तित करें। ध्यान दें कि आपको शायद वेक्टर को सामान्य करने की आवश्यकता नहीं है, इसलिए वास्तविक औसत प्रक्रिया एक साधारण योग हो सकती है।
संपादित करें, यहाँ मेरा c # कोड है:
निम्नलिखित धर्मान्तरित कार्टेशियन अक्षांश / देशांतर (डिग्री में) का निर्देशांक करता है: RAD2DEG
रेडियन के लिए स्थिरांक हटा दें ।
Latitude = MPUtility.RAD2DEG * Math.Atan2(z, Math.Sqrt(x * x + y * y));
Longitude = MPUtility.RAD2DEG * Math.Atan2(-y, x);
और यहां हम अक्षांश / देशांतर (रेडियन में निर्दिष्ट) से कार्टेशियन निर्देशांक की गणना करते हैं:
private void CalcCartesianCoord()
{
_x = Math.Sin(LatitudeRadians) * Math.Cos(LongitudeRadians);
_y = Math.Sin(LatitudeRadians) * Math.Sin(LongitudeRadians);
_z = Math.Cos(LatitudeRadians);
}
दोनों को वास्तविक कोड से काटा और चिपकाया जाता है, इसलिए डिग्री और रेडियन का मिश्रण। यहां ऐसे गुण हैं जो कुछ रूपांतरण करते हैं (जैसे LatitudeRadians
एक संपत्ति जो एक रेडियन मान लौटाता है)।
ध्यान दें कि अनुकूलन संभव है: उदाहरण के लिए डुप्लिकेट साइन गणना। यदि आप उन्हें बहुत बुलाते हैं तो भी ट्रिगर की गणना संभव नहीं हो सकती है।
क्लस्टरिंग विकल्प : मुझे लगता है कि इस प्रकार के ऑपरेशन को कवर करने वाला वैचारिक चर्चा शब्द "क्लस्टरिंग" है। Averaging को लागू करने के लिए सबसे सरल है और अधिकांश उद्देश्यों के लिए अच्छी तरह से काम करता है। केवल एक बार मैं कुछ और उपयोग करूंगा यदि आप आउटलेर्स [संपादित करें] -> या डंडे या अंतर्राष्ट्रीय डेटलाइन के बारे में चिंतित हैं। [संपादित करें] -> औसत भी, जबकि यह आपको कुछ ऐसा देगा जो क्लस्टर के केंद्र के करीब दिखता है, प्रोजेक्शन की अशुद्धियों के कारण थोड़ा हटकर होगा, इस तथ्य के कारण कि डिग्री लैंग लैंग हमेशा एक ही दूरी पर नहीं होते हैं इसके अलावा किमी / मील में। जितना बड़ा क्षेत्र आप उतने ही अधिक विकृति पर औसत करेंगे।
यहाँ कुछ क्लस्टरिंग विकल्पों की तुलना है
औसत (आसान, सबसे तेज़, गलत): बस अक्षांशीय मानों को गिनें और गणना द्वारा विभाजित करें और lng मानों के लिए समान करें। अतिप्रवाह के लिए बाहर देखना सुनिश्चित करें यदि आप एक Int32 का उपयोग कर रहे हैं कुछ सिस्टम (विशेष रूप से c #) चुपचाप कम संख्या में वापस बह जाएगा। आप अपने योग संचायक के लिए फ्लोटिंग पॉइंट प्रिसिजन का उपयोग करके इन इरोज़ से बच सकते हैं। इस पद्धति के साथ एक समस्या यह है कि आउटलेयर आपके स्थान को तिरछा कर सकता है। [संपादित करें] -> एक और ध्रुव के पास गणित है और अंतर्राष्ट्रीय तिथि रेखा अच्छी तरह से औसत नहीं है और स्थानों को बुरी तरह से तिरछा कर देगी।
निकटतम पड़ोसी (थोड़ा सख्त, धीमा, बाहर का पक्षपाती नहीं) बल्कि औसत से आप अपने सभी पड़ोसियों के लिए सबसे छोटी औसत दूरी के साथ वास्तविक अक्षांश स्थान के साथ जा सकते हैं। यह एक "माध्यिका" लेने जैसा है। नीचे का पक्ष यह है कि यह कम्प्यूटेशनल रूप से महंगा है क्योंकि आप हर बिंदु की तुलना हर दूसरे बिंदु से करते हैं और उनके बीच की दूरी की गणना करते हैं। उदाहरण के लिए, 10,000 अंकों के क्लस्टरिंग के लिए 100 मिलियन दूरी की गणना की आवश्यकता होगी .. जो कि धीमी नहीं है, लेकिन यह निश्चित रूप से अच्छी तरह से पैमाने पर नहीं है।
ग्रिड सेल (थोड़ा अतिरिक्त सेटअप की जरूरत है, बहुत तेज, बाहरी पक्षपाती नहीं) यह निकटतम पड़ोसी के समान है लेकिन बहुत तेज है। आप .01 डिसे लेट लैंग (जो कि आबादी वाले लेटिट्यूड पर लगभग 1 किमी है) और अपने पॉइंट्स को .01 x .01 डिग्री बकेट में ग्रुप कर सकते हैं। फिर आप इसमें सबसे अधिक अंक के साथ बाल्टी चुन सकते हैं और या तो उन बिंदुओं का औसत ले सकते हैं या उन बिंदुओं पर निकटतम पड़ोसी विश्लेषण चला सकते हैं। मैं वास्तव में बड़े डेटासेट्स (सैकड़ों अरबों रिकॉर्ड) के साथ इस पद्धति का उपयोग करता हूं और इसे सटीक और गति के बीच एक अच्छा संतुलन पाता हूं।
उत्तल हल सेंट्रोइड (कठोर, धीमा, साफ परिणाम): आप अपने आकार को परिभाषित करने के लिए अपने बिंदुओं के चारों ओर एक बैंड भी बना सकते हैं जो उन सभी को कवर करता है ( विकिपीडिया देखें ), और फिर इस आकृति के केंद्र बिंदु की गणना करें। विशिष्ट केंद्रक कार्यों का केंद्र भारित नहीं होता है, इसलिए आपको अपने आकार के अंदर नमूना बिंदुओं का उपयोग करते हुए किसी प्रकार के निकटतम पड़ोसी विश्लेषण की आवश्यकता होगी, जब तक कि आपको किनारों से एक फ़र्स्टेस्ट नहीं मिला। यह विधि वास्तव में उत्तल है क्योंकि वास्तविक केंद्र खोजने वाले एल्गोरिथ्म के बजाय उत्तल पतवार ही है, जो न तो तेज है और न ही विशेष रूप से सटीक है .. लेकिन पतवार के आकार में आपके डेटा के साथ अन्य उपयोगी अनुप्रयोग हो सकते हैं।
निश्चित नहीं है कि आप क्या हासिल करना चाह रहे हैं, लेकिन वह बिंदु जिसका अक्षांश मूल बिंदु सेट और देशांतर के अक्षांश का मूल बिंदु सेट के देशांतरों का औसत है, मूल बिंदु सेट का औसत बिंदु होगा। [अद्यतन]: उपरोक्त में, औसत अंकगणितीय माध्य है।