Dateiorganisation zum Freigeben von ArcGIS-Python-Code

13

Was ist die beste Organisationsstruktur für die Freigabe von ArcGIS-Python-Code und Geoverarbeitungswerkzeugen? Oder sind Code-Sharing und Sharing-Tools getrennte Fragen?

Esri verfügt über eine für Arcgis 9.3 und 10.0 veröffentlichte Struktur für Methoden zum Verteilen von Tools :

Beispiel für die Verteilung der Ordnerstruktur eines Werkzeugs

An anderen Orten sagen die Leute jedoch Dinge wie Also do avoid distributing your code the way its done in Arc Scripts or Code Gallerieszugunsten der einheimischen Python Distutils . Esri scheint keinen entsprechenden Distributing Tools-Artikel für 10.1 ( ref ) zu haben, der dem Gegenargument etwas Gewicht verleiht.

Was sagt GIS.se?

Update: Obwohl dies vielleicht zu spät ist, geht es in dieser Frage eher um bewährte Methoden für die Datei- und Ordnerstruktur, bevor die für die Freigabe verwendeten Tools (arcgis online, Google Drive, Dropbox, Github, Bitbucket usw.) angesprochen werden abspielen.

Update2: Und wird sich niemand für den Ansatz von Orphan Distutils aussprechen?

Matt Wilkie
quelle
Haben Sie jemals eine praktikable Lösung dafür gefunden?
traggatmot
@traggatmot nein habe ich nicht. Heute würde ich Esris Github-Site nach dem Python-with-Toolboxes-Projekt mit den meisten Sternen und / oder dem aktivsten Beitragsverlauf
durchsuchen

Antworten:

10

In 10.1 und 10.2 scheinen die von Ihnen abgebildeten Toolshare-Ordner nicht mehr dokumentiert zu sein.

Ich vermute, dies liegt daran, dass die aktuelle Empfehlung darin besteht, Geoverarbeitungspakete anstelle von Toolshare-Ordnern zu verwenden:

Geoverarbeitungspakete werden aus einem oder mehreren Ergebnissen im Ergebnisfenster erstellt. Alle Daten und Tools, die zum Erstellen des Ergebnisses verwendet wurden, sind im Paket enthalten. Sie können dem Paket zusätzliche Dateien hinzufügen, z. B. Textdokumente, Diashows und komprimierte ZIP-Dateien. Ihr Kollege packt das Paket aus, um den Inhalt sofort zu verwenden.

In Bezug auf die organisatorischen Best Practices befinden sich die von mir verwendeten Toolboxes und der von ihnen verwendete Python-Code in derselben Ordnerstruktur, die auch weiterhin für die Verteilung verwendet werden kann, z. B. die Toolshare-Ordnerstruktur.

PolyGeo
quelle
... was meiner Meinung nach bedeutet, dass die Antwort auf "Was ist die Organisationsstruktur" durch manuelles Entpacken einer Geoverarbeitungspaketdatei und Untersuchen ihrer Innereien gefunden werden kann.
Matt Wilkie
Ich habe nicht versucht, ein * .gpk in * .zip umzubenennen und zu entpacken, aber ich verstehe, dass Sie das tun könnten. Ich vermute, es wird sehr viel wie ein Toolshare-Ordner aussehen.
PolyGeo
5

Ich habe Google Drive verwendet , um Python-Skripte und Skript-Tools für Kollegen freizugeben. Alle Skripte werden in einem freigegebenen Ordner zusammen mit einer ArcGIS-Toolbox gespeichert, die alle verknüpften Skriptwerkzeuge (und Modelle) enthält. Dieser Ansatz bietet mehrere Vorteile: 1) Alle arbeiten mit denselben Skriptversionen. 2) Sie können Schreib- oder Leseberechtigungen festlegen. 3) Die Zusammenarbeit zwischen verschiedenen Arbeitsplätzen, Universitäten und Ländern ist mit Google viel einfacher Fahren Sie, als zu versuchen, den Benutzerzugriff auf einem Server festzulegen, den Sie möglicherweise verwalten oder nicht.

Aaron
quelle
1
+1, und das gleiche gilt für Dropbox
om_henners 17.10.12
Sie speichern also alle Ihre Skripte und Toolboxes auf derselben Ordnerebene, richtig?
RyanKDalton
@ RyanDalton Der Einfachheit halber speichere ich normalerweise Ordner in einer Tiefe auf der gleichen Ebene wie Toolboxes. Gdrive unterstützt jedoch auch komplizierte Dateistrukturen.
Aaron
2
Wer diesen Workflow attraktiv findet, sollte sich unbedingt die Versionskontrollsoftware Git und die beliebte Repository-Sharing-Website GitHub ansehen . Dies alles - ein Masterskript, definierte Berechtigungen und umfassende Zugriffsmöglichkeiten - bietet Ihnen die Möglichkeit, alle am Skript vorgenommenen Änderungen (einschließlich Datum und Autor) nachzuverfolgen, mit neuen Funktionen zu experimentieren und gleichzeitig die Produktionsversion beizubehalten sowie mehrere zu verwalten Gleichzeitiges Bearbeiten derselben Dateien usw. Die Verwendung ist komplizierter, aber ich habe es als äußerst nützlich empfunden.
Matt Parker
Google Drive, Dropbox, Git + Github, Mercurial + Bitbucket und Freunde sind großartige Wege, um Dateien und Code zu teilen, aber das ist nicht der Kern dieser Frage. Ich bin auf der Suche nach bewährten Methoden für die Datei- und Ordnerstruktur, bevor die für die Freigabe verwendeten Tools zum Einsatz kommen.
Matt Wilkie
1

In Esris ArcGIS Pro-Dokument " Erweitern der Geoverarbeitung über Python-Module" wird gezeigt, wie Sie ein Distutils-freundliches Projekt strukturieren, einschließlich der Erstellung von Windows- und Linux-Binärinstallationsprogrammen.

(Hinweis: Dies ist für die gemeinsame Nutzung von Skripten und Tools gedacht. Es ist kein gutes Modell für die gemeinsame Nutzung von Skripten, Karten und Daten als einzelnes Paket.)

Quellprojektlayout:

Src Baum

Wird dies auf dem Endbenutzersystem unter C:\Path\to\ArcGIS\Desktop\python

Zielordner-Baum

Sie erwähnen Pip nicht, aber wenn ich die Beispiele studiere, sehe ich nicht, warum es nicht funktionieren würde. Beispiel: Für die gemeinsame Bearbeitung und / oder ein Toolset, das sich häufig ändert, installieren Sie es mit pip install --editable X:\path\to\src,pip install --editable http://github.com/project/path/to/master

Matt Wilkie
quelle