类似的问题在Esri社区经常被问到,大概每4-6个月。188金宝博复式188金宝搏网址导航虽然可以使用Field Calculator来回答你的问题,但在我看来,这是一种相当笨拙的方法。这类问题最适合ArcPy游标:
lyr = #数据集的层名或路径flds = ["ID", "AdjRiverLe", "River"] sql = "ORDER BY ID, AdjRiverLe DESC" with arcpy.da。UpdateCursor(lyr, flds, sql_clause=(None, sql)) as cur: rid, adj_river, river = next(cur) river = "YES" cur. updaterow ([rid, adj_river, river]) prev_rid = rid for rid, adj_river, _ in cur: if rid == prev_rid: river = "NO" else: river = "YES" cur. updaterow ([rid, adj_river, river]) prev_rid = rid
此外,尽管你没有提到Arcade,但值得指出的是,这可以在Arcade中简单地完成。
//获取匹配ID的特性var ID = $feature。ID var id_feat = Filter(FeatureSetByName($datastore, ' polypolyon -layer-name'), 'ID =@ id') //获取AdjRiverLe字段的最大值var max_le = Max(id_壮举,'AdjRiverLe') //将'Yes'分配给最大值,'No'分配给其他if($feature. ')AdjRiverLe == max_le){返回'Yes'}其他{返回'No'}