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 valor del 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 ST_GEOMETRY de Oracle, debe configurar el extproc de 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.

Parámetros

EtiquetaExplicaciónTipo de datos
Entidades de entrada

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

Feature Layer; Raster Layer; Mosaic Layer
Relación
(Opcional)

Especifica la relación espacial que se evaluará.

  • IntersecciónLas entidades en la capa de entrada se seleccionarán si intersecan con una entidad de selección. Esta es la opción predeterminada.
  • Intersecar 3DLas entidades de la capa de entrada se seleccionarán si se intersecan con una entidad de selección en el espacio tridimensional (x, y, z).
  • Intersecar (DBMS)Las 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 más información en las notas de uso).Esta opción puede ofrecer mejor resultado que cuando se realiza la selección en el cliente.
  • Dentro de una distanciaLas 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 Distancia de búsqueda para especificar la distancia.
  • Dentro de una distancia geodésicaLas 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 Distancia de búsqueda para especificar la distancia.
  • Dentro de una distancia 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 Distancia de búsqueda para especificar la distancia.
  • ContieneLas entidades de la capa de entrada se seleccionarán si contienen a una entidad de selección.
  • Contiene completamenteLas entidades de la capa de entrada se seleccionarán si contienen completamente a una entidad de selección.
  • Contiene ClementiniEsta relación espacial proporciona los mismos resultados que Contiene completamente con la excepción de que si la entidad de selección está completamente sobre el límite de la entidad de entrada (ninguna parte se encuentra totalmente dentro o fuera), la entidad no se selecciona.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.
  • Dentro deLas entidades de la capa de entrada se seleccionarán si se encuentran dentro de una entidad de selección.
  • Completamente dentroLas entidades de la capa de entrada se seleccionarán si se encuentran totalmente dentro de una entidad de selección o si una entidad de selección los contiene completamente.
  • Dentro de ClementiniEl resultado será idéntico a Dentro de, 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 este 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.
  • Son idénticos aLas entidades de la capa de entrada se seleccionarán si son idénticas (en geometría) a una entidad de selección.
  • Toca el límiteLas 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.
  • Comparten un segmento de línea conLas 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 entrada y de selección deben ser poligonales o de línea.
  • Cruzado por el contorno deLas 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.
  • Tienen su centro enLas 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
Seleccionar entidades
(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
Distancia de búsqueda
(Opcional)

La distancia que se buscará. Este parámetro solo es válido si el parámetro Relación está establecido en Dentro de una distancia, Dentro de una distancia geodésica, Dentro de una distancia 3D, Intersecar, Intersecar 3D, Tienen su centro en o Contiene.

Si se selecciona la opción Dentro de una distancia geodésica, utilice una unidad lineal como kilómetros o millas.

Linear Unit
Tipo de selección
(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 Borrar la selección actual en la herramienta Seleccionar capa por atributo para ello.

  • Nueva selecciónLa selección resultante reemplazará toda selección existente. Esta es la opción predeterminada.
  • Añadir a selección actualLa selección resultante se agregará a una selección existente. Si no existe ninguna selección, coincide con la opción Nueva selección.
  • Eliminar de la selección actualLa selección resultante se quitará de una selección existente. Si no existe una selección, la operación no tendrá efecto.
  • Seleccionar subconjunto de la selección actualLa selección resultante se combinará con una selección existente. Solo permanecen seleccionados los registros comunes a ambas selecciones.
  • Cambiar la selección actualLa selección se cambiará. Todos los registros seleccionados se quitarán de la selección y todos los registros no seleccionados se agregarán a la selección.Cuando se selecciona esta opción, se ignoran los parámetros Seleccionando entidades y Relación.
String
Invertir relación espacial
(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.

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

Salida derivada

EtiquetaExplicaciónTipo de datos
Capa con selección

Las entradas actualizadas con selecciones aplicadas.

Feature Layer; Mosaic Layer
Nombres de capas de salida

Los nombres de las entradas actualizadas.

Feature Layer; Mosaic Layer
Recuento

El número de registros seleccionados.

Long

arcpy.management.SelectLayerByLocation(in_layer, {overlap_type}, {select_features}, {search_distance}, {selection_type}, {invert_spatial_relationship})
NombreExplicació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 se 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. Utilice 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. Utilice 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. Utilice 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 se encuentran totalmente dentro de una entidad de selección o si una entidad de selección los contiene completamente.
  • 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 entrada y de selección deben ser poligonales o de línea.
  • 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 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 para ello.

  • NEW_SELECTIONLa selección resultante reemplazará toda selección existente. Esta es la opción predeterminada.
  • ADD_TO_SELECTIONLa selección resultante se agregará 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 quitará de una selección existente. Si no existe una selección, la operación no tendrá efecto.
  • SUBSET_SELECTIONLa selección resultante se combinará con una selección existente. Solo permanecen seleccionados los registros comunes a ambas selecciones.
  • SWITCH_SELECTIONLa selección se cambiará. Todos los registros seleccionados se quitarán de la selección y todos los registros no seleccionados se agregarán 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.

Feature Layer; Mosaic Layer
out_layers_or_views

Los nombres de las entradas actualizadas.

Feature Layer; Mosaic Layer
count

El número de registros seleccionados.

Long

Muestra de código

Ejemplo 1 de SelectLayerByLocation (ventana de Python)

La siguiente secuencia de comandos 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 (secuencia de comandos independiente)

La siguiente secuencia de comandos 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 (secuencia de comandos independiente)

La siguiente secuencia de comandos independiente muestra una variedad de usos de las opciones WITHIN_A_DISTANCE y WITHIN_A_DISTANCE_GEODESIC del parámetro overlap_type 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