Seleccionar capa por ubicación (Administración de datos)

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 Seleccionar entidades. Si se cumple el parámetro especificado Relación, se selecciona la entidad de entrada.

Más información sobre Seleccionar por ubicación, incluidos ejemplos de imagen de relaciones

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 en la visualización actual.

  • Esta herramienta puede utilizarse para seleccionar entidades según sus relaciones espaciales con otras entidades dentro de la misma capa. Para ver ejemplos, consulte Seleccionar en función de la relación espacial dentro de la 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. Plantéese lo siguiente al utilizar esta relación espacial:

    • Los siguientes requisitos son necesarios para que la operación se ejecute en el DBMS:
      • Los valores de los parámetros Entidades de entrada y Entidades de selección corresponden al mismo espacio de trabajo de geodatabase corporativa y deben tener la misma referencia espacial y tipo de almacenamiento de geometría.
      • El DBMS subyacente es IBM Db2, Oracle, PostgreSQL, SAP HANA o Microsoft SQL Server.
      • 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.
      • Las selecciones existentes antes de ejecutar la herramienta se realizaron con una consulta de definición de capa, no con 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. Pueden existir limitaciones de almacenamiento que afecten al rendimiento y a la escalabilidad cuando se ejecuten operaciones espaciales.

Sintaxis

arcpy.management.SelectLayerByLocation(in_layer, {overlap_type}, {select_features}, {search_distance}, {selection_type}, {invert_spatial_relationship})
ParámetroExplicaciónTipo de datos
in_layer
[in_layer,...]

Las entidades que se evaluarán con respecto a los valores del parámetro select_features. Se aplicará la selección a estas entidades.

Feature Layer; Raster Layer; Mosaic Layer
overlap_type
(Opcional)

Especifica la relación espacial que se evaluará.

  • INTERSECTLas entidades en la capa de entrada se seleccionarán si intersecan con una entidad de selección. Esta es la opción predeterminada.
  • INTERSECT_3DLas entidades de la capa de entrada se seleccionarán si intersecan con una entidad de selección en el espacio tridimensional (x, y, z).
  • INTERSECT_DBMSLas entidades en la capa de entrada se seleccionarán si intersecan con una entidad de selección. Esta opción solo se aplica a geodatabases corporativas. La selección se procesará en el DBMS de la geodatabase corporativa y no en el cliente cuando se cumplan todos los requisitos (consulte las notas de uso). Esta opción puede ofrecer mejor resultado que cuando se realiza la selección en el cliente.
  • WITHIN_A_DISTANCELas entidades de la capa de entrada se seleccionarán si se encuentran dentro de una distancia especificada (usando la distancia euclidiana) de la entidad de selección. Use el parámetro search_distance para especificar la distancia.
  • WITHIN_A_DISTANCE_3DLas entidades en la capa de entrada se seleccionarán si se encuentran dentro de una distancia especificada de una entidad de selección en el espacio tridimensional. Use el parámetro search_distance para especificar la distancia.
  • WITHIN_A_DISTANCE_GEODESICLas entidades de la capa de entrada se seleccionarán si se encuentran dentro de una distancia especificada de la entidad de selección. La distancia entre entidades se calculará utilizando una fórmula geodésica que tiene en cuenta la curvatura del esferoide y que maneja correctamente los datos de los polos y la línea de cambio de fecha y los cercanos a estos. Use el parámetro search_distance para especificar la distancia.
  • CONTAINSLas entidades de la capa de entrada se seleccionarán si contienen a una entidad de selección.
  • COMPLETELY_CONTAINSLas entidades de la capa de entrada se seleccionarán si contienen completamente a una entidad de selección.
  • CONTAINS_CLEMENTINIEsta relación espacial proporciona los mismos resultados que COMPLETELY_CONTAINS, con la excepción de que si la entidad de selección está situada sobre el límite de la entidad de entrada (ninguna parte se encuentra claramente dentro o fuera), no se selecciona la entidad. CLEMENTINI define el polígono de límite como la línea que separa el interior del exterior, el límite de una línea se define como sus extremos y el límite de un punto siempre está vacío.
  • WITHINLas entidades de la capa de entrada se seleccionarán si se encuentran dentro de una entidad de selección.
  • COMPLETELY_WITHINLas entidades de la capa de entrada se seleccionarán si están completamente dentro o contenidas por una entidad de selección.
  • WITHIN_CLEMENTINIEl resultado será idéntico a WITHIN, excepto si la totalidad de la entidad de la capa de entrada está sobre el límite de la entidad en la capa de selección; en ese caso, no se seleccionará la entidad. CLEMENTINI define el polígono de límite como la línea que separa el interior del exterior, el límite de una línea se define como sus extremos y el límite de un punto siempre está vacío.
  • ARE_IDENTICAL_TOLas entidades de la capa de entrada se seleccionarán si son idénticas (en geometría) a una entidad de selección.
  • BOUNDARY_TOUCHESLas entidades de la capa de entrada se seleccionarán si tienen un límite que toca a una entidad de selección. Si las entidades de entrada son líneas o polígonos, el límite de la entidad de entrada solo puede tocar el límite de la entidad de selección y ninguna parte de la entidad de entrada puede cruzar el límite de la entidad de selección.
  • SHARE_A_LINE_SEGMENT_WITHLas entidades de la capa de entrada se seleccionarán si comparten un segmento de línea con una entidad de selección. Las entidades de la selección y las entidades de entrada deben ser líneas o polígonos.
  • CROSSED_BY_THE_OUTLINE_OFLas entidades de la capa de entrada se seleccionarán si las cruza el contorno de una entidad de selección. Las entidades de la selección y las entidades de entrada y deben ser líneas o polígonos. Si se utilizan polígonos para la capa de entrada o seleccionada, se utilizarán los límites (las líneas) del polígono. Se seleccionarán las líneas que se crucen en un punto, pero no las que comparten un segmento de línea.
  • HAVE_THEIR_CENTER_INLas entidades de la capa de entrada se seleccionarán si su centro cae dentro de una entidad de selección. El centro de la entidad se calcula del modo siguiente: para los polígonos y los multipuntos se utiliza el centroide de la geometría, y para la entrada de línea se utiliza el punto medio de la geometría.
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 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.

  • NEW_SELECTIONLa selección resultante reemplaza toda selección existente. Esta es la opción predeterminada.
  • ADD_TO_SELECTIONLa selección resultante se agrega a una selección existente. Si no existe ninguna selección, coincide con la opción NEW_SELECTION.
  • REMOVE_FROM_SELECTIONLa selección resultante se quita de una selección existente. Si no existe una selección, la operación no tendrá efecto.
  • SUBSET_SELECTIONLa selección resultante se combina con una selección existente. Solo permanecen seleccionados los registros comunes a ambas selecciones.
  • SWITCH_SELECTIONLa selección se cambia. Todos los registros seleccionados se quitan de la selección y todos los registros no seleccionados se agregan a la selección. Cuando se selecciona esta opción, se ignoran los parámetros select_features y overlap_type.
String
invert_spatial_relationship
(Opcional)

Especifica si el resultado de la evaluación de relación espacial se utilizará o se invertirá. Por ejemplo, este parámetro se puede utilizar para obtener una lista de entidades que no se intersecan o que no están dentro de una distancia determinada respecto a entidades de otro dataset.

  • NOT_INVERTSe utilizará el resultado de la consulta. Esta es la opción predeterminada.
  • INVERTSe utilizará el resultado de la consulta invertida. Si se usa el parámetro selection_type, la inversión de la selección se producirá antes de que se combine con las selecciones existentes.
Boolean

Salida derivada

NombreExplicaciónTipo 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

Ejemplo 1 de SelectLayerByLocation (ventana de Python)

El siguiente script de la ventana de Python demuestra cómo utilizar la función SelectLayerByLocation en modo inmediato.

import arcpy
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.

# 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))
Ejemplo 3 de SelectLayerByLocation (script independiente)

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"
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, the 
# distance value 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, 
# the distance value is 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í

Temas relacionados