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 ausgewählt.
Verwendung
Als Eingabe ist ein Feature-Layer zulässig; eine Feature-Class dagegen nicht.
Dieses Werkzeug eignet sich für Layer in ArcMap, ArcGlobe oder ArcScene sowie für Layer, die in Modellen oder Skripts unter Verwendung des Werkzeugs Feature-Layer erstellen erstellt wurden.
Das Koordinatensystem, in dem die räumliche Beziehung ausgewertet wird, kann sich auf das Ergebnis auswirken. Features, die sich in einem Koordinatensystem überschneiden, müssen sich nicht unbedingt in einem anderen überschneiden.
- Dieses Werkzeug wertet die räumliche Beziehung im Koordinatensystem der Datenquelle (die Feature-Class auf dem Datenträger) des Eingabe-Feature-Layers aus. Durch Festlegung der Umgebungseinstellung für das Ausgabe-Koordinatensystem können Sie die räumliche Beziehung zu einem anderen Koordinatensystem auswerten lassen.
Mit diesem Werkzeug können Sie Features auf Grundlage der räumlichen Beziehungen zu anderen Features im selben Layer auswählen. Beispiele finden Sie unter Layer lagebezogen auswählen.
Mit dem Werkzeug Anzahl erhalten kann die Anzahl der mit dem Werkzeug Layer lagebezogen auswählen ausgewählten Features bestimmt werden. Dies kann nützlich sein, um festzustellen, ob Features der gewünschten räumlichen Beziehung entsprechen, bevor im Rahmen eines automatisierten Workflows (d. h. Skript oder Modell) weitere Analysen erfolgen.
Weitere Informationen zu den dreidimensionalen räumlichen Beziehungen INTERSECT_3D und WITHIN_A_DISTANCE_3D finden Sie unter 3D-Beziehungen lagebezogen auswählen.
Syntax
arcpy.management.SelectLayerByLocation(in_layer, {overlap_type}, {select_features}, {search_distance}, {selection_type}, {invert_spatial_relationship})
Parameter | Erklärung | Datentyp |
in_layer | Der Layer, der die Features enthält, die anhand der select_features ausgewertet werden. Die Auswahl wird auf diesen Layer angewendet. 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.
| 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 overlap_type auf einen der folgenden Werte festgelegt ist: WITHIN_A_DISTANCE_GEODESIC, WITHIN_A_DISTANCE, WITHIN_A_DISTANCE_3D, INTERSECT, INTERSECT_3D, HAVE_THEIR_CENTER_IN, CONTAINS, oder WITHIN. Bei Verwendung der Option WITHIN_A_DISTANCE_GEODESIC muss eine lineare Einheit wie Kilometer oder Meilen verwendet werden. | 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.
| String |
invert_spatial_relationship (optional) | Nachdem die räumliche Beziehung ausgewertet wurde, wird mit dieser Option festgelegt, ob das Ergebnis unverändert oder umgekehrt verwendet werden soll. Diese Option kann beispielsweise verwendet werden, um schnell eine Liste von Features abzurufen, die sich nicht überschneiden oder sich in einer Entfernung von Features in einem anderen Dataset befinden.
| Boolean |
Abgeleitete Ausgabe
Name | Erklärung | Datentyp |
out_layer_or_view | Die aktualisierte Eingabe mit angewendeter Auswahl. | Feature-Layer; Raster-Katalog-Layer; Mosaik-Layer |
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')[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))
Umgebungen
Lizenzinformationen
- Basic: Ja
- Standard: Ja
- Advanced: Ja