Mit der Option zum Exportieren von Modellen in ein Python-Skript lernen Sie, wie Werkzeuge und Umgebungen in Python verwendet werden. Darüber hinaus kann sie eine Starthilfe für Ihre Entwicklung darstellen. Nach dem Bearbeiten und Fertigstellen des Skripts können Sie es einer Toolbox oder einem Modell als Skriptwerkzeug hinzufügen und wie jedes andere Geoverarbeitungswerkzeug ausführen. Um ein Modell in ein Skript zu exportieren, führen Sie die folgenden Schritte aus:
- Zeigen Sie im Menü in ModelBuilder auf Modell > Exportieren > In Python-Skript, und klicken Sie darauf.
- Klicken Sie auf den Dropdown-Pfeil Speichern in, und navigieren Sie zu dem Verzeichnis, in dem Sie das Skript speichern möchten.
- Geben Sie einen Dateinamen für das Skript ein.
- Klicken Sie auf Speichern.
Bearbeiten eines exportierten Python-Skripts
In manchen Instanzen funktioniert das exportierte Modell nicht. Beachten Sie beim Exportieren von Modellen in Skripten folgende Punkte:
- Falls Sie erwarten, dass Daten überschrieben werden, legen Sie die Eigenschaft arcpy.env.overwriteOutput auf "Wahr" fest.
- Falls Ihr Modell Layer oder Tabellensichten verwendet, die nicht im ursprünglichen Modell erstellt wurden, müssen diese Layer bzw. Tabellensichten im Skript erstellt werden. Hierfür können Sie Werkzeuge wie Feature-Layer erstellen und Tabellensicht erstellen verwenden.
- Datenelemente aus dem Modell werden im exportierten Skript direkt in Variablen konvertiert. Weisen Sie Datenelementen keine mit Python inkompatiblen Namen wie etwa "class", "global" oder "return" zu. Eine vollständige Liste der reservierten Schlüsselwörter finden Sie im Schlüsselwortmodul von Python.
import keyword print keyword.kwlist
- Wenn im Modell eine direkte Variablenersetzung wie %workspace%, %scratchworkspace%, %n%, %i% oder %variable name% verwendet wird, müssen diese durch den korrekten Wert ersetzt werden.
- Wenn im Modell ein Iterator verwendet wird, wird die Iterationslogik nicht exportiert. Diese muss durch Schleifenanweisungen in Python ersetzt werden.
- Nur der erste Wert aus einer Listenvariable wird exportiert.
- Wenn im Modell ein Feature-Set oder Record Set verwendet wird, wird beim Export der folgende Code erstellt.Um den Code vor keinen oder ungültigen Eingaben zu schützen, wird die Variable Feature_Set auf eine Feature-Class "in_memory" festgelegt. Da die Feature-Class "in_memory" während der Ausführung nicht vorhanden ist, müssen Sie den Pfad so aktualisieren, dass er auf eine Feature-Class zeigt, die während der Ausführung vorhanden ist. Sie können auch die Logik so verändern, dass eine Fehlermeldung ausgeben und die Ausführung beendet wird, falls dies sinnvoller für den Workflow ist.
Aus Modell mit einem Feature-Set-Parameter exportieren
Feature_Set = arcpy.GetParameterAsText(0) if Feature_Set == '#' or not Feature_Set: Feature_Set = "in_memory\\{F15C6411-0F4F-4A68-9BAC-29D6E7874669}" # provide a default value if unspecified
- Eventuell im Modell verwendete Nur-Modellwerkzeuge wie Verzweigungen zusammenführen, Werte erfassen oder Wert berechnen werden in Python nicht ausgeführt. Dafür müssen Sie die entsprechende Python-Funktionalität der Werkzeuge implementieren. Beispielsweise müssen Sie für die Verzweigung im Skript die "if/else"-Logik verwenden.
- Eventuell im Modell enthaltene untergeordnete Modelle werden nicht exportiert. Stattdessen muss auf die Toolbox verwiesen und das Modellwerkzeug im Skript aufgerufen werden.