Resumen
Selecciona entidades en una capa con base en una relación espacial con las entidades de otra capa.
Cada entidad de la Capa de entidades de entrada se evalúa con las entidades de la capa o clase de entidad Seleccionando entidades; si se cumple la Relación especificada, se selecciona la entidad de entrada.
Uso
La entrada debe ser una capa de entidades y no una clase de entidad.
Esta herramienta funciona en capas de ArcMap, ArcGlobe o ArcScene, y también en capas creadas en modelos y scripts con la herramienta Crear capa de entidades.
El sistema de coordenadas en el que se evalúa la relación espacial puede afectar el resultado. Es posible que las entidades que se intersectan en un sistema de coordenadas se intersecten o no entre ellas.
- Esta herramienta evalúa una relación espacial en el sistema de coordenadas del origen de datos de la Capa de entidades de entrada (la clase de entidad del disco). Configure el entorno del sistema de coordenadas de salida para evaluar la relación espacial en un sistema de coordenadas diferente.
Esta herramienta puede utilizarse para seleccionar entidades según sus relaciones espaciales con otras entidades dentro de la misma capa. Si desea ver algunos ejemplos, consulte Seleccionar por ubicación dentro de una capa.
La herramienta Obtener contador se puede utilizar para encontrar el número de entidades seleccionadas por la herramienta Seleccionar capa por ubicación. Esto puede ser útil para determinar si cualquiera de las entidades coincide con la relación espacial deseada antes de continuar con más análisis como parte de un flujo de trabajo automatizado (es decir, script o modelo).
Para obtener más información sobre el uso de las relaciones espaciales tridimensionales INTERSECT_3D y WITHIN_A_DISTANCE_3D, consulte Seleccionar por ubicación: relaciones 3D.
Sintaxis
arcpy.management.SelectLayerByLocation(in_layer, {overlap_type}, {select_features}, {search_distance}, {selection_type}, {invert_spatial_relationship})
Parámetro | Explicación | Tipo de datos |
in_layer | Capa que contiene las entidades que se evaluarán con respecto a select_features. Se aplicará la selección a esta capa. La entrada no puede ser la ruta a una clase de entidad del disco. | Feature Layer; Mosaic Layer; Raster Catalog Layer |
overlap_type (Opcional) | Relación espacial que se evaluará.
| String |
select_features (Opcional) | Las entidades de la capa de entidades de entrada se seleccionarán según su relación con las entidades de esta capa o clase de entidad. | Feature Layer |
search_distance (Opcional) | Este parámetro solo es válido si el parámetro overlap_type se ha establecido en uno de los siguientes valores: WITHIN_A_DISTANCE_GEODESIC, WITHIN_A_DISTANCE, WITHIN_A_DISTANCE_3D, INTERSECT, INTERSECT_3D, HAVE_THEIR_CENTER_IN, CONTAINS, o WITHIN. Si se utiliza la opción WITHIN_A_DISTANCE_GEODESIC, debe usarse una unidad lineal, como kilómetros o millas. | Linear unit |
selection_type (Opcional) | Determina cómo se aplicará la selección a la entrada y cómo combinarla con una selección existente. Tenga en cuenta que aquí no hay una opción para borrar una selección existente. Para borrar una selección, utilice la opción CLEAR_SELECTION de la herramienta Seleccionar capa por atributo.
| String |
invert_spatial_relationship (Opcional) | Una vez evaluada la relación espacial, esta opción determina si el resultado se debe utilizar tal cual o invertido. Por ejemplo, esta opción se puede usar para obtener rápidamente una lista de las entidades que no se intersecan o que no están dentro de una distancia de las entidades de otro dataset.
| Boolean |
Salida derivada
Nombre | Explicación | Tipo de datos |
out_layer_or_view | La entrada actualizada con la selección aplicada. | Capa de entidades; Capa de catálogo de ráster; Capa de mosaico |
Muestra de código
Ejemplo 1 de SelectLayerByLocation (ventana de Python)
El siguiente script de la ventana de Python demuestra cómo utilizar la función SelectLayerByLocation en el modo inmediato.
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")
Ejemplo 2 de SelectLayerByLocation (script independiente)
El siguiente script independiente muestra cómo utilizar la función SelectLayerByLocation en un flujo de trabajo para extraer entidades en una nueva clase de entidad basada en la ubicación y en una consulta de atributos.
# 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')[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))
Entornos
Información de licenciamiento
- Basic: Sí
- Standard: Sí
- Advanced: Sí