Організація файлів для спільного використання ArcGIS python-коду


13

Яка найкраща організаційна структура для спільного використання ArcGIS python-коду та інструментів геообробки? Або навіть, чи розділяєте код та інструменти спільного використання окремі питання?

Esri має Методи розподілу структури інструментів , опубліковані для Arcgis 9.3 та 10.0:

приклад структури папки інструментів з прикладом

Однак в інших місцях люди говорять такі речі, як Also do avoid distributing your code the way its done in Arc Scripts or Code Galleriesна користь рідного пітона Distutils . Схоже, у Esri немає відповідної статті про інструменти розповсюдження 10.1 ( ref ), яка надає деяку вагу контргурту.

Що говорить GIS.se?

Оновлення: хоч, можливо, занадто пізно, але суть цього питання стосується кращих практик щодо структури файлів і папок до того, як інструменти, які використовуються для обміну (арггіс онлайн, google-накопичувач, дроп-бокс, github, bitbucket тощо) грати.

Update2: і ніхто не буде виступати за підхід, очевидно, сироти-дистрибуторів?


Ви коли-небудь придумували для цього ефективне рішення?
traggatmot

@traggatmot ні, я ні. Сьогодні я би ознайомився з сайтом Github Есрі щодо проекту python-with-toolboxes з найбільшою кількістю зірок та / або найактивніших історій внесків (акцент на другому, оскільки цей Q стосується спільного використання та повторного використання)
matt wilkie

Відповіді:


10

У 10.1 та 10.2 папки Toolhare, які ви проілюстрували, здається, більше не документуються.

Я підозрюю, що це тому, що поточна рекомендація полягає у використанні пакетів для геообробки, а не в папках Toolshare:

Пакети геообробки створюються з одного або декількох результатів у вікні Результати. Всі дані та інструменти, що використовуються для створення результату, включені в пакет. Ви можете додати в пакет додаткові файли, такі як текстові документи, слайд-шоу та стислі ZIP-файли. Ваш колега розпаковує пакунок, щоб негайно почати використовувати його вміст.

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


... що, напевно, означає, що відповідь на питання "що таке організаційна структура" може бути виявлено вручну, розпакувавши файл пакета геообробки та вивчивши його нутрощі.
matt wilkie

Я не намагався перейменувати * .zip та розпакувати * .gpk, але я розумію, що ви могли це зробити. Я підозрюю, що це буде виглядати надзвичайно багато, як папка інструментів.
PolyGeo

5

Я використовую Google Диск, щоб поділитися сценаріями та інструментами сценаріїв Python між колегами. Усі скрипти зберігаються у спільній папці разом із інструментальним інструментом ArcGIS, який містить усі пов'язані інструменти (та моделі) сценаріїв. У цьому підході є кілька переваг: 1) кожен працює над одними і тими ж версіями сценаріїв; 2) можна встановити привілеї для запису або лише для читання; 3) співпраця, наприклад, на різних робочих місцях, університетах та країнах, набагато простіше за допомогою Google Диск, ніж намагатися встановити доступ користувача на сервері, який ви можете або не можете адмініструвати.


1
+1, і те саме можна сказати і для Dropbox
om_henners

Отже, ви зберігаєте всі свої сценарії та скриньки інструментів на одному рівні папок, правда?
RyanKDalton

@RyanDalton Для простоти я зазвичай зберігаю папки одна глибока на тому ж рівні, що і скриньки інструментів. Хоча, Gdrive також підтримує складну структуру файлів.
Аарон

2
Кожен, хто вважає цей робочий процес привабливим, обов'язково повинен ознайомитися з програмним забезпеченням для управління версіями Git та його популярним веб-сайтом для спільного використання сховищ, GitHub. Він дає вам усе вищезазначене - головний скрипт, визначені привілеї та широку доступність - з можливістю відстежувати всі зміни, внесені до сценарію (включаючи дату та автора), експериментувати з новими можливостями при збереженні виробничої версії, керувати кількома редагування одних і тих же файлів одночасно тощо. У використанні складніше, але я вважаю, що це дуже корисно.
Метт Паркер

Google Drive, Dropbox, Git + Github, Mercurial + Bitbucket та друзі - це чудові маршрути для обміну файлами та кодом, але це не суть цього питання. Я дотримуюся кращих практик щодо структури файлів і папок, перш ніж вступити в дію інструменти, які використовуються для спільного використання.
matt wilkie

1

Документ ArcGIS Pro від Esri Розширення геопроцедури за допомогою модулів Python показує, як структурувати проект, який є дружнім для Distutils, включаючи створення бінарних установників Windows та Linux.

(Примітка. Це для спільного використання сценаріїв та інструментів. Це не дуже хороша модель для спільного використання скриптів, карт та даних як єдиний пакет.)

Макет проекту:

Src дерево

Це стає в системі кінцевого користувача, під C:\Path\to\ArcGIS\Desktop\python

Дерево папок призначення

Вони не згадують pip, але, вивчаючи приклади, я не розумію, чому це не вийшло. Наприклад: для спільного редагування та / або набору інструментів, які часто змінюються, встановіть за допомогою pip install --editable X:\path\to\src,pip install --editable http://github.com/project/path/to/master

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