我可以看到的唯一方法是使用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