Ich bin neu in der Python-Skripterstellung in ArcGIS, aber nicht neu in ModelBuilder.
Ich würde gerne die Vorteile von Python vs ModelBuilder kennenlernen.
Wann sollten wir ein Python-Skript für die GIS-Automatisierung schreiben, anstatt ModelBuilder zu verwenden?
Welche Automatisierungsfunktionen von Python stehen in ModelBuilder nicht zur Verfügung?
quelle
Wenn Sie ausschließlich innerhalb von ArcGIS arbeiten, gibt es einige Überlegungen, die ich berücksichtigen möchte, wenn ich versuche, den zu verwendenden Ansatz zu bestimmen.
Angesichts dieser Überlegungen:
Es gibt wahrscheinlich keine Antwort auf "was ist besser" für den persönlichen Gebrauch, aber wenn Sie langfristig nach Beschäftigungsmöglichkeiten suchen, werden Sie sich durch das Erlernen von Python von denen abheben, die nur wissen, wie man die vorprogrammierten Werkzeuge verwendet, oder Sie müssen nur wissen, wie Sie ModelBuilder verwenden. Sie können auch die Grenzen von Python for ArcGIS (ArcPy) verlassen und weitaus mehr Aufgaben und Projekte automatisieren, indem Sie andere proprietäre und Open-Source-GIS-Bibliotheken sowie viele Nicht-GIS-Bibliotheken (dh Datenbanken) verwenden , Bildmanipulation, Statistiken usw.).
quelle
Model Builder ist eine großartige und einfach zu erlernende visuelle Programmiersprache und ein guter Einstieg in die GIS-Programmierung im Allgemeinen. Aber in einigen Dingen kann Python mehr.
Ein Beispiel ist die Integration von Nicht-ESRI-GIS-Bibliotheken. Fast alle Open Source GIS können auch über Python angesprochen werden (zB GRASS , Sextante , QGIS , SAGA ). Dies hat mir sehr geholfen, da ich nur eine ArcView-Lizenz besitze. Jedes Mal, wenn ich ein bestimmtes Geoverarbeitungswerkzeug in ArcGIS nicht verwenden kann, überprüfe ich, welche anderen Optionen in Open Source GIS verfügbar sind. Ich nehme diese OpenSource-Tools und kombiniere sie mit ArcGIS-Tools entweder in einem größeren Python-Skript oder binde sie über ein kleineres Python-Skript in ModelBuilder ein.
Ich bin mir sicher, dass andere Mitglieder weitere Vorteile nennen können.
quelle
Wenn Sie Python und ArcGIS verwenden, erhalten Sie zusätzlich zu den Funktionen, die Sie bereits in ArcGIS hatten, die gesamte Funktionalität von Python. Ob Sie diese Kraft und Flexibilität brauchen, hängt von Ihren Wünschen ab. Darüber hinaus dauert es einige Zeit, eine Programmiersprache wie Python kennenzulernen und wirklich einzusetzen. Ob sich diese Investition für Sie lohnt, liegt ganz bei Ihnen. Für eine seriöse Datenverarbeitung ist jedoch eine echte Skriptsprache eine sehr gute Ergänzung in Ihrem Arsenal.
Abgesehen von jeglicher Funktionalität, die der ModelBuilder möglicherweise vermisst, gibt es auch eine grundlegendere Diskussion. Im Allgemeinen eignen sich Skripte viel besser zum Erstellen komplexer Workflows. Der Code wird von oben nach unten abgearbeitet und komplexe Aufgaben können zB mit Funktionen in kleinere Unteraufgaben unterteilt werden. oder Gegenstände. Ein grafisches Werkzeug wie der Modellbauer neigt dazu, eine große Spaghetti zu werden.
quelle
Ich bin ein Teil der Erstellung von Python-Skripten. Es macht mehr Spaß, Code zu schreiben, als mit Verbindungslinien zu Boxen und dergleichen herumzuspielen, zumindest für mich.
Das Tolle an Python-Skripten ist, dass Sie die Ausführung Ihrer Skripten zu einem für Sie günstigen Zeitpunkt planen können. Wenn Sie ein Skript haben, dessen Fertigstellung einige Zeit in Anspruch nimmt oder das außerhalb der regulären Geschäftszeiten ausgeführt werden muss, ist dies sehr praktisch. Sie können ein Beispiel dafür , wie ein Skript planen hier .
Und wie @Aaron erwähnt, können Sie das Looping in einem Python-Skript ganz einfach einrichten.
Wenn Sie nur mit Python-Skripten beginnen, möchten Sie möglicherweise ein Modell mit Model Builder erstellen und als Python-Skript exportieren. Ich mache das manchmal, wenn ich Probleme habe zu verstehen, wie man mehrere Werkzeuge in einem Skript benutzt. Es könnte Ihnen helfen, ein Gefühl dafür zu bekommen, wie Sie Skripte zusammenstellen.
quelle
Ich habe festgestellt, dass ich anscheinend mit keiner Lösung mehr mit Model Builder als mit Python-Scripting hängen bleibe. Die etwas „Black Box“ -Natur des Modellbauers macht es mir schwerer zu finden, wo sich das Problem befindet.
Ich habe auch festgestellt, dass ich viel mehr Hilfe zu Python finden kann. Ich neige dazu, viele Sackgassen und Themen zum Modellbau zu finden. Es gibt auch weniger Beispiele, bei denen Sie wie bei Python wahrscheinlich kleine Ausschnitte der meisten Teile eines Skripts finden, das Sie schreiben.
quelle