我可以看到的唯一方法是使用Python。
首先,您需要構建字典以瞭解舊節點值和新節點值之間的關係 - old_node
和new_node
。這可以通過SearchCursor來完成,將「從節點」(old_node
)與網格代碼(new_node
)進行匹配。
# instantiate empty dictionary
node_values = {}
# build dictionary of values
with arcpy.da.SearchCursor(feature_class, ["fromnode", "gridcode"]) as cursor:
for row in cursor:
old_node = row[0]
new_node= row[1]
node_values[old_node] = new_node
然後,您需要更新所有值。這需要一個UpdateCursor(有點像字段計算器,但可以讓你做更多,因爲你在Python中工作)。
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)
注意,有很多的方面,這代碼可以被「收緊」,改善和縮短,有需要分配變量(例如feature_class
)之前,這些片段將工作正常。與往常一樣,我建議先備份數據,然後再與其他人的Python腳本混淆在一起;)
「從節點」和「到節點」之間的關係是什麼?如果不知道,就不可能回答。 – Erica
@Erica此數據適用於從節點(河流起點或上游)到節點(河流正在流失或下游下游)的河流/河流。我根據數字高程地圖描繪了我的分水嶺,並得到了我的流網絡。 – Wisconsin