2017-10-09 13 views
-1

ich drei Spalten habenArcGIS Linienzug Datei Wie Spalte in Attribut-Tabelle aktualisieren

Bevor Update

from node to node gridcode 
2   3   8 
3   2   9 
7   2   5 

Nach Update, ich will "Knoten Spalte" werden gleich wie "Grid Code" -Spalte, so Ich habe in ArcGIS einen Feldrechner verwendet (von node = gridcode). Meine „vom Knoten“ Spalte geändert wurde, um Gridcode aber nicht sicher, wie „zu Knoten“ Spalte zu aktualisieren (dh auf Werten hängt „von Knoten“ Spalte)

unten ist das Endergebnis ich will:

from node to node gridcode 
8   9   8 
9   8   9 
5   8   5 

Bisher habe ich versucht "Join", "räumliche Join", aber ich bekomme nicht die erforderlichen Ergebnisse. Wie kann ich das in Python oder ArcGIS machen?

+0

Welche Beziehung besteht zwischen "from node" und "to node"? Ohne das zu wissen, wird es unmöglich sein zu antworten. – Erica

+0

@Erica Diese Daten sind für Ströme/Flüsse von Knoten (Fluss Startpunkt oder stromaufwärts), zu Knoten (wo Fluss entwässert oder nächsten Strom stromabwärts). Ich skizzierte meine Wasserscheide basierend auf der digitalen Höhenkarte und ich bekam mein Stream-Netzwerk als Ergebnis. – Wisconsin

Antwort

1

Die einzige Möglichkeit, dies zu tun, kann ich mit Python sehen.

Zuerst müssen Sie ein Wörterbuch erstellen, um zu verstehen, wie die Beziehung zwischen den alten Knotenwerten und den neuen Knotenwerten aussieht - old_node und new_node. Dies kann mit einem SearchCursor erfolgen, indem der "from node" (old_node) mit dem gridcode (new_node) abgeglichen wird.

Dann müssen Sie alle Ihre Werte aktualisieren. Dies benötigt eine UpdateCursor (etwas wie Feldrechner, aber können Sie mehr tun, da Sie in Python arbeiten).

with arcpy.da.UpdateCursor(feature_class, ["fromnode", "tonode", "gridcode"]) as cursor: 
    for row in cursor: 
     # set fromnode to gridcode value 
     row[0] = row[2] 
     # set tonode to new equivalent node 
     to_node = row[1] 
     new_to_node = node_values[to_node] 
     row[1] = new_to_node 
     cursor.updateRow(row) 

Beachten Sie, dass dieser Code eine Menge Möglichkeiten gibt es können „verschärft“, verbessert werden und verkürzt, und es gibt Variablen, die zugeordnet werden müssen (zB feature_class), bevor diese Schnipsel funktioniert richtig. Wie immer empfehle ich, eine Sicherungskopie Ihrer Daten zu erstellen, bevor Sie sich mit den Python-Skripten anderer Leute herumschlagen;)

Verwandte Themen