中文

操作方法:在 ArcMap 的表格中每隔“n”行进行选择

摘要

在某些情况下,用户可能想在表格中每隔“n”行进行选择来编辑所选的要素,而无需单独选择和填充行。 这篇文章演示了使用 Python 脚本每隔“n”行进行选择的方法。 在此示例中,间隔值设置为 3。 将具有所选和未选定要素的新图层创建为结果输出。 在新图层的属性表中,将选择三行,跳过接下来的三行,并重复相同的过程,直到所有行结束。

此过程的结果是从原始表中选择了一半行,但这些所选内容将被指定为每隔三行。 下图显示了预期输出:

An image of the new layer with selected attributes created after running the Python script.
 

过程

以下 Python 脚本遍历 ObjectID,并使用“按属性选择图层”工具和“创建要素图层”工具,按照设置的间隔值每隔“n”行进行选择。 更改脚本中的间隔值将更改选定和跳过的行数。 按照以下说明在 Python 窗口中运行脚本。

  1. 在 ArcMap 主菜单中,单击地理处理 > Python ,以打开 Python 窗口。
  2. 将脚本复制并粘贴到 Python 窗口中。
import arcpy

##Replace data path## 
fc = r'C:\EsriTraining\SpatialProb\CraterLake.gdb\Roads'

##Set desired interval. interval = 1 selects every other row, interval = 2 selects 2, skips 2,##
##interval = 3 selects 3, skips 3 and so on.## 
interval = 3
selected_oid = []
ready_to_add = False
interval = abs(interval)

##Replace layer_name if desired##
fc = arcpy.MakeFeatureLayer_management(fc, "layer_name")

with arcpy.da.SearchCursor(fc, 'OID@') as cur:
for i, row in enumerate(cur):
if i % interval ==0:
ready_to_add = not ready_to_add
if ready_to_add:
selected_oid.append(unicode(row[0]))

where = 'OBJECTID in ({})'.format(', '.join(selected_oid))
selected_fc = arcpy.SelectLayerByAttribute_management(fc, "NEW_SELECTION", where)
  1. 替换要素图层的源路径和新图层名称。
  2. Enter 键。

相关信息