Mehr

Einschränkungen der Zeilenauswahl iterieren in ArcGIS ModelBuilder?


inb4 mit echtem Skript ;), Ich suche nach Ratschlägen zum Modellbauer von arc.

Die Zeilenauswahl iterieren im Model Builder von Arc ermöglicht es Ihnen, mehrere Tabellenansichten basierend auf Feldgruppierungen einer Tabelle zu erstellen. Diese Tabellenansichten können dann für andere Prozesse im Modell verwendet werden.

Ich verwende die Tabellenansichten, um mehrere Variablen zu berechnen, die dann in ein anderes Feature-Dataset eingefügt werden. Mehr oder weniger verwende ich die iterierte Zeilenauswahl, um Prozesse für Sätze von verknüpften Datensätzen (MANY) in einer Tabelle auszuführen und dann die Ergebnisse zu verwenden, um eine zweite Tabelle (ONE) zu füllen.

Eines der Felder in der zweiten Tabelle erfordert eine Variable, die teilweise von einer Gruppe von Datensätzen berechnet wird, die nicht die Gruppe von Datensätzen ist, die durch die Auswahl der wiederholten Zeilen identifiziert wurde. Mit anderen Worten, bisher erfordert jedes Feld nur den Satz von Datensätzen, der vom Iterator in eine Tabellenansicht umgewandelt wurde. Aber wie oben erwähnt, erfordert dieses neue Feld eine Tabellenansicht, die nicht auf den Auswahlen basiert, die bei der Auswahl der wiederholten Zeilen möglich sind - es ist eine andere Beziehung erforderlich.

Es gibt einige Probleme damit im Modellbauer. Mein Ansatz besteht jetzt darin, die Inline-Variablenausgabe der iterierten Zeilenauswahl zu verwenden und sie in einem SQL-Ausdruck einer separaten Tabellenansicht erstellen innerhalb des Modells zu verwenden. Diese Tabellenerstellungsansicht basiert auf der ursprünglichen Tabelle (die vom Iterator verwendet wird) mit der Variablen in einem SQL-Ausdruck, sodass eine andere Spalte verwendet wird, um die Tabellenerstellungsansicht für jede Iteration zu erstellen. Beispiel: "c%Value%" = 1. (In der Tabelle gibt es eine Reihe von Spaltenüberschriften, die mit dem Buchstaben c beginnen und dann eine Zahl. |c1|c2|c3|c4|… c24|. Meine Argumentation ist, mit jeder Iteration wird ein neuer %Value% erzeugt (1-24), und mit jedem neuen %Value% "sollte" die separate Make Table View eine Tabellenansicht basierend auf der Inline-Variablen im Ausdruck erzeugen, die dann verwendet werden kann die notwendigen Berechnungen durchführen, die dann in das problematische Feld der zweiten Tabelle eingerechnet werden können.

Nachdem ich das Modell ausgeführt habe, stelle ich fest, dass die Felder bisher richtig berechnet wurden, aber das problematische Feld hat Werte, die ziemlich falsch sind. Das unabhängige Ausführen der Make-Tabellenansicht erzeugt die richtigen Variablen und berechnet auch diese Werte in das Ziel-Dataset, aber wenn es mit dem Iterator ausgeführt wird, funktioniert es nicht.


Ich würde eine Vorbedingung hinzufügen

Von:

Der "Wert", der aus dem Iterator kommt

Zu:

"Tabelle erstellen" (das erste Tool, das Sie auf "Final1(2)" ausführen)

Dadurch wird sichergestellt, dass sich der Wert jedes Mal ändert