【发布时间】:2025-11-21 12:25:01
【问题描述】:
我正在编写一个脚本,该脚本遍历“要素类 A”的记录,对“要素类 B”上的每个单独的“A”记录执行空间选择(流跟踪),然后字段从“ A" 到 "B" 中的结果选择记录
基本上,对于下水道管网中的每个最下游节点,追踪上游并将该下游节点的 ID 分配给所有上游要素。
属性值始终为整数,但有时 A 中的字段格式为文本,有时为数字。
如果满足以下条件,我可以成功执行此计算:
A 被格式化为 TEXT
和
B 被格式化为 LONG
如果出现以下情况,该操作将无法计算任何内容:
A 被格式化为 LONG
和
B 被格式化为 LONG
如果 A 的 ID 是文本整数或整数整数格式,我缺少什么以便这对两种潜在的输入情况都有效? p>
...
for row in cursor:
ID = (str(row.getValue(str(flagname))))
whereclause = ((str(flagname)) +str(' = ') + "'%s'" %ID)
fc=str(r"outfalls_lyr")
arcpy.MakeFeatureLayer_management(traceflag, fc)
try:
arcpy.SelectLayerByAttribute_management(fc, "NEW_SELECTION",str(whereclause))
arcpy.MakeFeatureLayer_management( fc,r"in_memory\temp_of")
arcpy.TraceGeometricNetwork_management(geomnet, r"in_memory\outNet",r"in_memory\temp_of" , "TRACE_UPSTREAM", "", "", "","", "", "NO_TRACE_ENDS", "NO_TRACE_INDETERMINATE_FLOW", "", "", "AS_IS", "", "", "", "AS_IS")
for layer in arcpy.mapping.Layer(r"in_memory\outNet"):
try:
print arcpy.mapping.ListLayers(layer)
calc = str('"%s"' %ID)
arcpy.CalculateField_management (layer, fieldname, calc,"","")
except:
print arcpy.GetMessages()
except:
print arcpy.GetMessages()
也交叉发布到 GIS Stack Exchange。
【问题讨论】: