Gibt es einen Leistungsunterschied zwischen dem Python-Fenster und dem Python-Skript-Tool?

9

Gibt es einen Leistungsunterschied zwischen dem Ausführen eines Python-Skripts im Python-Fenster und dem Ausführen als Python-Skript-Tool in der Toolbox in ArcGIS Desktop 10.0?

Manchmal muss ich ArcPy verwenden und ArcGIS ausführen. Nach meiner jüngsten Erfahrung kann ich dasselbe Skript über die Toolbox und im Python-Fenster ausführen, und die Toolbox scheint etwas schneller zu sein.

Hotpepper
quelle
Bei Verwendung von eigenständigen Skripten: Sie müssen Arcmap nicht öffnen, wodurch Sie Zeit und Ressourcen (CPU und Speicher) sparen. Ich kann mir im Moment keinen anständigen Computer leisten.
gm70560
Die Toolbox kann das aktuelle Kartendokument auch nicht berühren. Sie müssen auf einen mxd zeigen, um etwas mit einer bestimmten Map in einem Tool zu tun. Dabei können Sie arcpy.mapping.MapDocument ("CURRENT") im Python-Fenster verwenden.
Eseglem
3
@eseglem, Sie sollten auf jeden Fall in der Lage sein, das CURRENTSchlüsselwort zu verwenden, um auf das aktuelle Kartendokument in einem Skript-Tool zuzugreifen, solange es in Bearbeitung ausgeführt wird.
blah238
1
@ gm70560 Wenn Sie ein eigenständiges Skript ausführen, müssen Sie eine Art Arcmap-Instanz erstellen, was einige Zeit in Anspruch nimmt. Innerhalb des Python-Fensters, das bereits gestartet ist.
Matthew Snape
2
import arcpyAls eigenständiges Skript (oder als Teil einer Toolbox) dauert es lange, während es in ArcMap bereits Teil des Namespace des Python-Fensters ist.
Michael Markieta

Antworten:

5

Sowohl Michael Markieta als auch gm70560 sind korrekt. Wenn Sie große Geoverarbeitungsaufgaben ausführen, würde ich dies definitiv über ein eigenständiges Python-Skript tun, das vorzugsweise über die Befehlszeile und nicht über eine IDE gestartet wird. Für diese Art von Aufgabe lohnt sich der Aufwand für den Import von ArcPy.

Eine kleine Aufgabe, insbesondere eine, für die Benutzereingaben erforderlich sind, ist in ArcMap normalerweise schneller und bequemer - es sei denn, Sie müssen ArcMap speziell für diesen Zweck öffnen. In diesem Fall haben Sie den Aufwand, ArcMap selbst zu starten, sowie einige Ausfallzeiten für die Verbindung Alle Ihre Datenbanken, auf die in der MXD verwiesen wird (was bei einer langsamen Netzwerkverbindung mühsam sein kann).

Ebenso ist die Stapelverarbeitung selbst kleiner Aufgaben meiner Meinung nach in einem eigenständigen Python-Skript besser als über eine Toolbox in ArcMap, da Sie diesen Importtreffer nur einmal ausführen und keinen ArcMap-Overhead haben.

Nachdem ich viele automatisierte Geoverarbeitungen über Python-Skripte durchgeführt habe, würde ich sie standardmäßig als eigenständige Prozesse ausführen, da mir die zusätzliche Geschwindigkeit und Flexibilität gefällt. Die meisten Aufgaben, die in der Toolbox schneller ausgeführt werden, sind normalerweise so klein, dass ich sie in ModelBuilder aufgerissen hätte, ohne mir die Mühe zu machen, Code zu schreiben.

MappaGnosis
quelle