Mehr

Python-Code-Hilfe für das Werkzeug ArcGIS Field Calculator (Model Builder)

Python-Code-Hilfe für das Werkzeug ArcGIS Field Calculator (Model Builder)


Gibt es einen Python-Code, der:

1. Sortieren Sie eine Spalte (Beispielname nach Alphabet)

2. Greifen Sie die erste Zelle der sortierten Spalte und weisen Sie sie einer Variablen wie A=… zu.

Ich brauche all dies im Feldrechner und im Showblock. Bitte geben Sie mir ein Muster oder helfen Sie mir.


Sie sollten für diese Aufgabe den Datenzugriffs-Suchcursor (erfordert ArcGIS 10.1 oder höher) verwendenSQL-KlauselFunktionalität. Die sql-Klausel ermöglicht das Sortieren.

Hier ist der Python-Code, der der Variablen den ersten Wert ungleich Null im sortierten Feld zuweistvar:

#Pfad zur Feature-Class fc = r"C:PathTo.gdbFeature Class" #Feldname fld = "Field_Name" sqlClause = (Keine, "ORDER BY {0} ASC".format (fld)) with arcpy .da.SearchCursor (fc, fld, sql_clause = sqlClause) als Cursor: für val, im Cursor: wenn val: break del Cursor

Beispiel:

Ich empfehle, dies außerhalb des Feldrechners zu tun und stattdessen als Python-Skript in ModelBuilder zu importieren, damit nicht jede berechnete Zeile einen neuen Cursor erstellt.


Nach allem, was ich bisher gesehen habe, scheint es mir der beste Ansatz zu sein, das Werkzeug "Wert berechnen" in ModelBuilder zu verwenden.

Ausdruck:

getval(r"%featureclass%", "FIELDNAME")

Codeblock:

import arcpy def getval(fc, fld): # Hole den ersten Nicht-Null-Feldwert where = "{} IS NOT NULL".format(fld) val = arcpy.da.SearchCursor(fc, fld, where).next( )[0] Rückgabewert

Datentyp:

Beliebiger Wert

statt zu sortieren,

  1. mach eine Auswahl nach Attribut > [Feld] ist nicht NULL.
  2. dann wird in der ausgewählten Tabelle "einen Wert sammeln" natürlich der Wert in der ersten Zeile Ihres Felds verwendet, da alle Nullen ausgewählt sind, die in Ordnung sein sollten.
  3. Führen Sie dann erneut ein select-Attribut aus und wählen Sie "CLEAR SELECTION", um sicherzustellen, dass der Rest Ihrer Analyse nicht mit einer Teilmenge Ihrer Daten durchgeführt wird. Machen Sie den 2. Schritt zur Voraussetzung für den 3. Schritt, damit die Auswahl nicht vor dem Sammeln des Wertes gelöscht wird.

Schau das Video: ArcGISQGIS Intro to Model Builder Exercise 2 join and calculate field