Resumen
Selecciona entidades basadas en una relación espacial con las entidades de otro dataset.
Cada entidad del parámetro Entidades de entrada se evalúa con las entidades del parámetro Entidades de selección; si se cumple el parámetro Relación especificado, se selecciona la entidad de entrada.
Uso
Si la entrada es una clase de entidad o una ruta de dataset, esta herramienta creará y devolverá automáticamente una nueva capa con el resultado de la herramienta aplicada.
El sistema de coordenadas en que se evalúa la relación espacial puede afectar al resultado. Es posible que las entidades que se intersecan en un sistema de coordenadas no se intersequen en otro.
- Esta herramienta evalúa una relación espacial en el sistema de coordenadas de la fuente de datos de Entidades de entrada. Establezca el entorno del sistema de coordenadas de salida en Mapa actual [Capas] para utilizar el mismo sistema de coordenadas que la visualización actual.
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.
El número de registros seleccionados aparecerá en el historial de geoprocesamiento, en Parámetros > Recuento. Además, la herramienta Obtener conteo se puede utilizar para contar el número de registros seleccionados. En Python, también se puede acceder al número de registros seleccionados desde el objeto Result de la herramienta.
Para obtener más información sobre el uso de las relaciones espaciales tridimensionales Intersecar 3D y Dentro de una distancia 3D (INTERSECT_3D y WITHIN_A_DISTANCE_3D en Python), consulte Seleccionar por ubicación: relaciones 3D.
La relación espacial Intersecar (DBMS) (INTERSECT_DBMS en Python) puede proporcionar un mejor rendimiento que la relación Intersecar (INTERSECT en Python) cuando se utilizan datos de geodatabase corporativa; sin embargo, solo se admite en condiciones específicas. Si se cumplen todas las condiciones, la operación espacial se realizará en el sistema de administración de bases de datos (DBMS) de la geodatabase corporativa en lugar de en el cliente. Hay varias consideraciones a tener en cuenta al utilizar esta relación espacial:
- Los siguientes requisitos son necesarios para que la operación se ejecute en el DBMS:
- Las Entidades de entrada y las Entidades de selección corresponden al mismo espacio de trabajo de geodatabase corporativa.
- El DBMS subyacente es IBM Db2, Oracle, PostgreSQL, SAP HANA o Microsoft SQL Server.
- Las Entidades de entrada y las Entidades de selección deben tener el mismo tipo de almacenamiento de geometría.
- Los tipos de almacenamiento de geometría admitidos para esta opción son ST_GEOMETRY (Db2, Oracle, PostgreSQL y SAP HANA), PostGIS (PostgreSQL), SDO_GEOMETRY (Oracle) y MSSQLGeometry y MSSQLGeography (SQL Server). Consulte Administración de geodatabase para obtener información sobre la instalación y configuración del DBMS, así como información sobre la configuración del tipo de almacenamiento de geometría que elija para que esté disponible para su uso.
- Si utiliza Oracle ST_GEOMETRY, debe configurar el extproc Oracle para acceder a ST_Geometry. Para obtener más información, consulte Configurar el extproc para acceder a ST_Geometry en Oracle.
- El parámetro Distancia de búsqueda no se ha configurado.
- El valor del parámetro Tipo de selección es Nueva selección.
- En las selecciones existentes antes de la ejecución de la herramienta se empleó una consulta de definición de capa, en lugar de un conjunto de selección.
- La operación espacial se realiza sin aplicar ninguna tolerancia x,y durante el procesamiento. No se admite el uso de una tolerancia x,y en el DBMS. Esto puede dar lugar a que se devuelvan selecciones ligeramente diferentes que cuando el análisis se realiza en el cliente, donde se aplica la tolerancia x,y. Consulte Conceptos básicos de clases de entidad para obtener más información sobre la forma en que se aplica la tolerancia x,y durante las operaciones en el lado del cliente
- Las geodatabases corporativas de Db2, Oracle, PostgreSQL, SAP HANA y SQL Server son compatibles. Cada una tiene su propio tipo de almacenamiento de geometría, que admite esta relación. Consulte la documentación del proveedor específica del DBMS para determinar qué cabe esperar de cada tipo de almacenamiento de geometría. Puede que haya limitaciones de almacenamiento que afectarán al rendimiento y la escalabilidad al ejecutar operaciones espaciales.
- Los siguientes requisitos son necesarios para que la operación se ejecute en el DBMS:
Sintaxis
SelectLayerByLocation(in_layer, {overlap_type}, {select_features}, {search_distance}, {selection_type}, {invert_spatial_relationship})
Parámetro | Explicación | Tipo de datos |
in_layer [in_layer,...] | Las entidades que se evaluarán con respecto al parámetro select_features. Se aplicará la selección a estas entidades. | Feature Layer; Raster Layer; Mosaic Layer |
overlap_type (Opcional) | Relación espacial que se evaluará.
| String |
select_features (Opcional) | Las entidades del parámetro 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) | La distancia especificada que se buscará. Este parámetro solo es válido si el parámetro overlap_type está establecido en una de las opciones siguientes: WITHIN_A_DISTANCE, WITHIN_A_DISTANCE_GEODESIC, WITHIN_A_DISTANCE_3D, INTERSECT, INTERSECT_3D, HAVE_THEIR_CENTER_IN o CONTAINS. Si se selecciona la opción WITHIN_A_DISTANCE_GEODESIC, utilice una unidad lineal como kilómetros o millas. | Linear Unit |
selection_type (Opcional) | Especifica cómo se aplicará la selección a la entrada y cómo se combinará con una selección existente. Esta herramienta no incluye ninguna opción para borrar una selección existente; utilice la opción CLEAR_SELECTION en la herramienta Seleccionar capa por atributo.
| String |
invert_spatial_relationship (Opcional) | Especifica si el resultado de la evaluación de la relación espacial se invertirá o se utilizará tal cual. Por ejemplo, este parámetro se puede utilizar para obtener rápidamente una lista de entidades que no se intersecan o que no están dentro de una distancia determinada respecto a entidades de otro dataset.
| Boolean |
Salida derivada
Nombre | Explicación | Tipo de datos |
out_layer_or_view | Las entradas actualizadas con selecciones aplicadas. | Capa de entidades; Capa de mosaico |
out_layers_or_views | Los nombres de las entradas actualizadas. | Capa de entidades; Capa de mosaico |
count | El número de registros seleccionados. | Largo |
Muestra de código
El siguiente script de la ventana de Python demuestra cómo utilizar la función SelectLayerByLocation en modo inmediato.
import arcpy
# 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")
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.
# 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 that overlap the chihuahua polygon
chihuahua_cities = arcpy.SelectLayerByLocation_management('cities', 'INTERSECT',
'chihuahua')
# From the previous selection, select a subset of cities that have population > 10,000
arcpy.SelectLayerByAttribute_management(chihuahua_cities,
'SUBSET_SELECTION',
'"population" > 10000')
# If features matched criteria, write them to a new feature class
matchcount = int(arcpy.GetCount_management(chihuahua_cities)[0])
if matchcount == 0:
print('no features matched spatial and attribute criteria')
else:
arcpy.CopyFeatures_management(chihuahua_cities, 'chihuahua_10000plus')
print('{0} cities that matched criteria written to {0}'.format(
matchcount, chihuahua_10000plus))
El siguiente script independiente muestra una variedad de usos de las opciones overlap_type y WITHIN_A_DISTANCE del parámetro WITHIN_A_DISTANCE_GEODESIC con el parámetro search_distance.
# Description: Select features within a distance
# Import arcpy and set path to data
import arcpy
arcpy.env.workspace = r"c:\data\mexico.gdb"
# Parameter order : in_layer, overlap_type, select_features, search_distance
arcpy.SelectLayerByLocation_management('cities', 'WITHIN_A_DISTANCE',
'chihuahua', '1.5 Miles')
arcpy.SelectLayerByLocation_management('cities', 'WITHIN_A_DISTANCE_GEODESIC',
'chihuahua', '200 Kilometers')
When using WITHIN_A_DISTANCE, if distance units are not specified, then the
# distance is assumed to be in the units of the input dataset's coordinate
# system
arcpy.SelectLayerByLocation_management('cities', 'WITHIN_A_DISTANCE',
'chihuahua', '200')
# When using WITHIN_A_DISTANCE_GEODESIC, if distance units are not specified,
# then the distance value assumed to be in meters
arcpy.SelectLayerByLocation_management('cities', 'WITHIN_A_DISTANCE_GEODESIC',
'chihuahua', '200')
Información de licenciamiento
- Basic: Sí
- Standard: Sí
- Advanced: Sí