Festlegen eines einzelnen Ausgabespeichers für mehrere Dateien in ModelBuilder?


8

Ich habe ein Modell in ModelBuilder erstellt. Der erste Schritt besteht darin, dass der Benutzer den Speicherort der Datei-Geodatabase angibt, in dem alle Ausgaben gespeichert werden. Ich möchte, dass alle Ausgaben (von den verschiedenen Werkzeugen innerhalb des Modells) in dieser REA gespeichert werden. Es kann jedoch alles genannt werden und sich überall befinden.

Wie kann ich also bewirken, dass die Ausgabe an dem im ersten Schritt angegebenen Speicherort gespeichert wird?

Antworten:


8

Diese Seite auf Esris Website sollte Ihnen alle Informationen enthalten, die Sie dazu in ModelBuilder benötigen. Im Wesentlichen erstellen Sie eine Variable für den Ausgabeordner / die Geodatabase, die vom Benutzer generiert oder fest codiert werden kann, und rufen sie dann in den anderen Tools beim Namen auf, umgeben von %Symbolen.


2

Erstellen Sie zunächst ein Skript und definieren Sie die Parameter für die Eingabe-Feature-Class und den Ausgabe-Arbeitsbereichspfad. Als nächstes exportieren Sie das Modell in Python-Skript oder vbs. Anschließend können Sie den Code einfach bearbeiten, um die Ausgabe-Arbeitsbereichsvariable für alle Zwischenwerkzeuge basierend auf dem vom Benutzer definierten ursprünglichen Ausgabe-Arbeitsbereich zu verwenden.

Das folgende Beispiel veranschaulicht dies mit arcpy. Sie müssen jedoch nur Python oder vbs verwenden, da Sie Version 9.3.1 und nicht 10 verwenden.

z.B

    inputlayer = arcpy.GetParameterAsText(0)
    outputpath = arcpy.GetParameterAsText(1)

    # Process: Buffer
    arcpy.Buffer_analysis(inputlayer, outputpath + "\\buffer.shp", "50 Feet", "FULL", "ROUND", "NONE", "")

    # Process: Select
    arcpy.Select_analysis(outputpath + "\\buffer.shp", outputpath + "\\bufferSelect.shp", "")

Ich hatte gehofft, alles in ModelBuilder zu erledigen, anstatt es zu exportieren. Ich habe mir einige Modelle angesehen, die die Person, die hier vor mir gearbeitet hat, und sie hat ihre FGDB im ersten Schritt eingestellt und dann "% Temp FGDB%" für die anderen Ausgänge verwendet, aber ich kann nicht scheinen um es zum Laufen zu bringen.
MapMan

1
%Temp FGDB%würde funktionieren, wenn Sie den Namen der Parameterblase in ModelBuilder in ändern würden Temp FGDB: Wie auch immer die Parameterblase heißt, so kann in den anderen Tools darauf verwiesen werden.
nmpeterson

1

Ich habe einen einfachen Weg gefunden, dies im Modellbauer zu tun. Nehmen wir an, Sie durchlaufen einige Dateien, um einen Clip für alle zu erstellen.

1) Erstellen Sie einen Interator für Feature-Classes. Klicken Sie mit der rechten Maustaste darauf und erstellen Sie eine Variable für den Arbeitsbereich.

2) Benennen Sie die Arbeitsbereichsblase in "Arbeitsbereich" um, klicken Sie mit der rechten Maustaste darauf und wählen Sie "Parameter erstellen". Dadurch werden Sie aufgefordert, den Ordner mit den Dateien einzugeben, wenn Sie das Modell als Tool ausführen.

3) Fügen Sie das Clip-Tool hinzu. Führen Sie eine Zeile von der Ausgabeblase "FeatureClass" des Iterators zum Clip-Tool und wählen Sie die Eingabefunktion aus.

1) Fügen Sie das Werkzeug "Ordner erstellen" hinzu, klicken Sie mit der rechten Maustaste darauf und erstellen Sie zwei Variablen daraus, Name und Speicherort.

2) Geben Sie den Namen des Ordners an, wie Sie möchten. Ich habe "Output" verwendet

3) Für den Speicherort: In meinem Fall hatte ich bereits den Ordner, in dem ich den Ordner ausgeben wollte. Es war der Hauptordner, den ich als Eingabe für den Iterator verwendet habe. Denken Sie daran, dass ich ihn in "Arbeitsbereich" umbenannt habe. Jetzt können wir auf diesen Ort verweisen, indem wir Folgendes eingeben:

%workspace%

in die Speicherortblase für das Werkzeug zum Erstellen von Ordnern.

4) Jetzt verwenden Sie das Verbindungswerkzeug, um eine Linie von der Ausgabe des Werkzeugs "Ordner erstellen" (für mich "Ausgabeordner" genannt) bis zur Hauptiteratorblase zu zeichnen. Es wird ein kleiner Dialog angezeigt, wählen Sie die Option "Vorbedingung". Dies zeigt an, dass der Ordner erstellt werden muss, bevor dieser Abschnitt ausgeführt wird.

5) Schließlich können Sie in der Ausgabe Ihres Clip-Tools Folgendes eingeben:

%Output Folder%\%Name%_clip.shp

Der% Ausgabeordner% verweist auf die Ausgabeblase des von uns erstellten Ordners. Der Iterator erstellt eine Blase mit dem Namen "Name" für Sie, daher haben wir diese mit% Name% referenziert. Dann füge ich ein Suffix hinzu, um zu verdeutlichen, dass es sich um eine Ausgabe des Clip-Tools handelt.

Ich hoffe das hilft! Adam


0

Sie können das Tool "Feature-Classes in einer Geodatabase" oben in Ihrem Modellbauer verwenden, mit dem Sie viele Ausgaben verbinden können. Sie müssen nur den Standort angeben.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.