पायथन स्क्रिप्ट टूल्स के ऊपर पायथन टूलबॉक्स क्यों सीखें / उपयोग करें? [बन्द है]


25

मैंने कुछ पायथन टूलबॉक्स लिखे हैं (जो कि आर्कजीआईएस 10.1 पर नए हैं), लेकिन अभी तक यह तय नहीं किया है कि मुझे मानक टूलबॉक्स में पायथन स्क्रिप्ट टूल्स के बजाय लिखना चाहिए / नहीं।

मैंने सोचा था कि ऑनलाइन मदद मुझे बता सकती है जब यह कुछ बिंदुओं के साथ पूर्ववर्ती करता है:

एक बार बनाने के बाद, पायथन टूलबॉक्स में उपकरण कई फायदे प्रदान करते हैं

हालाँकि, सूचीबद्ध किए गए पांच फायदे, उपकरण लिखने के लिए पायथन का उपयोग करने में सक्षम नहीं हैं, और पायथन स्क्रिप्ट टूल्स पर पायथन टूलबॉक्स के एक लाभ को निर्दिष्ट करने के लिए कोई भी नहीं लगता है।

दो फायदे जो मैं सोच सकता हूँ वो हैं:

  • मैं अब एक एकल पायथन लिपि में "शुद्ध" पायथन टूल लिख सकता हूं, बिना इसके टूल वैलिडेशन के साथ एक अलग से अधिकृत डायलॉग को हुक करने के लिए, जैसा कि यह देखा गया था, लेकिन यह इस संबंध में शुद्ध होने के बजाय व्यावहारिक होने के लिए खुश हूं
  • मैं अब पायथन टूलबॉक्स के लेखन को स्वचालित करने के लिए कोड (पायथन या पाठ फ़ाइलों को लिखने में सक्षम किसी भी भाषा) का उपयोग कर सकता हूं, लेकिन ऐसा करने के लिए मुझे अभी आवश्यकता नहीं है

क्या मैं सम्मोहक मामले को अनदेखा कर रहा हूं जिससे एशरी को पायथन टूलबॉक्स क्षमता प्रदान करने का नेतृत्व किया गया था और यदि हां, तो यह क्या है?

जवाबों:


34

दोनों बहुत, कार्यक्षमता में बहुत करीब हैं, लेकिन पूरी तरह से समकक्ष नहीं हैं।

दोनों को आम

  • पहचान के लिए एक अद्वितीय उपनाम के साथ उपकरणों का एक सेट शामिल है
  • आर्कपी से कॉल कर सकते हैं
  • प्रत्येक उपकरण के लिए एक जियोप्रोसेसिंग टूल डायलॉग (अनिवार्य रूप से एक पूर्ण यूआई) मुफ्त में प्राप्त करें
  • एक फ़ाइल में सभी पायथन कोड रख सकते हैं ( TBXसभी कार्यान्वयन को एक में रखकर उपकरण स्रोत को एम्बेड करें PYT) और ईमेल या साझा नेटवर्क ड्राइव के माध्यम से वितरित करें
  • हमेशा डेस्कटॉप अनुप्रयोगों के लिए अग्रभूमि सेटिंग में चलाएंArcPy कोड में "हमेशा अग्रभूमि में चलना" सेट करना?

TBX फ़ाइलों के लिए अद्वितीय:

  • सिस्टम टूलबॉक्स, कस्टम COM उपकरण और कस्टम .Net उपकरण के संदर्भ शामिल हो सकते हैं
  • मॉडल बिल्डर टूल टूलबॉक्स में शामिल किए जा सकते हैं
  • टूल डॉक्यूमेंट को .tbx फ़ाइल के अंदर संग्रहीत किया जाता है
  • पैरामीटर सेट करने और सत्यापन कोड करने के लिए आसान विज़ार्ड UI
  • प्रक्रिया उपकरण गुण में पायथन स्क्रिप्ट चलाएँ
  • नुकसान: अपारदर्शी द्विआधारी प्रारूप, टीबीएक्स फ़ाइलों के नए संस्करणों को स्पष्ट रूप से पुराने संस्करणों के रूप में सहेजने की आवश्यकता है सॉफ्टवेयर के पिछले संस्करणों में काम करने के लिए, यूआई एक दोहरी धार वाली तलवार हो सकती है क्योंकि आपको संपत्ति पृष्ठों के बीच स्विच करना होगा यह देखने के लिए कि क्या आप चूक गए हैं सेटिंग (जैसे रिश्तेदार पथ)

पायथन टूलबॉक्स के लिए अद्वितीय:

  • सादा पाठ, इसलिए टूलबॉक्स को किसी भी अन्य कोड के समान माना जा सकता है (वातावरण में उपयोगी जहां अच्छा संशोधन नियंत्रण टूलिंग का उपयोग किया जाता है, क्योंकि आप इसके विकास के इतिहास का पता लगा सकते हैं - यह देखिए कि GitHub पर कितनी परियोजनाएं उपयोग की PYTजाती हैं TBX।)
  • कुछ पैरामीटर प्रकारों पर अधिक नियंत्रण रखें (जैसे कि आप समग्र डेटाटाइप कर सकते हैं और मान तालिका 'स्कीमाटा' को परिभाषित कर सकते हैं)
  • यदि किसी उत्पाद ("ArcInfo") या एक्सटेंशन ("स्थानिक") उपलब्ध नहीं है, तो टूल को अक्षम करने के लिए उपयोग की गई संपत्ति का उपयोग किया जा सकता है।
  • टूल डॉक्यूमेंट को .pyt के समान XML फ़ाइलों में संग्रहीत किया जाता है
  • नुकसान: उपकरण मानकों को कॉन्फ़िगर करने के लिए कोई विज़ार्ड यूआई नहीं, पायथन में काफी अधिक मचान कोड, केवल एक कार्यान्वयन स्क्रिप्ट जोड़ने पर टूलबॉक्स विकास को एक औपचारिक सॉफ़्टवेयर विकास कार्य में बदल देता है। विकासशील होने के दौरान परिवर्तनों को लोड करने के लिए एक पाइट को फिर से लोड करना धीमा हो सकता है यदि पाइट बड़ा है (इसे अन्य फ़ाइलों में उपकरण डालकर और आयात करने से बचा जा सकता है ताकि उन्हें फिर से संकलित करने की आवश्यकता न हो)।

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


15

कम्पेयरिंग कस्टम और पायथन टूलबॉक्स नामक शीर्षक अनुभाग की बहुत अच्छी तुलना है कि आप एक से दूसरे को क्यों चुन सकते हैं, हालांकि मैं पायथन टूलबॉक्स बनाने में अनुभवी लोगों से "वास्तविक दुनिया" के फायदे / नुकसान सुनने के लिए उत्सुक हूं।

एक स्पष्ट नुकसान जो मैंने पढ़ा है वह पायथन टूलबॉक्स में मॉडल और स्क्रिप्ट को मिलाने / मिलान करने में असमर्थता है, जैसा कि आप एक मानक कस्टम टूलबॉक्स में कर सकते हैं।


11

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

हालांकि रयान डाल्टन नोट करते हैं , ऐसा करने से आप मॉडल बिल्डर और पुराने स्टाइल टूल्स का उपयोग करने की क्षमता खो देते हैं - जब तक आप सामान्य रूप से मॉडल के निर्माण के प्रयास से गुजरने के लिए तैयार नहीं होते हैं और तब अजगर को निर्यात करते हैं और फिर फिट होने के लिए फिर से लिखते हैं। .pyt में। (यदि आप ऐसा करते हैं तो आर्कगिस में पायथन टूलबॉक्स (.pyt) के आयोजन के लिए दिशानिर्देशों पर एक नज़र डालें )। वर्तमान में यह नुकसान काफी बड़ा है जिसे मैंने अभी तक अजगर टूलबॉक्स के उपयोग को गंभीरता से लिया है।

यदि आपके पास मौजूदा टूलबॉक्स हैं, तो आप .pyt में बदलना चाहते हैं, तो आपको जेसन शहीर का tbxtopyt आंशिक कनवर्टर उपयोगी मिल सकता है।

"सम्मोहक मामले के लिए?" प्रश्न का हिस्सा: यदि आपके पास पहले से ही कुछ सॉफ़्टवेयर डेवलपमेंट चोप्स हैं, तो निश्चित रूप से। अगर मेरी तरह आप 3 भाग जीआईएस टेक / एनालिस्ट और 1 भाग या कम पायथोनिस्टा हैं, तो ज्यादा नहीं। (कम से कम अभी तक नहीं - मैं वास्तव में इस द्विआधारी एक या दो निकट भविष्य की रिलीज में परिवर्तन की प्रकृति की उम्मीद है।)

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