ArcGIS पायथन स्क्रिप्ट टूल निष्पादन के दौरान उपयोगकर्ता इनपुट के लिए शीघ्र?


9

मैं स्क्रिप्ट इनपुट के लिए सभी मापदंडों को निर्दिष्ट करने के बाद उपयोगकर्ता इनपुट के लिए संकेत देना चाहता हूं। मैंने इस बारे में कई फोरम पोस्ट और स्टैकएक्सचेंज प्रश्न देखे हैं, और वे सभी निष्कर्ष निकालते हैं कि यह अनावश्यक है, लेकिन मुझे लगता है कि मेरा मामला एक अपवाद है। मैं उपयोगकर्ता को डेटा की पुष्टि करने का अवसर देना चाहता हूं, जैसे कि जीपीएस के कितने सेट हैं। वे हां / नहीं सवाल करेंगे ("क्या यह डेटा स्पष्ट रूप से गलत है?"), और स्क्रिप्ट टूल पैरामीटर इनपुट फॉर्म ऐसा नहीं लगता कि यह इसके लिए अच्छा काम करेगा।

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


जाहिरा तौर पर wxPython काम करता है , लेकिन यह अजगर के साथ शामिल नहीं है। मुझे आर्कजीआईएस के अलावा किसी भी अतिरिक्त आवश्यकताओं के बिना इन लिपियों को वितरित करने में सक्षम होने की आवश्यकता है, ताकि मेरे लिए काम न करें।


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


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


11
मैं इसके खिलाफ सलाह दूंगा। स्क्रिप्ट टूल का अर्थ है कि "रन" को हिट करने के बाद उपयोगकर्ता इंटरैक्शन के बिना चलने में सक्षम हो। आप सत्यापन कोड का उपयोग करके अधिक प्रासंगिक चेतावनी / त्रुटि संदेश प्रदान करने में सक्षम हो सकते हैं , हालांकि।
blah238

2
आप उप-प्रक्रिया को हैकिश कहते हैं, लेकिन जहां तक ​​उपयोगकर्ता इनपुट प्राप्त करने का है, मुझे लगता है कि यह आपका एकमात्र विकल्प हो सकता है यदि आप अजगर स्क्रिप्ट टूल के साथ चिपके हुए हैं। जिस तरह से मैं यह करूँगा, अगर मुझे पूरी तरह से अजगर स्क्रिप्ट टूल के साथ उपयोगकर्ता की बातचीत करनी थी, तो एक सी # उप-प्रक्रिया को कॉल करके। अगर मुझे याद है, तो अजगर कोड रुक जाएगा और जारी रखने से पहले उप-प्रक्रिया के पूरा होने की प्रतीक्षा करेगा। यह आपको C # में निर्मित उपयोगकर्ता सहभागिता की एक असीम मात्रा को शामिल करने का अवसर देता है। आप ऑब्जेक्ट्स को C # से पास नहीं कर सकते हैं, लेकिन आपको अपना डेटा स्ट्रिंग रूप में प्राप्त करना होगा।
ब्लूफूट

हालांकि रिकॉर्ड के लिए मैं blah238 से सहमत हूं
ब्लूफूट

4
स्क्रिप्ट टूल्स में यही मान्य है।
232 बजे user2856

मुझे लगा कि सत्यापन केवल स्क्रिप्टेड सत्यापन के लिए है, और उपयोगकर्ता इनपुट प्राप्त नहीं कर सकता है? क्या मैं सत्यापनकर्ता से हां / नहीं संकेत देता हूं, या कुछ और जो समान प्रभाव होगा?
user14144

जवाबों:


2

मुझे यकीन नहीं है, क्या यह विकल्प आपके लिए काम कर सकता है या नहीं, लेकिन क्या आप एसी # एप्लिकेशन बनाने के बारे में सोच सकते हैं।

  1. इस एप्लिकेशन के माध्यम से सभी उपयोगकर्ता सहभागिता और डेटा सत्यापन करें।
  2. सभी डेटा को मान्य करने के बाद, अजगर स्क्रिप्ट चलाएँ।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.