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.
CURRENT
Schlüsselwort zu verwenden, um auf das aktuelle Kartendokument in einem Skript-Tool zuzugreifen, solange es in Bearbeitung ausgeführt wird.import arcpy
Als eigenständiges Skript (oder als Teil einer Toolbox) dauert es lange, während es in ArcMap bereits Teil des Namespace des Python-Fensters ist.Antworten:
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.
quelle