पायथन और आर्कगिस डेस्कटॉप के साथ कई कॉलम के साथ मल्टीवैल्यू पैरामीटर लागू करना?


10

मैं एक ArcGIS (9.3) पायथन स्क्रिप्ट पर काम कर रहा हूं। इनपुट्स में से एक सुविधाओं की एक सूची है। प्रत्येक सुविधा के लिए, मुझे एक संबंधित फ़ील्ड का चयन करना होगा। मल्टीवैल्यू के लिए पैरामीटर सेट करना सभी सुविधाओं के लिए यूआई में एक अच्छी तालिका देता है। मैं प्रत्येक सुविधा के लिए फ़ील्ड चुनने के लिए मल्टीवैल्यू टेबल में एक और कॉलम कैसे जोड़ सकता हूँ?

क्रॉस-पोस्ट की गई: http://forums.arcgis.com/threads/30907-MultiValue-Parameter-with-Multiple-Columns

एसकेजीआईएस फोरम से एसरी का जवाब:

दुर्भाग्य से, इसके लिए समाधान अभी हाल ही में 10.1 के लिए लागू किया गया था, स्क्रिप्ट टूल्स के लिए वैल्यूटेबल इनपुट्स के साथ। 9.3.1 के लिए इस काम को करने के लिए आपको कुछ कस्टम सत्यापन के साथ दो मल्टीवल्यू पैरामीटर की आवश्यकता होगी।


यदि यह बहुविकल्पी पसंद सूची की पीढ़ी है जो आप में रुचि रखते हैं - मैंने हाल ही में इस एस्री ब्लॉग पोस्ट को देखा है , यह सहायक हो सकता है।
एलेक्स टेरेशेंकोव

जवाबों:


1

मैंने इस बात पर काम किया है कि इस आरोप को काफी सरल तरीके से कैसे किया जाए। मैं एक मल्टीवल्यू पैरामीटर बनाना चाहता था जहां मैं कई फ़ीचर लाइयर्स जोड़ता हूं और फिर प्रत्येक लेयर के लिए एक आईडी फ़ील्ड चुनता हूं। मुझे यह काम कर रहा है, लेकिन मैं काम करने में असमर्थ था कि कैसे क्षेत्र को एक ड्रॉप डाउन सूची बनाऊं, इसलिए उपयोगकर्ता को मैन्युअल रूप से फ़ील्ड नाम दर्ज करना होगा। यहाँ इंटरफ़ेस है:

उदाहरण इंटरफ़ेस

अगर किसी ने इस समस्या को सुलझाने में कामयाबी हासिल की है या ईएसआरआई के किसी गुरु ने हमें अपने ज्ञान से आशीर्वाद दिया है तो मुझे यह पता लगाना अच्छा लगेगा कि विशिष्ट फ़ील्ड्स को सूचीबद्ध करते हुए, अपने दूसरे कॉलम (साइट आईडी) को ड्रॉप डाउन कैसे करें। अगर आप इसका एक उदाहरण देखना चाहते हैं तो Create TIN टूल पर एक नज़र डालें ।

वैसे भी इस इंटरफ़ेस को बनाने के लिए मैं एक स्क्रिप्ट टूल बनाता हूं और टाइप फीचर लेयर के एक पैरामीटर को जोड़ा और इसे नीचे दिखाए गए अनुसार एक मल्टीवैल्यू पर सेट करता हूं।

प्रारंभिक इंटरफ़ेस सेटिंग

मैंने तब शीर्ष पर मान्यता टैब पर क्लिक किया और फिर संपादन बटन। जैसा कि यह पैरामीटर मेरे स्क्रिप्ट टूल में 6 वां पैरामीटर है जिसे मैंने निम्नलिखित कोड अपडेट किया है:

def initializeParameters(self):
    """Refine the properties of a tool's parameters.  This method is
    called when the tool is opened."""

    # Get the 6th parameter
    param = self.params[6]
    param.datatype = "Value Table"
    param.columns = [["Feature Layer","Activity Layer"],["Field","Site ID"]]    
    return

यह इंटरफ़ेस को मल्टी कॉलम टेबल में रीसेट करता है जो मुझे चाहिए था। जब आप GetParameterAs का उपयोग करते हैं, तो यह मेरे उदाहरण का उपयोग करके निम्नलिखित रिटर्न देता है:

pipeline pid;Dredging did


मैंने कुछ और शोध किया है और अजगर टूलबॉक्स का उपयोग करके उपकरण बनाया है। यह बहुत अच्छी तरह से काम करता है, लेकिन अगर आप वापस जाते हैं और दूसरी आईडी चुनते हैं, तो एक सीमा होती है। मैंने यहाँ जियोनेट पर कोड पोस्ट किया है


0

यदि आप साइट आईडी पैरामीटर के लिए ड्रॉप-डाउन सूची की तलाश कर रहे हैं, तो आप निम्न के रूप में एक कोड का उपयोग कर सकते हैं:

 param.filters[1].list = ['pid', 'id']

तो, आप एक कर्सर बना सकते हैं या एफसी के सभी क्षेत्रों को पढ़ने के लिए एक अन्य विधि का उपयोग कर सकते हैं और उन्हें, सूची के रूप में, पिछले वाक्य को दे सकते हैं

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