नोड और लिंक के साथ एक सीएसवी में एक रेखा आकृति को कैसे परिवर्तित करें?


12

क्या लीनियर शेपफाइल को निम्न प्रारूप की CSV फाइल में बदलने का कोई तरीका है:

Node_1, Node_2, attribute_1, ...., attribute_x
     1       2       "hello"        567845.334

मैंने GDAL / OGR2OGR और PostGIS को देखा है और मुझे नहीं लगता कि या तो डेटा को मेरे इच्छित प्रारूप में रूपांतरित किया जाए।

मुझे ऐसा करने के लिए स्क्रिप्ट लिखने में कोई आपत्ति नहीं है, अगर मैं सही दिशा में निर्देशित हूं।


आपके उदाहरण में, Node_1, Node_2 आपकी सुविधा के वास्तविक निर्देशांक हैं, है ना? मेरा मतलब है, आपके उदाहरण से, मैं वास्तव में मानूंगा कि आप आकृति विज्ञान से टोपोलॉजी को निर्यात करना चाहते हैं; जैसा कि Node_1 में आपका FNODE है, Node_2 आपका TNODE है और ज्यामिति केवल एक बार संग्रहीत है। यदि हां, तो उत्तर बहुत अलग है और टोपोलॉजी के निर्माण के लिए आपको ओजीआर के अलावा कुछ की आवश्यकता होगी।
रागी यासर बुरहुम

@rburhum मैं एक क्लासिक नेटवर्क एल्गोरिथ्म में अपनी तालिका को लागू करना चाहता हूं। प्रारूप आमतौर पर, नोड 1 से नोड 2 की लागत के साथ X
dassouki

जवाबों:


8

OGR (OGR2OGR) में शामिल उपयोगिता कार्यक्रम सीधे ऐसा नहीं करेंगे, लेकिन इसे पूरा करने के लिए OGR का उपयोग करना बहुत आसान होगा।

आपको OGR द्वारा समर्थित किसी भी भाषा में स्क्रिप्ट / प्रोग्राम लिखना होगा। आप बस आकृति को खोल सकते हैं, प्रत्येक सुविधा को पढ़ सकते हैं, और CSV प्रारूप में अंक + डेटा लिख ​​सकते हैं।

नमूना सी ++ विकी पर कोड वास्तव में पता चलता है लगभग हर OGR API कॉल इस के लिए आवश्यक।


तेजी से प्रतिक्रिया के लिए धन्यवाद। मैं gdal.org/ogr/ogr%5Fapitut.html पहला पायथन उदाहरण देख रहा हूं , जो SHP से CSV फ़ाइल में आउटपुट करता है। उदाहरण एक बिंदु परत के लिए किया जाता है, क्या कोई महत्वपूर्ण अंतर है इसे एक लाइन परत के लिए परिवर्तित करने के लिए? नोड नाम का प्रारूप क्या होगा? क्या यह एक संख्या होगी? क्या मैं इसे किसी अन्य बिंदु परत से जोड़ सकता हूं, जिसमें सभी नोड नाम हैं?
डसॉकी 17

एक पंक्ति में, सुविधाएँ ogr.wkbPoint के बजाय ogr.wkbLine होंगी। आप फीचर का उपयोग करके एक स्ट्रिंग के रूप में नाम वापस कर सकते हैं। GetFieldAsString (col)। ओजीआर में सीधे "लिंकिंग" को संभालने का कोई तरीका नहीं है, इसलिए आपको अन्य डेटा तालिका खोलनी होगी और इसे स्वयं खोजना होगा, या पहले जीआईएस में नाम कॉपी करना होगा।
रीड कोप्स

यह समझ आता है; अच्छा मैं इसे आज़माता हूँ और आपको अपडेट करता हूँ कि मैं कैसे बनाऊँ। मैं यह सब कर रहा हूं इसलिए मैं एक लाइन लेयर पर कुछ नेटवर्क विश्लेषण कर सकता हूं।
डसॉउकी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.