按位置选择图层 (Data Management)

许可等级:BasicStandardAdvanced

摘要

根据与另一个图层中的要素的空间关系来选择本图层中的要素。

将根据选择要素图层或要素类中的要素评估输入要素图层中的各个要素;如果满足指定的关系,输入要素即会被选择。

关系图示例

用法

语法

SelectLayerByLocation_management (in_layer, {overlap_type}, {select_features}, {search_distance}, {selection_type})
参数说明数据类型
in_layer

包含根据“选择要素”进行评估的要素的图层。选择将应用于该图层。输入可以是 ArcMap 内容列表中的图层,也可以是使用“创建要素图层”工具在 ArcCatalog 或脚本中创建的图层。输入不能为磁盘上某个要素类的路径。

Feature Layer; Mosaic Layer; Raster Catalog Layer
overlap_type
(可选)

要评估的空间关系。

  • 相交如果输入图层中的要素与某一选择要素相交,则会选择这些要素。这是默认设置。
  • INTERSECT_3D如果输入图层中的要素与三维空间(x、y 和 z)中的某一选择要素相交,则会选择这些要素。
  • WITHIN_A_DISTANCE如果输入图层中的要素在某一选择要素的指定距离内,则会选择这些要素。在“搜索距离”参数中指定距离。
  • WITHIN_A_DISTANCE_3D如果输入图层中的要素在三维空间中的某一选择要素的指定距离内,则会选择这些要素。在“搜索距离”参数中指定距离。
  • 包含如果输入图层中的要素包含某一选择要素,则会选择这些要素。输入要素必须是面要素。
  • COMPLETELY_CONTAINS如果输入图层中的要素完全包含某一选择要素,则会选择这些要素。输入要素必须是面要素。
  • CONTAINS_CLEMENTINI该空间关系产生与 COMPLETELY_CONTAINS 相同的结果,但有一种情况例外。如果选择要素完全位于输入要素的边界上(没有任何部件完全位于里面或外面),则不会选择要素。 CLEMENTINI 将边界面定义为用来分隔内部和外部的线,将线的边界定义为其端点,点的边界始终为空。
  • WITHIN如果输入图层中的要素在某一选择要素内,则会选择这些要素。选择要素必须是面。
  • COMPLETELY_WITHIN如果输入图层中的要素完全位于或包含在某一选择要素内,则会选择这些要素。选择要素必须是面。
  • WITHIN_CLEMENTINI结果同 WITHIN,但下述情况例外:如果输入图层中的要素完全位于选择图层中要素的边界上,则不会选择该要素。 CLEMENTINI 将边界面定义为用来分隔内部和外部的线,将线的边界定义为其端点,点的边界始终为空。
  • ARE_IDENTICAL_TO如果输入图层中的要素与某一选择要素相同(就几何而言),则会选择这些要素。
  • BOUNDARY_TOUCHES如果输入图层中要素的边界与某一选择要素接触,则会选择这些要素。输入和选择要素必须是线或面。另外,输入图层中的要素必须完全位于选择图层中面要素的内部或外部。
  • SHARE_A_LINE_SEGMENT_WITH如果输入图层中的要素与某一选择要素共线,则会选择这些要素。输入和选择要素必须是线或面。
  • CROSSED_BY_THE_OUTLINE_OF如果输入图层中的要素与某一选择要素的轮廓交叉,则会选择这些要素。输入和选择要素必须是线或面。如果将面用于输入或选择图层,则会使用面的边界(线)。将选择在某一点交叉的线,而不是共线的线。
  • HAVE_THEIR_CENTER_IN如果输入图层中要素的中心落在某一选择要素内,则会选择这些要素。要素中心的计算方式如下:对于面和多点,将使用几何的质心;对于线输入,则会使用几何的中点。
  • CONTAINED_BY返回的结果同 WITHIN。保留了 CONTAINED_BY 以便向后兼容在 ArcGIS 9.3 之前的版本中构建的模型和脚本。
String
select_features
(可选)

输入要素图层中的要素将根据它们与此图层或要素类中要素的关系进行选择。

Feature Layer
search_distance
(可选)

仅当“关系”参数被设置为以下其中一项时,该参数才有效:WITHIN_A_DISTANCE、WITHIN_A_DISTANCE_3D、INTERSECT、INTERSECT_3D、HAVE_THEIR_CENTER_IN、CONTAINS 或 WITHIN。

Linear unit
selection_type
(可选)

确定如何将选择内容应用于输入,以及如何同现有选择内容进行组合。注意:此处没有用于清除现有选择内容的选项。要清除选择内容,请使用“按属性选择图层”工具上的 CLEAR_SELECTION 选项。

  • NEW_SELECTION生成的选择内容将替换任何现有选择内容。这是默认设置。
  • ADD_TO_SELECTION当存在一个选择内容时,会将生成的选择内容添加到现有选择内容中。如果不存在选择内容,该选项的作用同 NEW_SELECTION 选项。
  • REMOVE_FROM_SELECTION将生成的选择内容从现有选择内容中移除。如果不存在选择内容,该操作将不起作用。
  • SUBSET_SELECTION将生成的选择内容与现有选择内容进行组合。只有两者共同的记录才会被选取。
  • SWITCH_SELECTION切换选择内容。将所选的所有记录从选择内容中移除,将未选取的所有记录添加到选择内容中。 如果已选择该选项,那么将忽略“选择要素”参数和“关系”参数。
String

代码实例

SelectLayerByLocation 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何在即时模式下使用 SelectLayerByLocation 函数。

import arcpy

# First, make a layer from the feature class
arcpy.MakeFeatureLayer_management("c:/kamsack.gdb/parcel", "parcel_lyr")

# Then add a selection to the layer based on location to features in another feature class 
arcpy.SelectLayerByLocation_management ("parcel_lyr", "have_their_center_in", "c:/kamsack.gdb/city_limits")
SelectLayerByLocation 示例 2(独立脚本)

以下独立脚本显示了如何在工作流中使用 SelectLayerByLocation 函数,以便根据位置和属性查询提取要素并将其导入一个新要素类中。

# Name: ExtactFeaturesByLocationAndAttribute.py
# Description: Extract features to a new feature class based on a Location and an attribute query

# Import arcpy and set path to data
import arcpy
arcpy.env.workspace = "c:/data/mexico.gdb"

# Make a layer and select cities which overlap the chihuahua polygon
arcpy.MakeFeatureLayer_management('cities', 'cities_lyr') 
arcpy.SelectLayerByLocation_management('cities_lyr', 'intersect', 'chihuahua')
 
# Within the previous selection sub-select cities which have population > 10,000
arcpy.SelectLayerByAttribute_management('cities_lyr', 
                                        'SUBSET_SELECTION', '"population" > 10000')

# If features matched criteria write them to a new feature class
matchcount = int(arcpy.GetCount_management('cities_lyr').getOutput(0)) 
if matchcount == 0:
    print('no features matched spatial and attribute criteria')
else:
    arcpy.CopyFeatures_management('cities_lyr', 'chihuahua_10000plus')
    print('{0} cities that matched criteria written to {0}'.format(
                                                  matchcount, chihuahua_10000plus))

环境

相关主题

许可信息

ArcGIS for Desktop Basic:是
ArcGIS for Desktop Standard:是
ArcGIS for Desktop Advanced:是
9/15/2013