रनलेग के साथ इनपुट और / या आउटपुट के रूप में मेमोरी लेयर का उपयोग करना?


9

क्या रनलेग के साथ एक मेमोरी लेयर को इनपुट और / या आउटपुट के रूप में उपयोग किया जा सकता है ?

Runandload के साथ मुझे यह काम करने के लिए मिलता है:

 processing.runandload("qgis:mergevectorlayers","memory:bufferOne", "memory:bufferTwo", r"memory:merged")
 processing.runandload("qgis:dissolve", r"memory:merged", True, '', r"D:\PythonTesting\dissolved.shp")

पैरामीटर 2 और 3 इनपुट परतें हैं, जो पहले से ही मेमोरी में हैं, और पैरामीटर 3 आउटपुट लेयर है, जिसे मेमोरी में लिखा जाता है और निम्नलिखित टूल (डिसॉल्व) में उपयोग किया जाता है। यह ठीक काम करता है, लेकिन जब मैं रनगेल के साथ एक ही तर्क का उपयोग करने की कोशिश करता हूं , तो मेमोरी में मेरी मर्ज की गई परत नहीं बनती है , क्योंकि डिसॉल्व टूल कभी नहीं चलता है। निम्नलिखित, उदाहरण के लिए, काम नहीं करेगा:

 processing.runalg("qgis:mergevectorlayers","memory:bufferOne", "memory:bufferTwo", r"memory:merged")
 processing.runandload("qgis:dissolve", r"memory:merged", True, '', r"D:\PythonTesting\datenschrott\dissolved.shp")

क्या मैं यह मान सकता हूं कि रनगल या तो उन लेयर को स्वीकार नहीं करता है जो मेमोरी में हैं या यह कोई आउटपुट नहीं दे सकता है?


जवाबों:


4

पूरी तरह से निश्चित नहीं है कि आपका तरीका काम क्यों नहीं करता है, लेकिन इसका उपयोग करने के बजाय दूसरी विधि का Noneउपयोग करना है runalgक्योंकि यह मेमोरी में आउटपुट भी बनाएगा। नीचे मैंने पहली प्रक्रिया को output_0इस रूप में परिभाषित किया और दूसरी प्रक्रिया के लिए इनपुट के रूप में इसका परिणाम कहा:

output_0 = processing.runalg("qgis:mergevectorlayers",["memory:bufferOne", "memory:bufferTwo"], None)
processing.runandload("qgis:dissolve", output_0['OUTPUT'], True, '', r"D:\PythonTesting\dissolved.shp")

परिणाम:

परिणाम


प्रसंस्करण प्लगइन v2.12.2 के साथ QGIS 2.16.0-Ndedebo पर परीक्षण किया गया।

ध्यान दें कि qgis:mergevectorlayers अब इनपुट परतों की एक सूची की आवश्यकता है।


1

http://gis.stackexchange.com/q/76594/22646 रनलेग, रनेंड लोड और मेमोरी लेयर पर अधिक प्रकाश डालता है। Http://gis.stackexchange.com/a/184802 के अनुसार , परिणामी मेमोरी लेयर को संदर्भित करने का तरीका प्रोसेसिंग वर्जन पर निर्भर करता है।

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