Vergleichen von benutzerdefinierten und Python-Toolboxes
In ArcGIS 9.0 wurde die Skriptwerkzeugumgebung neu eingeführt. Sie ist dafür ausgerichtet, Python-basierte Werkzeuge für neue Benutzer zu erstellen. Für erfahrenere Benutzer stellt sie jedoch einen ineffizienten Prozess dar. In der Skriptwerkzeugumgebung:
- Definieren Sie Parameter über den Assistenten
- Erstellen Sie Validierungscode, der sich in der Toolbox befindet
- Erstellen und warten Sie das Quellskript getrennt
All diese Teile werden voneinander getrennt und sind insgesamt schwieriger zu verwalten.
In ArcGIS 10.1 gibt es zwei Möglichkeiten, eigene Geoverarbeitungswerkzeuge mit Python zu erstellen: Skriptwerkzeuge in benutzerdefinierten Toolboxes () und Skriptwerkzeuge in Python-Toolboxes ().
In einer Python-Toolbox werden Parameterdefinitionen, Validierungscode und Quellcode am gleichen Ort behandelt. Dies erleichtert die Erstellung und Wartung von Python-Werkzeugen. Außerdem unterstützen Python-Toolboxes einige Funktionen, die von Skriptwerkzeugen nicht unterstützt werden, wie z. B. Wertetabellen, zusammengesetzte Datentypen und benutzerdefinierte Lizenzüberprüfung.
Für Benutzer mit Python-Erfahrung bieten Python-Toolboxes die Möglichkeit, ihre Python-Fähigkeiten zu nutzen und Werkzeuge vollständig und ganz einfach in Python zu erstellen. Wenn Python für Sie neu ist, ist die Erstellung von Werkzeugen in benutzerdefinierten Toolboxes für Sie besser geeignet, da der Assistent Sie durch die notwendigen Teile eines Skriptwerkzeugs führt.
Wenn Sie in dem Skriptwerkzeug signifikanten Validierungscode verwenden möchten, empfinden Sie höchstwahrscheinlich die Erstellung in einer Python-Toolbox als einfacher.
Benutzerdefinierte Toolboxes () | Python-Toolboxes () | |
---|---|---|
Organisation= | Skriptwerkzeuge in einer benutzerdefinierten Toolbox werden zu drei Teilen zusammengefasst:
| Eine Python-Toolbox ist ein Python-Skript mit der Erweiterung .pyt, das alle Aspekte einer Toolbox und ihrer Werkzeuge enthält: Parameter, Validierung und Ausführung. Dies erfolgt mithilfe von Python-Klassen: eine Klasse für die Toolbox und eine Klasse für jedes Werkzeug. |
Bearbeitung | Der Quellcode kann in jedem Editor bearbeitet werden. Die Parameter werden über den Skriptwerkzeug-Assistenten bearbeitet. Validierungscode (falls verwendet) kann über den Assistenten in einem Editor bearbeitet werden. | Python-Toolbox-Dateien (.pyt) können in jedem Editor bearbeitet werden. So können alle Teile des Werkzeugs (Parameterdefinitionen, Validierungscode und Quellcode) am gleichen Ort bearbeitet werden. Da Python-Toolboxes nur in einem Editor bearbeitet werden können, ist Kopieren und Einfügen innerhalb einer Toolbox oder zwischen Toolboxes nicht möglich. |
Verwenden anderer Werkzeuge | Benutzerdefinierte Toolboxes unterstützen verschiedene Werkzeugtypen, z. B. Python-Skriptwerkzeuge, Modellwerkzeuge (erstellt mit ModelBuilder) und integrierte Werkzeuge (erstellt mit ArcObjects und einer kompilierten Sprache wie .NET). | Python-Toolboxes unterstützen andere Werkzeugtypen nicht direkt; das heißt, Sie können der Python-Toolbox keine Modellwerkzeuge oder integrierten Werkzeuge hinzufügen. Sie können Werkzeuge jedoch in anderen Toolboxes innerhalb des Python-Toolbox-Codes aufrufen. |
Zusätzliche Funktionen | nicht zutreffend | Python-Toolboxes unterstützen eine isLicensed-Methode, mit der Sie nach Ihren eigenen Kriterien steuern können, ob ein Werkzeug geöffnet werden kann. |
Zusätzliche Sicherheit | Der Quellcode von Skriptwerkzeugen in einer benutzerdefinierten Toolbox kann in die Toolbox eingebettet und mit einem Kennwort gesperrt werden. | nicht zutreffend |