Hinzufügen eines untergeordneten Modells zu einem Modell

Ein Geoverarbeitungsmodell wird als Modellwerkzeug in einer Toolbox gespeichert. Modellwerkzeuge können wie jedes andere Geoverarbeitungswerkzeug über das Fenster Geoverarbeitung ausgeführt und in anderen Modellen und Python-Skripten verwendet werden.

Das Hinzufügen und Ausführen eines Modellwerkzeugs in einem anderen Modell wird manchmal als untergeordnetes Modell, verschachteltes Modell oder Modell im Modell bezeichnet. Durch die Verwendung eines Modells innerhalb eines anderen Modells lassen sich umfangreiche Modelle in kleinere Einheiten aufteilen, die leichter zu verwalten sind und wiederverwendet werden können.

Zum Hinzufügen eines untergeordneten Modells zu einem Modell führen Sie die folgenden Schritte aus:

  1. Erstellen Sie ein Modell, das die Verarbeitungsvorgänge durchführt, die Sie von anderen Modellen aus aufrufen möchten – das untergeordnete Modell. Sie werden dieses untergeordnete Modell in einem anderen Modell ausführen, daher sollte es nach den Best Practices für Modellwerkzeuge erstellt werden, wozu auch das Festlegen der Eigenschaften und Parameter des Modellwerkzeugs gehört.

    Wenn Sie bereits einen Teil eines Modells haben, den Sie in ein untergeordnetes Modell integrieren möchten, können Sie die Modellvariablen und -prozesse in ein neues Modell kopieren und einfügen oder gruppieren und mit dem Befehl Gruppe als neues Modell speichern.

  2. Achten Sie darauf, dass Sie das Modell speichern, wenn die oben genannten Schritte abgeschlossen sind und Sie das Modell zu einem anderen Modell hinzufügen können.
  3. Bearbeiten oder erstellen Sie ein neues Hauptmodell.
  4. Fügen Sie dem Hauptmodell das untergeordnete Modell hinzu, indem Sie eine der Methoden zum Hinzufügen von Werkzeugen zu einem Modell verwenden. Suchen Sie das untergeordnete Modell im Bereich Katalog und ziehen Sie es in das Hauptmodell, sofern sich das untergeordnete Modell nicht in einer Projekt-Toolbox befindet.

    Die Eingabe- und Ausgabedatenparameter des untergeordneten Modells werden automatisch zu Variablen im Hauptmodell geändert. Sie können weitere Parameter des untergeordneten Modells als Variablen im Modell bereitstellen, indem Sie mit der rechten Maustaste auf das untergeordnete Modell klicken und auf Variable erstellen > Aus Parameter > <select a parameter> klicken.

Mit der Verwendung von Modellen innerhalb von Modellen werden zwei Hauptziele verfolgt:

  • Vereinfachung eines umfangreichen, komplexen Modells in kleinere, einfacher zu verwaltende Modelle
  • Unterstützung der Verwendung von Modelliteratoren innerhalb eines Bereichs eines größeren Modells

Vereinfachen eines umfangreichen, komplexen Modells

Das Einbetten eines Modellwerkzeugs in ein anderes Modell ermöglicht das Unterteilen großer, komplexer Prozesse in kleinere Modelleinheiten, die besser verwaltet und einfacher in anderen Modellen oder Skripten wiederverwendet werden können. Diese untergeordneten Modelle können auch geändert und erneut ausgeführt werden, ohne ein umfassendes und potenziell unhandliches Modell bearbeiten oder den gesamten Prozess erneut ausführen zu müssen. Wenn ein Fehler in einem untergeordnetem Modell auftritt, nehmen Sie nur Korrekturen an diesem Modell vor, und führen das einzelne Modell dann anstelle des gesamten Prozesses erneut aus.

Umfassendes Modell
Ein Beispiel für ein umfassendes Modell, das in vier untergeordnete Modelle und ein Hauptmodell aufgegliedert werden kann, das die vier untergeordneten Modelle ausführt.

Das große Modell oben konnte in vier untergeordnete Modelle und ein Hauptmodell aufgegliedert werden. Die kleineren untergeordneten Modelle können einem Hauptmodell hinzugefügt und in einen finalen Prozess eingebunden werden. Wenn ein untergeordnetes Modell einem anderen Modell hinzugefügt wird, werden die Ausgabeparameter des untergeordneten Modells als Ausgabevariablen hinzugefügt.

Hinzufügen von untergeordneten Modellen zum Hauptmodell

Erweiterte Verwendung von Modelliteratoren

Das Einbetten eines Modellwerkzeugs in ein anderes Modell ermöglicht Ihnen ferner die erweiterte Verwendung von Modelliteratoren. Wenn für einen Workflow die Modelliteration erforderlich ist, müssen diejenigen Werkzeuge oder Prozesse, die mehrmals ausgeführt werden sollen, von den Werkzeugen oder Prozessen getrennt werden, die nur einmal ausgeführt werden sollen.

Hinweis:

Eine häufige Fehlannahme besteht darin, dass nur Werkzeuge flussabwärts eines Modelliterators mehrmals ausgeführt werden. Wenn ein Modell einen Iterator enthält, werden alle Prozesse im Modell mehrmals ausgeführt.

Alle mehrmals auszuführenden Werkzeuge sollten mit einem Modelliterator in einem Modell platziert und als untergeordnetes Modell verwendet werden. Die Werkzeuge, die nur einmal ausgeführt werden müssen, sollten im Hauptmodell platziert werden, das das zu durchlaufende untergeordnete Modell aufruft.

Das Beispiel unten zeigt einen Workflow, in dem verschiedene Eingaben aus einer Geodatabase zusammengeführt werden. Das Werkzeug Zusammenführen (Merge) akzeptiert mehrere Feature-Classes als zusammengeführte Eingabe, aber es gibt keine Möglichkeit, alle Feature-Classes aus einem bestimmten Workspace automatisch hinzuzufügen. In dieser Situation kann der Modelliterator Feature-Classes iterieren in Verbindung mit dem Werkzeug Werte erfassen verwendet werden, um alle Feature-Classes in einem Workspace zu lesen und sie in einer Variablen mit mehreren Werten zu erfassen. Da diese beiden Prozesse mehrmals ausgeführt werden müssen (Iterationen), werden sie einem untergeordneten Modell hinzugefügt. Das Werkzeug Zusammenführen (Merge), das nur einmal ausgeführt werden soll, wird wiederum dem Hauptmodell hinzugefügt und mit der Ausgabe des untergeordneten Modells, das den Iterator enthält, verbunden.

Hauptmodell und untergeordnetes Modell

Im Folgenden finden Sie eine schrittweise Beschreibung, wie der Workflow oben erstellt wurde. Weitere Informationen zu den unten verwendeten Begriffen und Verfahren finden Sie unter ModelBuilder-Terminologie.

  1. Erstellen Sie zwei Modelle: ein Hauptmodell und ein untergeordnetes Modell, wobei das untergeordnete Modell dem Hauptmodell hinzugefügt wird. Fügen Sie das Werkzeug Zusammenführen (Merge) dem Hauptmodell und den Iterator Feature-Classes iterieren und das Werkzeug Werte erfassen dem untergeordneten Modell hinzu.
  2. Legen Sie im untergeordneten Modell den Workspace fest, der die Feature-Classes enthält, die als Eingabe für den Iterator Feature-Classes iterieren zusammengeführt werden sollen. Um nur Point-Feature-Classes zu durchlaufen, legen Sie den Parameter Feature-Typ von Feature-Classes iterieren auf POINT fest.
  3. Verbinden Sie die Feature-Classes iterieren-Ausgabevariable Ausgabe-Feature-Class mit dem Werkzeug Werte erfassen, sodass der Pfad jeder Point-Feature-Class im Workspace durchlaufen und erfasst wird.
  4. Wandeln Sie die Eingabe-Workspace-Variable und die Ausgabe des Werkzeugs Werte erfassen in Modellparameter um. Benennen Sie die Eingabe-Workspace-Variable Eingabe-Datasets um, um sicherzustellen, dass der Variablenname aussagekräftig und leicht verständlich ist.
    Einstellen des untergeordneten Modells
  5. Speichern Sie, schließen Sie das untergeordnete Modell, und fügen Sie es dem Hauptmodell als Prozess hinzu. Wenn dem Hauptmodell das untergeordnete Modell hinzugefügt wird, werden die Parameter des untergeordneten Modells automatisch als Variablen im Hauptmodell hinzugefügt.
    Hinzufügen des untergeordneten Modells
  6. Legen Sie die Ausgabevariable des untergeordneten Modells als den Parameter Eingabe-Datasets des Werkzeugs Zusammenführen (Merge) fest. Stellen Sie sicher, dass die Ausgabe des Werkzeugs "Zusammenführen (Merge)" einen gültigen Pfad aufweist.