Mehr

Ausführen von Fokusstatistiken mit Iterator in ArcGIS ModelBuilder?


Ich muss den Wert eines Gitters (Wasserspiegelhöhe) innerhalb des Nodata-Bereichs erweitern, bis eine bestimmte Barriere (die Grenze der Wasserscheide) in ArcGIS 10.2 for Desktop erreicht ist.

Ich verwende das:

Con(IsNull("grid"),FocalStatistics("grid",NbrRectangle(3,3),"MEAN"),"grid")

Bisher habe ich es sukzessive auf die letzte Ausgabe angewendet und das Rechteck langsam vergrößert. Dies wird in einem ModelBuilder ausgeführt.

Mir wurde langweilig und ich habe versucht, einen Raster-Iterator auszuführen, um eine Fokusstatistik auf jede Ausgabe anzuwenden.

Das Modell führt es nur einmal aus und stoppt. Ich hatte erwartet , dass ich erzwingen müsste , anzuhalten , sobald er die Barriere erreicht . Und die bereits vorhandenen Werte werden auch interpoliert, was hier nicht der Zweck ist.


Ich bin mir nicht sicher, wie ich mit der sich ändernden Nachbarschaftsgröße umgehen soll, aber hier ist bereits eine Antwort.

Raster iterieren führt dasselbe Werkzeug/eine Werkzeugkette für eine Reihe von Datasets im angegebenen Arbeitsbereich aus, sodass es nicht das tut, was Sie brauchen. Wenn Sie die Ausgabe des Modells mehrmals als Eingabe verwenden möchten, gehen Sie wie folgt vor:

  • Klicken Sie mit der rechten Maustaste auf die Eingabe des Werkzeugs Focal Statistics > Eigenschaften > Registerkarte Allgemein. Wählen Sie als Feedback-Variable das Ergebnis des Fokusstatistik-Tools aus:

  • Benennen Sie das Ergebnis des Focal-Statistik-Tools etwa C:Results_%n%. %n% ist das n-te Ergebnis der Iteration. Die erste Ausgabe wird als Ergebnis_0 bezeichnet, die zweite als Ergebnis_1 und so weiter. Sie können nicht genau dasselbe Dataset als Eingabe und Ausgabe verwenden, daher ist dies der Trick.

  • Bestimmen Sie, wie oft das Modell ausgeführt wird, indem Sie mit der rechten Maustaste auf die Registerkarte Modell > Modelleigenschaften > Iteration klicken. Dort hast du 3 Möglichkeiten:

In Ihrem Fall möchten Sie das Tool möglicherweise eine feste Anzahl von Malen ausführen (erste Option), prüfen, ob die gewählte Anzahl von Iterationen ausreichend war, und anpassen. Oder Sie können die dritte Option auswählen und eine Variable erstellen, die auf False umschaltet, wenn das Modell stoppen kann. Sie können das Modell beispielsweise stoppen, wenn keine NoData-Werte mehr vorhanden sind. siehe nächster Schritt, um dies zu tun.

  • Fügen Sie das Werkzeug Rastereigenschaften abrufen zu Ihrem Modell hinzu, verbinden Sie es mit der Eingabe und wählen Sie 'ANYNODATA' als Eigenschaftstyp:

'Eigenschaft' ist wahr, solange das Raster mindestens eine NoData-Zelle enthält. Das Modell wird also ausgeführt, bis keine NoData mehr vorhanden sind (und die maximale Anzahl von Iterationen, die Sie für die dritte Option angegeben haben). Verbinden Sie 'Eigenschaft' als Vorbedingung des Focal Stats-Tools, da das Tool sonst möglicherweise ausgeführt wird, bevor es seinen Wert überprüft.


Schau das Video: ArcGIS ModelBuilder: How to Create a Simple Model (Oktober 2021).