ArcPy 中的反向选择?

Reverse selection in ArcPy?

我正在尝试使用 python 在 ArcGIS 中找出不包含任何商店的县。

我有一个点层(代表商店)和一个多边形层(代表县)。我已经设法编写了一些代码来找出确实包含这些商店的县。代码如下。

import arcpy
arcpy.env.overwriteOutput = True
path="C:/Users/XARDAS/Documents/ArcGIS/Packages/Romania1000k_9E5B7FEC-6005-4D3A-81EA-E95FAACEF69E/v101/ro1mil.gdb"
arcpy.MakeFeatureLayer_management(path+"/Counties", "Counties_lyr")
arcpy.MakeFeatureLayer_management(path+"/Stores", "Stores_lyr")
arcpy.SelectLayerByAttribute_management("Stores_lyr", "NEW_SELECTION","Type=1")
arcpy.SelectLayerByLocation_management("Counties_lyr","INTERSECT","Stores_lyr",0,"NEW_SELECTION")

所以这给了我有商店的县,但我想以某种方式反转程序的交集,给我那些没有商店的县。我想过只删除选定的县,但我认为这不太好。

由于您已经选择了所有您不想选择的内容,反转(或切换)选择将为您提供您想要的内容。 (ref help page)

在末尾添加这一行:

arcpy.SelectLayerByAttribute_management("Counties_lyr", "SWITCH_SELECTION")

上面的答案有效,但 SelectLayerByLocation 允许您在函数内反转选择:

arcpy.SelectLayerByLocation_management("Counties_lyr","INTERSECT","Stores_lyr",0,"NEW_SELECTION","INVERT")