Die Versionskontrolle ist ein unverzichtbares Werkzeug für die Softwareentwicklung, mit dem Sie zuverlässig und sauber in die Vergangenheit zurückkehren können, als X seinen Job genau richtig gemacht hat, oder um zu sehen, was sich zwischen damals und heute geändert hat - normalerweise, wenn Sie herausfinden möchten, warum X funktioniert nicht mehr genau richtig.
Alle mir bekannten Tools funktionieren jedoch nur für reine Textdateien. Toolboxen (Standard- Toolboxen , nicht die in 10.1 eingeführten Python-Toolboxen ) und damit ihre Modelle sind binär. Hat jemand eine praktikable Methode, um Versionierung zu bringen?
Hinweis: Die Versionierung unterscheidet sich von der Sicherung . Es gibt eine Reihe von einfachen Methoden Schnappschüsse von Dateien für eine bestimmtes Datum / Uhrzeit erstellen - Windows - Backup, frühere Versionen , xcopy /s d:\foobar\ x:\foobar_%date%
, zip stuff_%date%.zip stuff\*
, und so weiter.
Das Anwenden eines Tools wie " git" , " fossil" , " mercurial" , " subversion" oder " ..." auf eine Binärdatei ist einen Schritt besser als die Verwendung von "xcopy" oder "zip in", da eine Festschreibungsmeldung hinzugefügt werden kann. "Model foobar% date% überschreibt jetzt die vorherige Ergebnisse nur, wenn Baz nicht existiert " , aber immer noch anämisch im Vergleich zu dem, was dasselbe Toolset für Textdateien tun kann: Zeigen Sie mir beispielsweise genau, was sich zwischen dem letzten Jahr und dem heutigen Tag geändert hat .
quelle
Derzeit wird der Workflow von ArcCatalog ausgeführt: Öffnen der Toolbox> Auswählen des Modells> Bearbeiten> Datei> Exportieren> In Python , Wechseln zum SCM-Tool > Aktualisieren von Änderungen> Festschreiben von Änderungen (Geben Sie einen Protokollkommentar ein) .
Es ist umständlich, deshalb mache ich es nicht so oft und verliere dadurch viele der Vorteile der Versionierung.
quelle
ModelBuilder ist alt, klobig und wird mit ArcGIS Pro nicht mehr aktualisiert, wenn dieser Tweet ein Hinweis ist. Ich war noch nie ein großer Fan davon (obwohl ich es immer noch missbilligend benutze, wenn ich muss), daher könnten Sie diese Antwort als Umgehung der Frage und als Empfehlung betrachten, nach Alternativen zu suchen .
FME ist wohl die naheliegendste ModelBuilder-Alternative, da sie eine ähnliche Flussdiagramm-Benutzeroberfläche hat. Ein relevanter Vorteil ist, dass die Dokumente im Nur-Text-Format vorliegen und daher unterschiedlich sein können (obwohl es oft bedeutungslose, automatisch generierte Cruft gibt, deren Ignorieren Sie erst lernen müssen). Da es sich jedoch um kommerzielle Software handelt, sind die Kosten für einige möglicherweise nicht in Reichweite.
Andere, mit denen ich weniger vertraut bin, sind die Orfeo Toolbox , die Whitebox Geospatial Analysis Tools und der grafische Modellierer von QGIS (basierend auf SEXTANTE ). Dies sind alles Open Source-Modellierungsumgebungen mit GUIs.
Ein großer Schub, den ich in den letzten Jahren bei GIS und Open Data-Konferenzen beobachtet habe, geht in Richtung "reproduzierbare Forschung", dh Daten und Prozesse, die leicht mit anderen geteilt und reproduziert werden können. Dies bedeutet häufig die Verwendung offener Datenformate, Open Source-Software und freigegebener Repositorys. Python und R sind dafür sehr beliebt.
Ich dachte, dass Dharhas Pothinas Präsentation zu Python und GIS Anfang dieses Jahres ein gutes Argument dafür ist. Ich stimme voll und ganz zu, dass eine zu starke Abhängigkeit von einer grafischen Benutzeroberfläche die Reproduzierbarkeit beeinträchtigt. Mit Code können Sie, solange Sie mit der Sprache vertraut sind, diese ziemlich schnell durchsuchen und herausfinden, was los ist. Mit einer grafischen Benutzeroberfläche müssen Sie durch viele verschiedene Fenster scrollen, die oft tief ineinander verschachtelt sind , um an Werte und Einstellungen zu gelangen.
Natürlich gibt es hier einen Kompromiss, aber meiner Meinung nach sollte jeder, der ernsthafte Arbeit leistet (wissenschaftliche Forschung, Politikgestaltung usw.), Werkzeuge verwenden, die die Reproduzierbarkeit erleichtern.
Entschuldigung, dass dies Ihre Frage nicht direkt beantwortet (obwohl ich nicht glaube, dass es eine einfache Antwort gibt).
quelle
Die Einführung von Python-Toolboxen in ArcGIS 10.1 for Desktop macht Ihre vier Jahre alte Aussage ungültig, dass alle :
Standard-Toolboxen sind Binärdateien, aber Python-Toolboxen (* .pyt) sind Textdateien.
Folglich denke ich, dass Python-Toolboxen in Betracht gezogen werden sollten, wenn die Versionskontrolle des Quellcodes die Anforderungen an eine GUI zur Modellbildung übertrifft.
Sie kennen dies aus Ihrer Antwort auf Warum sollten Sie Python-Toolboxen über Python-Skript-Tools lernen / verwenden? Aber ich dachte, ich sollte dies hier als Antwort aufnehmen, damit die Option, Python-Toolboxen anstelle von Standard-Toolboxen zu verwenden (um einen einfachen Zugriff auf die Versionskontrolle zu erhalten), von zukünftigen Lesern dieser Fragen und Antworten nicht übersehen wird.
quelle
Ich bin in vielerlei Hinsicht froh, dass ESRI mit der Umstellung auf ArcGIS Pro nicht das gesamte Geoprocessing Framework und Modelbuilder überarbeitet hat. Es gibt viele (Forschungs-) Organisationen, die massiv in den Bau von riesigen kundenspezifischen Modellen investiert haben, die zweifellos eine vollständige Überarbeitung benötigen würden, wenn ESRI die Kompatibilität nicht mehr gewährleisten würde.
Wie beim Übergang zu Python / Geoverarbeitung aus dem Hintergrund von Arc / Info-AML-Makros würde dies zweifellos eine enorme Auswirkung haben und viele Menschen in Gefahr sein. Sogar 5 - 8 Jahre nach der ersten Veröffentlichung von ArcGIS gab es immer noch Forscher und Regierungsorganisationen, die gelegentlich in Foren wie diesem auf AML-Modelle Bezug nahmen und die aus Zeit-, Geld- oder Kostengründen noch nicht in Python konvertiert werden konnten andere Einschränkungen. Dies verdeutlicht nur die möglichen Auswirkungen eines solchen Übergangs, der zweifellos gewaltig sein würde.
Ich bin damit einverstanden, dass ModelBuilder manchmal "klobig" sein kann, wenn Sie es nicht genau kennen, aber seit ich wirklich Python lerne und die Tool-Validierungs-Programmierung verstehe ( http://resources.arcgis.com/en/help/main) /10.2/index.html#//00150000000v000000 ), ein Großteil des "Schmerzes" wurde gelindert. Ich verstehe jetzt einige der "kryptischen" Fehlermeldungen, die die Toolvalidierung auslösen kann, viel besser und weiß nicht, welcher Teil des Modells defekt ist. Ich kann sie jetzt effektiver beheben oder verhindern, indem ich den richtigen Toolvalidierungscode schreibe . Dies ist besonders dann von Nutzen, wenn Sie Nicht-Python-Toolboxen / -Modelle in Python-Skripte "integrieren".
Einen Wunsch habe ich allerdings noch, und das würde das Leben mit ModelBuilder sehr bereichernEinfacher ist es, wenn die automatische Toolvalidierung die Tools tatsächlich hervorhebt und automatisch die Modelle öffnet, die die Warnungen oder Fehler in Bezug auf Variablen verursachen. Alternativ sollten die Fehler- und Warnhinweise, die angezeigt werden, wenn Sie bei einem ungültigen Modell auf "OK" klicken, mindestens den genauen Werkzeugnamen und den Namen des Modells enthalten, in dem sich das ungültige Werkzeug befindet. Wenn Sie über viele verschachtelte Modelle verfügen, kann es manchmal mühsam sein, das Tool zu finden, das einen bestimmten Überprüfungsfehler verursacht hat, wenn nur eine Auflistung von Fehlern ohne den Namen des Tools oder des (Unter-) Modells, sondern nur den ungültigen Variablennamen angezeigt wird. Ich bin mir nicht sicher, warum ESRI das Tool und den Modellnamen nicht in die Liste aufgenommen hat. Dies scheint eine einfache Lösung für dieses Problem zu sein.
Auch eine Art "Such" -Funktionalität, um Werkzeuge nach Namen zu finden, wie sie in den Modellen definiert sind, wäre praktisch.
quelle