एक साथ बिंदुओं के बीच की दूरी को मापना


9

मैं GPS डेटा के साथ काम कर रहा हूं और इसलिए मेरे पास DATE / Time की जानकारी के साथ UTM है। मेरे पास प्रजातियों के 2 समूह हैं (मूस और भेड़ियों)। मैं उस समय में मैच से भेड़ियों के लिए जानकारी से जुड़ना चाहता हूं। इसलिए, मौस 1 से स्थान 1 2007-03-26 14:33:49 तक सभी भेड़ियों को लगभग उसी समय दर्ज किया गया था। लगभग महत्वपूर्ण है - इसका मतलब है कि मुझे उन सभी भेड़िया स्थानों की तलाश करने के लिए एक समय खिड़की या बफर रखना होगा जो उस समय के आसपास 30 मिनट के बफर के भीतर थे।

मैं एक स्क्रिप्ट या टूल की तलाश कर रहा हूं जो विंडो बफर +/- एक्स मिनट सेट करेगा और "बैच" प्रक्रिया में सक्षम होगा। Ive कम से कम 30 मूस और 30 भेड़िये - तो एक बार में एक जोड़ी का मिलान करना सहायक नहीं है। एक बार जब मुझे तारीख / समय मिल गया, तो मैं मूक और भेड़िया के XY स्थानों और समय के अंतर के बीच की दूरी की गणना करना चाहता हूं। मैं एक आउटपुट चाहूँगा जैसे:

individualmooseID | mooseDate | mooseX | mooseY | individualwolfID | wolfDate | wolfX | wolfY | Distance(m) | TimeDiff (min)

मोसिड एक ही समय अवधि के लिए कई अलग-अलग भेड़ियों से मेल खा सकता है। किसी भी सुझाव की सराहना की जाएगी। मैंने R के लिए एक कोड लिखा है, लेकिन यह मेरा प्रश्न नहीं देख रहा है : https://stackoverflow.com/q/15646365/675742 और मुझे कुछ बिंदु पर आर्कजीआईएस में डेटा लाना होगा, ताकि मैं आर को छोड़ सकूं और कर सकूं आर्कगिस में यह सब फिर महान!


4
मैं सफलतापूर्वक दो परतों जिसका निर्देशांक थे बनाने के द्वारा एक लंबे समय पहले ऐसा किया समय के साथ साथ एक कृत्रिम मूल्य y , साथ y एक डेटासेट के लिए = 0 और y अन्य डेटासेट के लिए कुछ निरंतर =। इस बिंदु पर आप अपने प्रश्न का उत्तर देने के लिए स्थानिक जुड़ाव, बफरिंग और स्थानिक विश्लेषण के अन्य रूपों का उपयोग कर सकते हैं, क्योंकि इन कृत्रिम निर्देशांक में निकटता समय में निकटता के समान है।
whuber

जवाबों:


4

इस तरह के डेटा सेट कोर्स की बहुत अधिक जानकारी दे सकते हैं।

मैं यह एक स्थानिक डेटाबेस वातावरण में करूँगा, अधिमानतः PostgreSQL / PostGIS।

आप जो करना चाहते हैं वह स्थानिक और समय डेटा दोनों पर एक साधारण जुड़ाव जैसा लगता है।

फिर आप एक क्वेरी में सब कुछ करते हैं। पेचीदा हिस्सा समय में शामिल होने के लिए अनुक्रमित का अनुकूलन करने के लिए हो सकता है। मुझे लगता है कि डेटा सेट काफी बड़ा है।

क्वेरी कुछ इस तरह दिख सकती है (इसे छद्म कोड के रूप में पढ़ें, विशेष रूप से समय-भाग))

SELECT DISTINCT ON (moose_id, wolf_id, moose_time) 
moose_id, moose_geom, moose_time, wolf_id, wolf_geom, wolf_time,
ST_Distance(moose_geom, wolf_geom) as dist, moose_time-wolf_time as time_diff
FROM
moose_table as mt inner join wolf_table as wt 
on 
ST_DWithin(moose_geom, wolf_geom,10000) 
AND moose_time > ( wolf_time-30) 
AND moose_time < (wolf_time + 30) 
ORDER BY abs(time_diff), moose_id, wolf_id, moose_time;

दो नोट:
1) मैंने एसटी_डिथिन का इस्तेमाल भेड़िया-मोसेस को बाँधने में करने के लिए किया, जो 10000 मीटर से अधिक के करीब है। यह गणना को कम करने और हर संभव संयोजन की गणना नहीं करने का एक तरीका है।
2) मैंने DISTINCT ON का उपयोग किया। प्रत्येक मूस-वुल्फ संयोजन के लिए प्रत्येक मूस समय पंजीकरण पर आपको केवल दूरी मिलनी चाहिए जब वे समय के सबसे करीब थे।

लेकिन मुझे आपके डेटा सेट पर परीक्षण करने के लिए कई अन्य दिलचस्प प्रश्न दिखाई देते हैं जो कि भेड़ियों के शिकार करने के तरीके के बारे में दिलचस्प जानकारी देनी चाहिए।

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

बेशक आप एक और सरल क्वेरी से गति प्राप्त करते हैं :-)

इसलिए, आप एक पोस्टगिस डेटाबेस में टेबल रखें और वहां काम करें।

यदि आप आर्कगिस 10 या 10.1 का उपयोग कर रहे हैं, तो आप डेटाबेस से सीधे डेटा देख सकते हैं। या QGIS से। यह एक अधिक परिपक्व संयोजन PostGIS-QGIS है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.