QGIS में टेम्पोरल निकटतम पड़ोसी विश्लेषण

Nov 30 2020

मैं QGIS में एक अस्थायी निकटतम पड़ोसी विश्लेषण कैसे करूं ?

यकीन नहीं है कि अगर यह सही शब्दावली है, लेकिन मूल रूप से, मेरे पास 5 साल की अवधि में ~ 100,000 घर मूल्य लेनदेन के साथ एक डेटासेट है। इस अवधि में, नए ट्रेन स्टेशन बनाए जा रहे थे। मुझे पता है कि एक बुनियादी निकटतम पड़ोसी विश्लेषण कैसे किया जाता है, लेकिन मैं लेनदेन के समय निकटतम ट्रेन स्टेशन का निर्धारण करने के लिए एक अस्थायी एनएनए करना चाहता हूं ।

जवाब

6 Babel Nov 30 2020 at 22:13

यहाँ इस उत्तर से प्रेरणा लेते हुए https://gis.stackexchange.com/a/335914/88814, आप एक आभासी परत बना सकते हैं।

दुर्भाग्य से, Processing Toolbox / Vector analysis / Distance to nearest hub (line to hub)किसी भी उन्नत सेटिंग्स, फ़िल्टर, शर्तों और इतने पर अनुमति नहीं देता है।

मान लीजिए कि आपके पास दो बिंदु परतें हैं जिन्हें बुलाया गया है transactionsऔर stations। वे दोनों एक टाइमस्टैम्प होते हैं: लेन-देन की तारीख time_of_transaction, ट्रेन स्टेशन के खुलने के समय के अनुसार timestamp_stations

एक वर्चुअल लेयर बनाएं और इस क्वेरी को पेस्ट करें:

SELECT trs.fid as id_transaction, st.fid as id_station,
       ROUND(MIN(ST_Distance(trs.geometry, st.geometry)),2) AS distance
FROM transactions AS trs, stations AS st
WHERE st.timestamp_stations < trs.time_of_transaction
GROUP BY trs.fid
ORDER BY distance DESC

यह आपको निकटतम ट्रेन स्टेशन के साथ लेन-देन की एक सूची देता है जो उस समय हुआ था जब लेन-देन हुआ था। क्वेरी का परिणाम इस तरह दिखता है - यह लेन-देन की सूची है।

आप इसे अगले स्क्रीनशॉट पर देख सकते हैं: लाल डॉट्स लेनदेन (घर), नीले एक ट्रेन स्टेशन हैं। परिणामों की तुलना करें:

रेड डॉट 11 (सबसे नीचे) में ब्लू डॉट 18 (बाईं ओर मध्य में) निकटतम बिंदु के रूप में है - कुछ नीले डॉट्स करीब हैं (जैसे नंबर 3), लेकिन वे लेनदेन की तुलना में नए हैं, इस प्रकार वे अभी तक नहीं बने थे। मौजूद है जब लेनदेन हुआ।

रेड डॉट 10 (बीच में) बिल्कुल भी दिखाई नहीं देता है, क्योंकि यह लेनदेन सभी ब्लू (ट्रेन स्टेशन) डॉट्स से जुड़ी तारीख से पहले हुआ था: इस समय कोई भी ट्रेन स्टेशन मौजूद नहीं था, इसलिए कोई निकटतम नहीं था।

रेड डॉट 2 (बीच में) में नीली डॉट 21 के रूप में निकटतम नहीं है, लेकिन नहीं। 11 जो दूर है, लेकिन पुराना है: यह वह है जो लेनदेन के समय पहले से मौजूद था।

नए अस्थायी नियंत्रक का उपयोग करना (QGIS 3.14 से उपलब्ध - पुराने संस्करणों के लिए, टाइममैनगर प्लगइन का उपयोग करें ), आप परिणामों की जांच करने के लिए एक एनिमेटेड समय श्रृंखला उत्पन्न कर सकते हैं - एक स्क्रीनशॉट देखें जो वर्तमान समय सीमा के लिए दिखाता है जो इस बिंदु पर ट्रेन स्टेशनों में मौजूद है। समय (समय सेटिंग्स स्टेशनों परत के लौकिक टैब में जम जाती है) और जो 4 महीने के समय स्लॉट के दौरान लेनदेन को दृश्यता में लाता है (लेनदेन की परत के अस्थायी टैब में घटना की अवधि 4 महीने तक निर्धारित करता है)। आप स्पष्ट रूप से देखते हैं कि क्वेरी द्वारा उत्पन्न कनेक्शन वास्तव में उस समय के निकटतम ट्रेन स्टेशन से मेल खाते हैं: