आर्कजीआईएस डेस्कटॉप या क्यूजीआईएस में लाइन शेपफाइल में प्रत्येक पंक्ति के लिए आरंभ और अंत अंक प्राप्त करना?


15

मेरे पास एक वेक्टर (पॉलीलाइन) शेपफाइल है और मुझे प्रत्येक लाइन के स्टार्ट और एंड पॉइंट (नोड्स) को पुनः प्राप्त करने और इन बिंदुओं के साथ एक आकृति बनाने की आवश्यकता है। तब मुझे पॉलीलाइन की विशेषता तालिका में बिंदु आईडी के आधार पर प्रत्येक पंक्ति के लिए प्रारंभ और समाप्ति बिंदु को जोड़ने की आवश्यकता है।

मैं आर्कगिस डेस्कटॉप या क्यूजीआईएस में एक सरल तरीके से कैसे कर सकता हूं?


2
आर्कगिस में, यदि आपके पास एक उन्नत लाइसेंस है, तो आप डेटा प्रबंधन टूलबॉक्स-> फ़ीचर टूलसेट-> फ़ीचर वर्टीक्यूज़ टू पॉइंट एंड्स दोनों विकल्पों के साथ उपयोग कर सकते हैं। लाइन की सभी विशेषताओं को बरकरार रखा गया है। हालाँकि, आपको अपनी मूल पंक्ति सुविधा वर्ग में एक फ़ील्ड जोड़ना होगा और बिंदुओं में संरक्षित उस मूल्य को रखने के लिए अपनी रेखा पर सुविधा आईडी की गणना करना होगा। यदि आपके पास अपनी तर्ज पर एक और विशिष्ट मूल्य फ़ील्ड है, तो आप उपकरण को चलाने के बाद FID में शामिल हो सकते हैं और गणना कर सकते हैं। अंतिम विकल्प में कई विकल्पों के साथ एक स्थानिक जुड़ाव करना और बुरी विशेषताओं वाली प्रतियों को निकालना शामिल होगा।
रिचर्ड फेयरहर्स्ट

क्या इससे आपके सवाल का जवाब मिलता है? "मैं पायथन / आर्कपी के साथ आरंभ और अंत बिंदु निर्देशांक कैसे प्राप्त करूं?" gis.stackexchange.com/q/31684/8104
हारून

मैंने एक समान दृष्टिकोण की कोशिश की लेकिन रास्ते से हट गया। मैं इसे फिर से करने की कोशिश करूँगा। सबसे अच्छा एक मैक्रो बनाया जाएगा जो यह सब काम टॉगल करता है ताकि कोई भी बाद में एक ही प्रक्रिया कर सके। चीयर्स!
user51651

@RichardFairhurst मेथड, कि शायद एक उत्तर के रूप में भी सुझाव दिया जाना चाहिए। इस तरह मैंने इसे ऐतिहासिक रूप से किया है
bwp8nt

जवाबों:


8

यह GDAL का वन-लाइनर है। यह कमांड चयनित विशेषताओं के साथ स्टार्ट नोड्स से एक आकृति बनाती है:

ogr2ogr -f "ESRI Shapefile" -dialect sqlite output.shp -sql "select ST_StartPoint(geometry), attribute_1, attribute_2, attribute_3 from input" input.shp

समापन बिंदु के लिए ST_EndPoint का उपयोग करें।


बहुत-बहुत धन्यवाद! यह शायद काम हो गया, लेकिन मैं कुछ और सरल (दृश्य) की तलाश कर रहा था ताकि प्रोग्रामिंग कौशल के बिना अन्य लोग कार्य कर सकें।
user51651

आप उस आदेश को कहाँ लिखते हैं?
ब्लू_चिप

कमांड लाइन को। लिनक्स पर सामान्य शेल का उपयोग करें। विंडोज़ पर कमांड विंडो का उपयोग करें लेकिन ध्यान रखें कि आपके वातावरण में सही रास्ते हों। Osgeo4w शेल स्वचालित रूप से करता है।
user30184


6

QGIS समाधान: संबंधित वेक्टर 0 (स्टार्ट) और -1 (एंड) के साथ फील्ड कैलकुलेटर में xat और yat का उपयोग करके, लाइन वेक्टर फाइल के नोड्स (निर्देशांक) को शुरू और समाप्त करना संभव है।

xat(0)    
yat(0)
xat(-1)
yat(-1)

5

एक ArcGIS समाधान के लिए, मैंने एक जियोप्रोसेसिंग टूल बनाया है जो लाइनों पर अंक बनाता है।

आप इसे डाउनलोड कर सकते हैं, और यहाँ कोड देख सकते हैं: लाइन्स पर पॉइंट्स बनाएँ

प्रकार के लिए, आप START / END POINTS चुनना चाहेंगे। यह एक नया बिंदु सुविधा वर्ग बनाएगा जिसमें प्रत्येक पॉलीलाइन के लिए आरंभ और अंत बिंदु शामिल होंगे।

आउटपुट प्वाइंट फीचर क्लास में एक फील्ड भी होगा, जिसे LineOID कहा जाता है, जो उस पालीलाइन के OID को रिकॉर्ड करता है, जिससे इसे बनाया गया था। इस तरह से आप अपने विशेषता डेटा को वापस शामिल कर सकते हैं।

यहां बताया गया है कि आप पैरामीटर कैसे सेट करेंगे:

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


यह महान इयान है! मैं इसे डाउनलोड करूँगा और इसका परीक्षण करूँगा और आपको प्रतिक्रिया दे दूँगा। मुझे लगता है कि यह उपकरण मेरी ज़रूरत के काम आएगा और इस प्रक्रिया को बेहतर बनाने में मदद करेगा! धन्यवाद!
user51651

हाय इयान, Idk क्यों, लेकिन मैं आपके उपकरण को आर्कगिस 10.0 या 10.1 में काम करने के लिए नहीं पा सकता ... मैंने इसे टूलबॉक्स में जोड़ा, लेकिन यह दोपहर का भोजन नहीं ... = /
user51651

@ user51651 क्या आपको त्रुटि संदेश मिल रहा है? यह 10.0 के साथ काम नहीं करेगा, लेकिन इसे 10.1 और ऊपर के साथ काम करना चाहिए। यदि आप जियोप्रोसेसिंग मेनू में जाते हैं, और फिर परिणाम। क्या इसमें कोई संदेश हैं?
इयानब्रोड

3

विशेषता तालिका में अंतिम बिंदुओं के समन्वय को जोड़ने के लिए, आर्कजीआईएस का उपयोग करके, आप फ़ील्ड कैलकुलेटर (ज्यामितीय बनाने की कोई आवश्यकता नहीं) का उपयोग कर सकते हैं। फ़ील्ड नाम, फ़ील्ड कैलकुलेटर पर क्लिक करें, फिर नीचे दी गई एकल लाइनों (उदाहरण के साथ X निर्देशांक) के साथ पायथन सिंटैक्स का उपयोग करें:

!shape.firstPoint.X!

!shape.lastPoint.X!

ध्यान दें कि सब कुछ अंदर है !!


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

2

QGIS में एक्सट्रैक्ट स्पेसिफिक वर्टिस टूल का उपयोग करें । सेट वर्टेक्स सूचकांक करने के लिए 0 प्राप्त अंक शुरू करने के लिए और -1 अंत अंक या प्राप्त करने के लिए 0, -1 दोनों पाने के लिए।

QGIS निकालें विशिष्ट कार्यक्षेत्र

विवरण नोट करें:

पहला शीर्षांक 0 के सूचकांक से मेल खाता है, दूसरे शीर्ष पर 1 का सूचकांक है, आदि। नकारात्मक सूचकांकों का उपयोग ज्यामिति के अंत में कोने खोजने के लिए किया जा सकता है, उदाहरण के लिए, -1 का सूचकांक अंतिम शीर्ष से मेल खाता है, - 2 दूसरे अंतिम शीर्ष, आदि से मेल खाती है।


1

आर्कगिस में, यदि आपके पास एक उन्नत लाइसेंस है, तो आप डेटा प्रबंधन टूलबॉक्स-> फ़ीचर टूलसेट-> फ़ीचर वर्टीक्यूज़ टू पॉइंट एंड्स दोनों विकल्पों के साथ उपयोग कर सकते हैं। लाइन की सभी विशेषताओं को बरकरार रखा जाता है। हालाँकि, आपको अपनी मूल पंक्ति सुविधा वर्ग में एक फ़ील्ड जोड़ना होगा और बिंदुओं में संरक्षित उस मूल्य को रखने के लिए अपनी रेखा पर सुविधा आईडी की गणना करना होगा। यदि आपके पास अपनी तर्ज पर एक और विशिष्ट मूल्य फ़ील्ड है, तो आप उपकरण को चलाने के बाद FID में शामिल हो सकते हैं और गणना कर सकते हैं। अंतिम विकल्प में कई विकल्पों के साथ एक स्थानिक जुड़ाव करना और बुरी विशेषताओं वाली प्रतियों को निकालना शामिल होगा।

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