Récapitulatif
Sélectionne des entités dans une couche en fonction de leur relation spatiale avec les entités d'une autre couche.
Chaque entité de la Couche d'entités en entrée est évaluée par rapport aux entités de la Couche de sélection ou de la classe d'entités ; si la Relation répond aux critères définis, l'entité en entrée est sélectionnée.
Utilisation
L'entrée doit être un couche d'entités ; il ne peut s'agit d'une classe d'entités.
Cet outil fonctionne sur les couches dans ArcMap, ArcGlobe ou ArcScene, ainsi que sur les couches créées dans des modèles et des scripts à l'aide de l'outil Générer une couche.
-
Le système de coordonnées dans lequel la relation spatiale est évaluée peut affecter le résultat. Les entités qui intersectent dans un système de coordonnées peuvent ou non intersecter une autre.
- Cet outil permet d'évaluer une relation spatiale dans le système de coordonnées de la source de données de la Couche d'entités en entrée (classe d'entités sur le disque). Définissez l'environnement du système de coordonnées en sortie pour évaluer la relation spatiale dans un autre système de coordonnées.
Cet outil permet de sélectionner des entités en fonction de leurs relations spatiales avec d'autres entités dans la même couche. Pour consulter des exemples, reportez-vous à Sélectionner selon l'emplacement : sélectionner en fonction d'une relation spatiale dans la couche.
L'outil Compter permet de recherche le nombre d'entités sélectionnées par l'outil Sélectionner une couche par emplacement. Cela peut être utile pour déterminer si des entités correspondent à la relation spatiale souhaitée avant de procéder à une analyse supplémentaire dans le cadre d'un workflow automatisé (c'est-à-dire, un script ou un modèle).
Pour plus d'informations sur l'utilisation des relations spatiales tridimensionnelles INTERSECT_3D et WITHIN_A_DISTANCE_3D, reportez-vous à la rubrique Sélectionner selon l'emplacement et relations 3D.
Syntaxe
SelectLayerByLocation_management (in_layer, {overlap_type}, {select_features}, {search_distance}, {selection_type}, {invert_spatial_relationship})
Paramètre | Explication | Type de données |
in_layer | Couche contenant les entités qui seront évaluées par rapport à la select_features. La sélection sera appliquée à cette couche. L'entrée ne peut pas être le chemin d'accès à une classe d'entités sur le disque. | Feature Layer; Mosaic Layer; Raster Catalog Layer |
overlap_type (Facultatif) | Relation spatiale à évaluer.
| String |
select_features (Facultatif) | Les entités de la couche d'entités en entrée sont sélectionnées en fonction de leur relation avec les entités de cette couche ou classe d'entités. | Feature Layer |
search_distance (Facultatif) | Ce paramètre est valide uniquement si le paramètre overlap_type est défini sur l'une des valeurs suivantes : WITHIN_A_DISTANCE_GEODESIC, WITHIN_A_DISTANCE, WITHIN_A_DISTANCE_3D, INTERSECT, INTERSECT_3D, HAVE_THEIR_CENTER_IN, CONTAINS, ou WITHIN. Si l'option WITHIN_A_DISTANCE_GEODESIC est utilisée, vous devez utiliser une unité linéaire telle que le kilomètre ou le mètre. | Linear unit |
selection_type (Facultatif) | Détermine comment la sélection sera appliquée à l'entrée et comment la combiner avec une sélection existante. Notez qu'aucune option n'est disponible ici pour désactiver une sélection existante. Pour désactiver une sélection, utilisez l'option CLEAR_SELECTION de l'outil Sélectionner une couche par attributs.
| String |
invert_spatial_relationship (Facultatif) | Une fois la relation spatiale évaluée, cette option détermine si le résultat doit être utilisé en l'état ou inversé. Par exemple, cette option peut servir à obtenir rapidement une liste des entités qui ne s'intersectent pas ou ne se trouvent pas à une certaine distance des entités d'un autre jeu de données.
| Boolean |
Exemple de code
Exemple 1 d'utilisation de l'outil SelectLayerByLocation (fenêtre Python)
Le script de fenêtre Python ci-dessous illustre l'utilisation de la fonction SelectLayerByLocation en mode immédiat.
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")
Exemple 2 d'utilisation de l'outil SelectLayerByLocation (script autonome)
Le script autonome suivant indique comment utiliser la fonction SelectLayerByLocation dans un workflow permettant d'extraire des entités vers une nouvelle classe d'entités en fonction d'un emplacement et une requête attributaire.
# 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))
Environnements
Informations de licence
- ArcGIS for Desktop Basic: Oui
- ArcGIS for Desktop Standard: Oui
- ArcGIS for Desktop Advanced: Oui