Ich spiele gerade mit ModelBuilder. Ich habe ein Bild des Modells hinzugefügt, das ich gerade habe.
Dieses Modell iteriert derzeit 6 Shapefiles, sodass jeder der Ausgabewerte 6 Ziffern in einer Liste enthält. Ich kann keine Möglichkeit finden, die Werte aus diesen Listen in eine Tabelle / Textdatei oder ähnliches zu extrahieren.
Gibt es eine Möglichkeit, dies zu tun?
Dies wird angezeigt, wenn ich nach dem Ausführen des Modells 'Ausgabewerte' öffne:
Ich möchte nur irgendwie diese 6 Zahlen greifen ...
Antworten:
Sie können dies mit dem Tool " Wert berechnen" (Datenverwaltung) und etwas Python-Magie tun . Siehe auch diese verwandte Frage: Fügen Sie dem Arcgis Model Builder beliebigen Code hinzu?
Eine mehrwertige Variable ist nur eine durch Semikolons getrennte Zeichenfolge. Die folgende
multivaluesToCsv
Funktion teilt die mehrwertigen Variablen in Listen auf und transponiert sie in Zeilen, die dann in eine CSV- Textdatei (durch Kommas getrennter Wert) geschrieben werden.Modelliteratoren führen ALLE Prozesse im Modell einmal pro Iteration aus. Dies ist für unser Tool "Wert berechnen" unerwünscht, das wir am Ende nur einmal ausführen möchten. Um dies zu erreichen, erstellen Sie ein anderes äußeres Modell, um das ursprüngliche innere Modell zu verpacken. Dies wird im Hilfethema Integrieren eines Modells in ein Modell erläutert .
Hier ist also, was Sie tun müssen, damit dies funktioniert:
Inneres Modell - Iteriert Feature-Classes, verarbeitet sie und sammelt Werte:
Name
von Werten hinzu , um die Werte der Variablen zu sammeln , damit wir die Werte der Entfernungsstatistik den entsprechenden Namen der Feature-Classes zuordnen können.Äußeres Modell - Führt das innere Modell aus und führt das Werkzeug "Wert berechnen" nur einmal aus, wenn das innere Modell abgeschlossen ist:
Folder
, mit der Sie angeben können, wo die CSV-Ausgabedatei erstellt werden soll.String
, mit der Sie den Namen der Ausgabe-CSV-Datei angeben können .Fügen Sie Folgendes in die entsprechenden Felder des Werkzeugs "Wert berechnen" ein:
Ausdruck :
r
Vorherige"%Output CSV File Location%"
ist wichtig: Dies zeigt an, dass dies eine Rohzeichenfolge ist . Da Windows-Dateisystempfade normalerweise Backslashes enthalten (ein Escape-Zeichen in Python), müssen wir dies verwenden, um zu verhindern, dass Python die Backslashes und nachfolgenden Zeichen als Sonderzeichenfolgen falsch interpretiert.Codeblock:
(Optional) Stellen Sie die Eingabe- und Ausgabevariablen als Modellparameter bereit, wenn Sie sie über den Werkzeugdialog des Modells ausführen oder mit anderen Modellen / Skripten verketten möchten. Die einzige Ausgabe des äußeren Modells ist die CSV-Datei.
Ich habe dies mit ModelBuilder getestet und zum Laufen gebracht (siehe Screenshots).
Inneres Modell :
Äußeres Modell:
Das innere Modell führt alle Prozesse einmal pro Feature-Class aus, und das Tool "Wert berechnen" wird am Ende einmal ausgeführt, um die CSV-Datei einmal und nur einmal auszugeben.
quelle
Die Ausgabe, die Ihr Modell beschreibt, ist einfach ein Wert, der in der Attributtabelle aktualisiert wird, nicht wahr? Können Sie die mit dem aktualisierten Shapefile verknüpfte DBF-Datei nicht einfach öffnen?
Andernfalls sollte Table Select (Analyse-Tools> Extrahieren) mit einer SQL-Abfrage funktionieren.
quelle