PostGIS या GRASS में आम विशेषताओं पर लाइनों को भंग या अनसाल्ट करें?


9

मेरे पास एक रोड सेंटरलाइन शेपफाइल है जिसमें हर चौराहे पर सड़कें बिछी हुई हैं। हालाँकि, मैं ऐसे LINESTRINGs में शामिल होना चाहूँगा जिनके पास एक एकल LINESTRING में विशेषताओं का एक सामान्य सेट है। इसलिए जब तक नाम, गति सीमा इत्यादि नहीं बदलते, मैं उन्हें एक साथ मिलाना चाहता हूं। यह OpenStreetMap में अंतिम टकराव के लिए है।

डेस्कटॉप सॉफ्टवेयर के लिए एस्री का आर्कगिस डिसॉल्व्ड कमांड और UNSPLIT_LINES विकल्प के साथ अनुमति देता है।

मुझे QGIS में एक डिसॉल्व्ड कमांड भी मिली, लेकिन यह केवल बहुभुज और एकल क्षेत्रों पर काम करता है।

यह मानते हुए कि QGIS के लिए कुछ भी मौजूद नहीं है, क्या किसी को पता है कि यह PostGIS या GRASS में कैसे किया जाता है?


PostGIS जांच के लिए gis.stackexchange.com/questions/1387/...
UnderDark

अगर यह सवाल आज पूछा जाता तो मुझे लगता कि यह बहुत व्यापक रूप में बंद हो जाता। अब इसे बंद करने की कोशिश करने के बजाय, मैं मौजूदा उत्तरों को वापस लेने और व्यापक उत्तरों को रोकने के लिए इसे संपादित करने जा रहा हूं।
PolyGeo

जवाबों:


4

दिलचस्प सवाल। मैं अपने आप को पोस्टगिस गुरु नहीं मानता, लेकिन मैंने आपकी समस्या के साथ खिलवाड़ किया और निम्नलिखित प्रश्न के साथ आया जो राजमार्ग LINESTRINGरिकॉर्ड को MULTILINESTRINGरिकॉर्ड में भंग कर देता है जब उनके पास कई क्षेत्रों में सामान्य मूल्य होते हैं (मेरे डेटासेट में, मैं nameऔर stateखेतों पर मेल खाता हूं )। मैंने पोस्टग्रेजल में एक हाईवेज शेपफाइल (ushwys का नाम बदलकर) को पुश करने के लिए OGR का उपयोग किया; इसलिए मेरा ज्यामिति क्षेत्र कहा जाता है wkb_geometry। अपने डेटा और फ़ील्ड स्थितियों को समायोजित करने के लिए इस क्वेरी को हैक करने का प्रयास करें:

SELECT 
u.name, 
u.state, 
ST_AsText( ST_Multi( ST_Collect( u.wkb_geometry ) ) ) as multilines 
FROM ushwys u
GROUP BY u.name, u.state 
ORDER BY u.state 
LIMIT 100; --########### DROP THE LIMIT WHEN YOU'RE DONE EXPERIMENTING

यदि यह काम करता है, तो आप इस क्वेरी को करने के लिए ogr2ogr का उपयोग कर सकते हैं और परिणाम को किसी भी वेक्टर प्रारूप में निर्यात कर सकते हैं जिसे आप पसंद करते हैं, जैसे कि शेपफाइल, जीएमएल, सीएसवी या अन्यथा। Ogr2ogr से SQL प्रश्नों को कॉल करने की जानकारी के लिए, OGR SQL दस्तावेज़ देखें।

संदर्भ के रूप में, मैंने PostGIS ST_Collect निर्देश की समीक्षा की , साथ ही साथ यह साइट जो कई क्षेत्रों में समूहीकरण को प्रदर्शित करती है।

यदि आपको लगता है कि इस क्वेरी में कटौती आपके लिए काम नहीं करती है, तो कृपया मुझे बताएं और मैं अपने उत्तर को रद्द कर दूंगा ताकि यह लोगों को भ्रमित न करे और लोगों को भ्रमित न करे।


पुनश्च यदि आप पोस्टग्रिज में जियोडेटा को पुश करने के लिए ogr2ogr का उपयोग करने से परिचित नहीं हैं, तो मैंने अपना डेटा आयात करने के लिए निम्नलिखित ogr2ogr स्क्रिप्ट का उपयोग किया ( वेब से कॉपी करना और सीधे अपने ogr2ogr कमांड विंडो में पेस्ट करना, जैसा कि मैंने पृष्ठ स्वरूपण पाया है ओब्रीक स्क्रिप्ट को तोड़ने वाले दोहरे उद्धरणों के लिए लाइनब्रेक और फ़ॉन्ट / चरित्र प्रतिस्थापन का परिचय देता है ):

ogr2ogr -f "PostGreSQL" PG:"host=127.0.0.1 user=postgres dbname=gisdb password=my_password" 
"E:\GISData\UnitedStates\highways.shp" -nln ushwys -nlt geometry

[अपडेट करें]

मैं यह देखना चाहता था कि उस क्वेरी को चलाने के बाद QGIS में यह "कैसे" दिखता है, इसलिए मैंने इस WHEREक्लॉज को लागू करने के लिए क्वेरी को नियंत्रित किया (जो मिसौरी राज्य में यूएस हाईवे 65 के सभी वेरिएंट देता है):

where u.state = 'MO' and u.name LIKE '%US%65%'

इसके बाद मैंने अपने परिणामी राजमार्ग MULTILINESTRINGरिकॉर्ड के सभी आठ (8) की कल्पना करने के लिए QGIS और QuickWKT प्लगइन का उपयोग किया । जैसा कि आप स्क्रीनशॉट में देख सकते हैं, अंतिम परिणाम Hwy 65 को Missoui की उत्तरी सीमा से लेकर आयोवा के साथ अरकंसास के साथ उसकी दक्षिणी सीमा तक सभी तरह से लेते हैं:

यहां छवि विवरण दर्ज करें

मेरे लिए, यह विज़ुअलाइज़ेशन दर्शाता है कि मेरी क्वेरी किसी भी अप्रत्याशित दोहराव या सुविधाओं के उन्मूलन का उत्पादन नहीं करती है। तो अगली बार मैंने सोचा "ठीक है, भंग आठ सुविधाओं को वापस कर दिया, लेकिन वास्तव में मूल तालिका में कितनी विशेषताएं मिसौरी में Hwy 65 का प्रतिनिधित्व करती हैं?" मेरी अगली क्वेरी ने उस प्रश्न का उत्तर दिया। ऐसा लगता है कि मूल डेटासेट मिसौरी में Hwy 65 का प्रतिनिधित्व करने के लिए अड़तीस (38) सुविधाओं का उपयोग करता है:

SELECT count(*) FROM ushwys WHERE state = 'MO' AND name LIKE '%US%65%';
-- returned 38

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

चीयर्स। :)



1

GRASS GIS में, v.build.polylines पर एक नज़र डालें

v.build.polylines का उपयोग टूटी हुई पॉलीलाइन के पुनर्निर्माण के लिए किया जा सकता है

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