Sélectionner une couche par emplacement (Gestion des données)

Niveau de licence :BasicStandardAdvanced

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.

Exemples graphiques de relations

Utilisation

Syntaxe

SelectLayerByLocation_management (in_layer, {overlap_type}, {select_features}, {search_distance}, {selection_type})
ParamètreExplicationType de données
in_layer

Couche qui contient les entités qui seront évaluées par rapport à la Couche de sélection. La sélection sera appliquée à cette couche. L'entrée peut être une couche dans la table des matières d'ArcMap ou une couche créée dans ArcCatalog ou dans des scripts à l'aide de l'outil Générer une 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.

  • INTERSECT —Les entités de la couche en entrée sont sélectionnées si elles intersectent une entité de la couche de sélection. Il s'agit de l'option par défaut.
  • INTERSECT_3D —Les entités dans la couche en entrée sont sélectionnées si elles intersectent une entité de la couche de sélection dans un espace tridimensionnel (x, y et z).
  • WITHIN_A_DISTANCE —Les entités de la couche en entrée sont sélectionnées si elles se trouvent à une distance donnée d'une entité de la couche de sélection. Indiquez une distance dans le paramètre Distance de recherche.
  • WITHIN_A_DISTANCE_3D —Les entités de la couche en entrée sont sélectionnées si elles se trouvent à une distance donnée d'une entité de la couche de sélection dans un espace tridimensionnel. Indiquez une distance dans le paramètre Distance de recherche.
  • CONTAINS —Les entités de la couche en entrée sont sélectionnées si elles contiennent une entité de la couche de sélection. Les entités en entrée doivent être des polygones.
  • COMPLETELY_CONTAINS —Les entités de la couche en entrée sont sélectionnées si elles contiennent complètement une entité de la couche de sélection. Les entités en entrée doivent être des polygones.
  • CONTAINS_CLEMENTINI —Cette relation spatiale présente les mêmes résultats que COMPLETELY_CONTAINS avec une exception. Si l'entité de sélection se trouve entièrement sur la limite de l'entité en entrée (aucune partie n'est à l'intérieur de ou à l'extérieur), l'entité ne sera pas sélectionnée. CLEMENTINI définit le polygone de limite comme la ligne qui sépare à l'intérieur et l'extérieur ; la limite d'une ligne est définie par ses extrémités et la limite d'un point est toujours vide.
  • WITHIN —Les entités de la couche en entrée sont sélectionnées si elles se trouvent dans une entité de la couche de sélection. Les entités de la couche de sélection doivent être des polygones.
  • COMPLETELY_WITHIN —Les entités de la couche en entrée sont sélectionnées si elles se trouvent complètement dans ou sont contenues par les entités de la couche de sélection. Les entités de la couche de sélection doivent être des polygones.
  • WITHIN_CLEMENTINI —Le résultat est identique à celui obtenu avec WITHIN, excepté que si la totalité de l'entité dans la couche d'entités en entrée est à la limite de l'entité dans la couche de sélection, l'entité n'est pas sélectionnée. CLEMENTINI définit le polygone de limite comme la ligne qui sépare à l'intérieur et l'extérieur ; la limite d'une ligne est définie par ses extrémités et la limite d'un point est toujours vide.
  • ARE_IDENTICAL_TO —Les entités de la ou des couches en entrée sont sélectionnées si elles sont identiques (en géométrie) à une entité de la couche de sélection.
  • BOUNDARY_TOUCHES —Les entités de la couche en entrée sont sélectionnées si une de leurs limites touche une entité de la couche de sélection. Les entrées et les entités de la couche de sélection doivent être des lignes ou des polygones. En outre, l'entité dans la couche en entrée doit se trouver entièrement à l'intérieur ou à l'extérieur du polygone de la couche de sélection.
  • SHARE_A_LINE_SEGMENT_WITH —Les entités de la couche en entrée sont sélectionnées si elles partagent un segment de ligne avec une entité de la couche de sélection. Les entrées et les entités de la couche de sélection doivent être des lignes ou des polygones.
  • CROSSED_BY_THE_OUTLINE_OF —Les entités de la ou des couches en entrée sont sélectionnées si elles sont croisées par le contour d'une entité de la couche de sélection. Les entrées et les entités de la couche de sélection doivent être des lignes ou des polygones. Si des polygones sont utilisés pour la couche en entrée ou la couche de sélection, la limite (ligne) du polygone sera utilisée. Les lignes qui se croisent au niveau d'un point sont sélectionnées, contrairement à celles qui partagent un segment de ligne.
  • HAVE_THEIR_CENTER_IN —Les entités de la couche en entrée sont sélectionnées si leur centre se trouve dans une entité de la couche de sélection. Le centre de l'entité est calculé comme suit : pour les polygones et multi-points, c'est le centroïde de la géométrie qui est utilisé et pour les lignes en entrée, le centre de la géométrie.
  • CONTAINED_BY —Renvoie le même résultat que WITHIN. CONTAINED_BY est conservé pour prendre en charge la compatibilité avec les versions précédentes des modèles et des scripts construits dans les versions antérieures à ArcGIS 9.3.
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 Relation est défini sur l'une des valeurs suivantes : WITHIN_A_DISTANCE, WITHIN_A_DISTANCE_3D, INTERSECT, INTERSECT_3D, HAVE_THEIR_CENTER_IN, CONTAINS ou WITHIN.

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.

  • NEW_SELECTION —La sélection obtenue remplace toute sélection existante. Il s'agit de l'option par défaut.
  • ADD_TO_SELECTION —La sélection obtenue est ajoutée à l'éventuelle sélection existante. S'il n'existe aucune sélection, elle est identique à celle de l'option NEW_SELECTION.
  • REMOVE_FROM_SELECTION —La sélection obtenue est supprimée d'une sélection existante. Si aucune sélection n'existe, l'opération n'aura aucun effet.
  • SUBSET_SELECTION —La sélection obtenue est associée à la sélection existante. Seuls les enregistrements communs aux deux restent sélectionnés.
  • SWITCH_SELECTION —Inverse la sélection. Tous les enregistrements qui étaient sélectionnés sont supprimés de la sélection. Tous les enregistrements qui n'étaient pas sélectionnés sont ajoutés à la sélection. Les paramètres Couche de sélection et Relation sont ignorés lorsque cette option est sélectionnée.
String

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').getOutput(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

Thèmes connexes

Informations de licence

ArcGIS for Desktop Basic: Oui
ArcGIS for Desktop Standard: Oui
ArcGIS for Desktop Advanced: Oui
6/5/2014