Навіщо вивчати / використовувати панелі інструментів Python для інструментів сценарію Python? [зачинено]


25

Я написав декілька наборів інструментів Python (які є новими в ArcGIS 10.1), але я ще не вирішую, чи / коли я повинен писати їх, а не Python Script Tools у стандартній панелі інструментів.

Я думав, що Інтернет-допомога може просвітити мене, коли вказує на деякі точки:

Після створення інструменти в наборі інструментів Python надають багато переваг

Однак п'ять перерахованих переваг, схоже, перевищують неможливість використання Python для написання інструментів, і жодна з них, схоже, не вказує на перевагу інструментів Python Toolbox над інструментами сценаріїв Python.

Я можу придумати дві переваги:

  • Тепер я можу написати "чистий" інструмент Python в одному сценарії Python, не потребуючи підключення його до окремо створеного діалогового вікна з його перевіркою інструментів, схожим на це, але я радий бути прагматичним, а не чистим у цьому плані
  • Зараз я можу використовувати код (Python або будь-яку мову, здатну писати текстові файли) для автоматизації написання скриньки інструментів Python, але я ще не стикаюся з вимогою зробити це

Чи я не помічаю переконливого випадку, який призвів Esri до можливості Python Toolbox, і якщо так, то що це?

Відповіді:


34

Ці два дуже-дуже близькі за функціональністю, але не зовсім рівноцінні.

Спільне для обох

  • Включає набір інструментів з унікальним псевдонімом для ідентифікації
  • Може дзвонити з архпії
  • Отримайте безкоштовно діалогове вікно діалогу інструментів Geoprocessing (фактично повний інтерфейс користувача) для кожного інструменту
  • Може зберігати весь код Python в одному файлі (вбудоване джерело інструмента в TBX, утримуючи всю реалізацію в одному PYT) і поширювати електронною поштою або спільними мережевими накопичувачами
  • Завжди виконайте налаштування переднього плану для настільних програм. Налаштування "Завжди працювати на передньому плані" в коді ArcPy?

Унікальні для TBX файли:

  • Може містити посилання на системні скриньки інструментів, користувацькі інструменти COM та спеціальні інструменти .Net
  • Інструменти Model Builder можна включити до панелі інструментів
  • Документація інструменту зберігається у файлі .tbx
  • Простий інтерфейс майстра для налаштування параметрів та виконання коду перевірки
  • Запустіть сценарій Python у властивості інструмента Process
  • Недолік: Непрозорий бінарний формат, новіші версії файлів TBX повинні бути явно збережені як старіші версії для роботи в попередніх версіях програмного забезпечення, користувальницький інтерфейс може бути мечем з двома краями, оскільки вам доведеться перемикатися між сторінками властивостей, щоб побачити, чи не пропустили ви налаштування (наприклад, відносні шляхи)

Унікальні для скриньки інструментів Python:

  • Звичайний текст, так Інструментарії можна розглядати так само , як будь-який інший код (корисно в середовищах , де контроль хорошого перегляду інструменти використовуються як ви можете простежити його історію розвитку - погляд на те, як багато проектів на GitHub використовувати PYTбільш TBX.)
  • Майте більше контролю над певними типами параметрів (а саме ви можете робити складені типи даних та визначати схеми таблиць значень)
  • властивість isLicensed може використовуватися для відключення інструменту, якщо продукт ("ArcInfo") або розширення ("просторовий") недоступний.
  • Документація інструменту зберігається у файлах XML у тій же папці, що і .pyt
  • Недолік: відсутність майстра інтерфейсу для налаштування параметрів інструменту, значно більше коду лісу в Python перетворює розробку Toolbox в більш офіційне завдання розробки програмного забезпечення, а не просто додавання сценарію реалізації. Перезавантаження піта для завантаження змін під час розробки може бути повільним, якщо pyt великий (цього можна уникнути, помістивши інструменти в інші файли та імпортуючи, щоб їх не потрібно було повторно компілювати).

Деякий час тому, коли я працював над моїм першим десятком або близько того PYTінструментальних ящиків, я розгубився, скільки клопоту було вперше налаштувати PYT, тому я розробив інструмент під назвоюtbx2pyt . Це займе TBXпанель інструментів і перетворить її PYTв мінімальну втрату коду. Насправді, PYTщо влада спочатку була TBX. Це може бути хорошим способом переходу існуючих інструментів у формат панелі інструментів Python, якщо ви цього хочете. Як мінімум, це дозволяє налаштувати параметри ваших інструментів за допомогою інтерфейсу користувача перед переходом на код.


15

У розділі довідки під назвою Порівняння наборів інструментів і Python є досить хорошим порівнянням того, чому ви можете вибрати один за іншим, хоча мені було б цікаво почути переваги / недоліки "реального світу" від тих, хто має досвід створення Python Toolboxes.

Одним із чітких недоліків, які я читаю, є неможливість змішування / співставлення моделей та сценаріїв у панелі інструментів Python, як це можливо у стандартній панелі інструментів.


11

Моя причина номер один нахиляється до наборів інструментів python - це управління версіями та керування вихідним кодом (див. Застосування контролю версій до моделей ArcGIS ), після чого дуже уважно використовую редактор коду / IDE для заповнення вкладок, регулярних виразів, бібліотек фрагментів, тощо.

Однак, як зауважує Райан Далтон , тим самим ви втрачаєте можливість використовувати Model Builder та інструменти старого стилю - якщо тільки ви не готові докласти зусиль зі створення моделі, як зазвичай, а потім експортувати на python, а потім переписувати, щоб відповідати в .pyt. (Якщо це зробити, подивіться вказівки щодо організації Python Toolboxes (.pyt) в ArcGIS ). В даний час цей недолік досить великий, що я ще серйозно ставлюсь до використання інструментів python.

Якщо у вас є наявні панелі інструментів, які ви хочете перетворити на .pyt, вам може бути корисний частковий перетворювач tbxtopyt Джейсона Шейрера .

Щодо "переконливої ​​справи"? частина питання: якщо у вас вже є деякі відбивні програми для розробки програмного забезпечення, так, безумовно. Якщо мені подобається, ви 3 частини GIS Tech / Analyst і 1 частина або менше пітоніста, не так багато. (Принаймні, поки що - я дуже сподіваюся, що ця двійкова та інша природа двох підходів зміниться найближчим часом.)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.