Layer lagebezogen auswählen (Data Management)

Lizenzstufe:BasicStandardAdvanced

Zusammenfassung

Wählt Features in einem Layer auf Grundlage einer räumlichen Beziehung zu Features in einem anderen Layer aus.

Die einzelnen Features des Eingabe-Feature-Layers werden anhand der Features im Auswahl-Features-Layer oder in der entsprechenden Feature-Class ausgewertet. Wenn die Voraussetzungen für die Beziehung erfüllt sind, wird das Eingabe-Feature selektiert.

Grafische Beispiele für Beziehungen

Verwendung

Syntax

SelectLayerByLocation_management (in_layer, {overlap_type}, {select_features}, {search_distance}, {selection_type})
ParameterErläuterungDatentyp
in_layer

Der Layer, der die Features enthält, die anhand der Auswahl-Features ausgewertet werden. Die Auswahl wird auf diesen Layer angewendet. Als Eingabe ist ein Layer aus dem ArcMap-Inhaltsverzeichnis oder ein in ArcCatalog oder in einem Skript mithilfe des Werkzeugs "Feature-Layer erstellen" erstellter Layer zulässig. Der Pfad einer Feature-Class auf der Festplatte ist keine gültige Eingabe.

Feature Layer; Mosaic Layer; Raster Catalog Layer
overlap_type
(optional)

Die räumliche Beziehung, die ausgewertet werden soll.

  • INTERSECTDie Features im Eingabe-Layer werden selektiert, wenn sie ein Auswahl-Feature schneiden. Dies ist die Standardeinstellung.
  • INTERSECT_3DDie Features im Eingabe-Layer werden selektiert, wenn sie sich mit einem Auswahl-Feature im dreidimensionalen Raum (x, y und z) überschneiden.
  • WITHIN_A_DISTANCEDie Features im Eingabe-Layer werden selektiert, wenn sie sich innerhalb einer bestimmten Entfernung zum Auswahl-Feature befinden. Geben Sie im Parameter "Suchentfernung" eine Entfernung an.
  • WITHIN_A_DISTANCE_3DDie Features im Eingabe-Layer werden selektiert, wenn sie sich in einem bestimmten Abstand zu einem Auswahl-Feature im dreidimensionalen Raum befinden. Geben Sie im Parameter "Suchentfernung" eine Entfernung an.
  • CONTAINSDie Features im Eingabe-Layer werden selektiert, wenn sie ein Auswahl-Feature vollständig enthalten. Alle Eingabe-Features müssen Polygone sein.
  • COMPLETELY_CONTAINSDie Features im Eingabe-Layer werden selektiert, wenn sie ein Auswahl-Feature enthalten. Alle Eingabe-Features müssen Polygone sein.
  • CONTAINS_CLEMENTINIDiese räumliche Beziehung liefert die gleichen Ergebnisse wie "COMPLETELY_CONTAINS", mit einer Ausnahme: Wenn sich das Auswahl-Feature vollständig auf der Grenze des Eingabe-Features befindet (kein Teil liegt inner- oder außerhalb), wird das Feature nicht selektiert. "CLEMENTINI" legt das Grenzpolygon als Linie zwischen innen und außen fest. Die Grenze einer Linie ist als ihr Endpunkt definiert, und die Grenze eines Punktes ist immer leer.
  • WITHINDie Features im Eingabe-Layer werden selektiert, wenn sie innerhalb eines Auswahl-Features liegen. Alle Auswahl-Features müssen Polygone sein.
  • COMPLETELY_WITHINDie Features im Eingabe-Layer werden selektiert, wenn sie vollständig innerhalb eines Auswahl-Features liegen bzw. in diesem enthalten sind. Alle Auswahl-Features müssen Polygone sein.
  • WITHIN_CLEMENTINIDie Ergebnisse stimmen mit denen für "WITHIN" überein, es sei denn, das gesamte Feature im Eingabe-Layer befindet sich auf der Grenze des Features im Auswahl-Layer. In diesem Fall wird das Feature nicht selektiert. "CLEMENTINI" legt das Grenzpolygon als Linie zwischen innen und außen fest. Die Grenze einer Linie ist als ihr Endpunkt definiert, und die Grenze eines Punktes ist immer leer.
  • ARE_IDENTICAL_TODie Features im Eingabe-Layer werden selektiert, wenn ihre geometrische Form mit der eines Auswahl-Features übereinstimmt.
  • BOUNDARY_TOUCHESDie Features im Eingabe-Layer werden selektiert, wenn ihre Grenze ein Auswahl-Feature berührt. Die Eingabe- und Auswahl-Features müssen über eine Linien- oder Polygonform verfügen. Darüber hinaus muss das Feature im Eingabe-Layer vollständig innerhalb oder außerhalb des Polygons des Auswahl-Layers liegen.
  • SHARE_A_LINE_SEGMENT_WITHDie Features im Eingabe-Layer werden selektiert, wenn sie mit einem Auswahl-Feature ein gemeinsames Liniensegment teilen. Die Eingabe- und Auswahl-Features müssen über eine Linien- oder Polygonform verfügen.
  • CROSSED_BY_THE_OUTLINE_OFDie Features im Eingabe-Layer werden selektiert, wenn sie vom Umriss eines Auswahl-Features geschnitten werden. Die Eingabe- und Auswahl-Features müssen über eine Linien- oder Polygonform verfügen. Wenn für den Eingabe- oder Auswahl-Layer Polygone verwendet werden, wird die Grenze (Linie) des Polygons verwendet. Linien, die einen Punkt schneiden, werden ausgewählt. Dies gilt nicht für Linien, die ein Liniensegment gemeinsam haben.
  • HAVE_THEIR_CENTER_INDie Features im Eingabe-Layer werden selektiert, wenn ihr Mittelpunkt innerhalb eines Auswahl-Features liegt. Der Mittelpunkt des Features wird wie folgt berechnet: Bei Polygonen und Multipoints wird der Schwerpunkt der Geometrie verwendet, bei Linien die geometrische Mitte.
  • CONTAINED_BYLiefert das gleiche Ergebnis wie "WITHIN". "CONTAINED_BY" unterstützt die Abwärtskompatibilität mit Modellen und Skripten, die älter als Version ArcGIS 9.3 sind.
String
select_features
(optional)

Die Features im Eingabe-Feature-Layer werden auf Grundlage ihrer Beziehung zu den Features des betreffenden Layers oder der betreffenden Feature-Class selektiert.

Feature Layer
search_distance
(optional)

Dieser Parameter ist nur gültig, wenn der Parameter für die Beziehung einen der folgenden Werte hat: WITHIN_A_DISTANCE, WITHIN_A_DISTANCE_3D, INTERSECT, INTERSECT_3D, HAVE_THEIR_CENTER_IN, CONTAINS oder WITHIN.

Linear unit
selection_type
(optional)

Legt fest, wie die Auswahl auf die Eingabe angewendet und mit einer vorhandenen Auswahl kombiniert wird. Derzeit ist es nicht möglich, eine vorhandene Auswahl zu löschen. Eine Auswahl kann im Werkzeug "Layer nach Attributen auswählen" mit der Option "CLEAR_SELECTION" aufgehoben werden.

  • NEW_SELECTIONDie getätigte Auswahl ersetzt eine bestehende Auswahl. Dies ist die Standardeinstellung.
  • ADD_TO_SELECTIONDie getätigte Auswahl wird der bestehenden Auswahl hinzugefügt (wenn eine vorhanden ist). Wenn keine Auswahl vorhanden ist, entspricht diese Option der Option "NEW_SELECTION".
  • REMOVE_FROM_SELECTIONDie getätigte Auswahl wird aus einer bestehenden Auswahl entfernt. Wenn keine Auswahl vorhanden ist, hat der Vorgang keine Auswirkungen.
  • SUBSET_SELECTIONDie getätigte Auswahl wird mit der bestehenden Auswahl kombiniert. Nur Datensätze, die in beiden Auswahlen vorhanden sind, werden ausgewählt.
  • SWITCH_SELECTIONDie Auswahl wird umgekehrt. Alle bisher ausgewählten Datensätze werden von der Auswahl entfernt und alle bisher nicht ausgewählten Datensätze werden der Auswahl hinzugefügt. Die Parameter "Auswahl-Features" sowie "Beziehung" werden bei Aktivierung dieser Option ignoriert.
String

Codebeispiel

SelectLayerByLocation - Beispiel 1 (Python-Fenster)

Das folgende Skript im Python-Fenster veranschaulicht, wie die Funktion "SelectLayerByLocation" im unmittelbaren Modus verwendet wird.

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")
SelectLayerByLocation - Beispiel 2 (eigenständiges Skript)

Das folgende eigenständige Skript zeigt, wie mit der Funktion "SelectLayerByLocation" Features auf Grundlage von Position und einer Attributabfrage in eine neue Feature-Class extrahiert werden.

# 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))

Umgebung

Verwandte Themen

Lizenzierungsinformationen

ArcGIS for Desktop Basic: Ja
ArcGIS for Desktop Standard: Ja
ArcGIS for Desktop Advanced: Ja
5/9/2014