2010-05-11 19 views
22

एक अज्ञात लक्ष्य स्थान (अक्षांश और देशांतर समन्वय) मौजूद है। मेरे पास 3 अक्षांश और देशांतर समन्वय जोड़े हैं और प्रत्येक जोड़ी के लिए लक्ष्य स्थान तक किलोमीटर की दूरी है। मैं लक्ष्य स्थान के समन्वय की गणना कैसे कर सकता हूं?3 अक्षांश और देशांतर बिंदुओं का उपयोग करके त्रयीकरण, और 3 दूरी

उदाहरण के लिए, मैं निम्नलिखित डेटा बिंदुओं

37.418436,-121.963477 0.265710701754km 
37.417243,-121.961889 0.234592423446km 
37.418692,-121.960194 0.0548954278262km 

क्या मैं चाहता है क्या होगा समारोह है कि लेता है इनपुट के रूप में है कि और जैसे उत्पादन देखो के रूप में 37.417959,-121.961954 रिटर्न की हिम्मत?

मैं समझता हूं कि http://www.movable-type.co.uk/scripts/latlong.html से दो बिंदुओं के बीच की दूरी की गणना कैसे करें, मैं सामान्य सिद्धांत को समझता हूं कि तीन सर्किलों के साथ आपको ओवरलैप का एक बिंदु मिलता है। मैं इस खतरे के साथ उस बिंदु की गणना करने के लिए आवश्यक गणित पर आलसी हूं।

+2

शब्द "ट्राईऐन्ग्युलेशंस" – skaffman

+10

वास्तव में लगता है हो रहा है "ट्रायलिटिरेशन" http: // en .wikipedia.org/wiki/trilateration "त्रिभुज" के रूप में कोण – nohat

+0

समाधान शामिल हैं: http://gis.stackexchange.com/questions/66/trilateration-using-3- अक्षांश- और- longitude- अंक- और-3- दूरी – zengr

उत्तर

38

विकिपीडिया बीजगणित यहां की एक बहुत गहन विचार विमर्श देता है:, http://en.wikipedia.org/wiki/Trilateration

पहला कदम है, वास्तव में विकिपीडिया प्रविष्टि में शामिल नहीं कन्वर्ट करने के लिए है अपने कार्टेसियन निर्देशांक के लिए अक्षांश/लंबे समन्वय:

x0 = cos(lon0) * cos(lat0) , y0 = sin(lon0) * cos(lat0) , z0 = sin(lat0) 
x1 = cos(lon1) * cos(lat0) , y1 = sin(lon1) * cos(lat1) , z1 = sin(lat1) 
x2 = cos(lon2) * cos(lat0) , y2 = sin(lon2) * cos(lat2) , z2 = sin(lat2) 
  p0   p1   p2 
X -0.420442596 -0.420430618 -0.42040255 
Y -0.67380418 -0.673826567 -0.673825967 
Z 0.607631426 0.607614889 0.607634975 

अगले कदम के 210

(गणना सरल रखने के लिए, मैं fudged कि चीज़ें तो हम "पृथ्वी त्रिज्या" के बदले किलोमीटर की इकाइयों में काम कर रहे हैं)

अपने डेटा के लिए, मैं

मिलता है, जो विकिपीडिया आलेख में शामिल है, निर्देशों को सरल बनाना है, बिंदुओं का अनुवाद करके पी 0 मूल पर है, और फिर घुमावदार है ताकि पी 1 एक्स अक्ष पर हो, और पी 2 एक्सवाई विमान में है।

अनुवाद के लिए, बस p1 और p2 से p0 घटाना:

p0a  p1a   p2a 
X 0 1.19779E-05 4.00462E-05 
Y 0 -2.23864E-05 -2.17865E-05 
Z 0 -1.65372E-05 3.5486E-06 

रोटेशन बहुत कठिन नहीं है। पी 1 बी हो जाता है (एक्स, वाई) = (डी, 0), जहां डी मूल से पी 1 ए (पायथागोरियन प्रमेय) की दूरी है

पी 2 बी के लिए, हमें पी 2 ए को दो घटकों में हल करने की आवश्यकता है: एक समानांतर पी 1 ए (जो हमारे एक्स अक्ष पर जाता है), और एक लंबवत पी 1 ए, (जो "बी" समन्वय प्रणाली में हमारे वाई अक्ष पर जाता है)।

ऐसा करने के लिए, हमें पी 1 ए की दिशा में एक इकाई वेक्टर की आवश्यकता है, जो केवल पी 1 ए * (1/डी) है। पी 2 ए के साथ इस यूनिट वेक्टर के डॉट उत्पाद को लें (इसे पी 1 ए_टैट करें, अगर आपको पसंद है), और यह पी 2 बी के लिए एक्स समन्वय है। विकिपीडिया आलेख इस मान को "I"

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

अब आपके पास तीन चर डी, आई और जे हैं, कि विकिपीडिया आलेख गणना के लिए उपयोग करता है। आप पृथ्वी के त्रिज्या से गुणा करके, अब उन्हें वापस किलोमीटर में परिवर्तित कर सकते हैं। आपको

(संयोग से, विकिपीडिया समन्वय परिवर्तन के लिए एक अलग गणना देता है) से बाकी की गणना करने में सक्षम होना चाहिए। मुझे जहां संभव हो सके ट्रिगर से बचना पसंद है)।

+0

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

+1

संयोग से, सबसे बड़ी परिशुद्धता के लिए, आपको ऊंचाई के लिए जिम्मेदार होना होगा, और इस तथ्य के लिए कि लैट/लॉन निर्देशांक एक गोलाकार संदर्भ सतह की बजाय एक अंडाकार पर आधारित हैं। यहां देखें: http://en.wikipedia.org/wiki/ECEF और यहां: http://www.satsleuth.com/GPS_ECEF_Datum_transformation.htm –

+0

ऐसा लगता है जैसे मैंने cos (lat) और sin (lat) को उलट दिया। उसमें देर हो चुकी थी। माफ़ कीजिये। अब तय (मैंने वास्तव में गणना सही की, लेकिन समीकरणों को स्थानांतरित करने के लिए खराब हो गया) –

0

निम्नलिखित 9 हलकों पर विचार करें अंक ए, बी, सी और दूरी D1, D2, डी 3

  • एक की केंद्र, त्रिज्या d1
  • एक की केंद्र, त्रिज्या d2
  • ए का केंद्र , त्रिज्या d3
  • बी के केंद्र, त्रिज्या d1
  • बी के केंद्र, त्रिज्या d2
  • बी के केंद्र, त्रिज्या d3
  • +०१२३५१६४१० सी के
  • केंद्र, त्रिज्या d1
  • सी के केंद्र, त्रिज्या d2
  • सी के केंद्र, त्रिज्या d3

ये तुम्हारे संभव हलकों हैं।

    : अब हम इन क्योंकि हम जानते हैं कि अगर d1 एक पर प्रयोग किया जाता है, यह बी

    यह आपके संभव प्रविष्टियों बनाता है, पर उपयोग नहीं किया जाएगा जहां A1 का मतलब है केंद्र एक और त्रिज्या डी 1 के साथ चक्र चुनना कर सकते हैं,

  • {A1, बी 2, सी 3}
  • {A1, बी 3, सी 2}
  • {ए 2, बी 1, सी 3}
  • {ए 2, बी 3, सी 1}
  • {ए 3, बी 1, सी 2}
  • {ए 3, बी 2, सी 1}

आपको पृथ्वी के त्रिज्या को जानने के लिए अक्षांश/लंबे समय तक एक्स, वाई, जेड, और पृथ्वी की परत के साथ घुमावदार दूरी से दूरी को सीधे दूरी तक परिवर्तित करने में सक्षम होना चाहिए, और वहां से आप देख सकते हैं उनमें से कौन सा एक आम बिंदु पर छेड़छाड़ करता है। फ्लोट अपूर्णता के कारण त्रुटि के छोटे मार्जिन की अनुमति देना याद रखें।

+0

मुझे पहले से ही पता है कि कौन सा त्रिज्या केंद्र के साथ जाता है; मुझे – nohat

+0

इनपुट के रूप में लैट/लॉन डेटा दिए गए चौराहे बिंदु की गणना करने के लिए सूत्रों की आवश्यकता है, मैं जल्द ही कुछ पॉइंटर्स के साथ पोस्ट संपादित करूंगा। – corsiKa

2

मैंने इस प्रश्न को नवगठित जीआईएस स्टैक एक्सचेंज पर पूछा, और वहां कुछ अच्छे जवाब भी दिए।

https://gis.stackexchange.com/questions/66/trilateration-using-3-latitude-and-longitude-points-and-3-distances

स्वीकार किए जाते हैं जवाब वहाँ एक (शायद) अजगर में काम कर समाधान है:

https://gis.stackexchange.com/questions/66/trilateration-using-3-latitude-and-longitude-points-and-3-distances/415#415

संबंधित मुद्दे