Zusammenfassung
Wählt Features auf Grundlage einer räumlichen Beziehung zu Features in einem anderen Dataset aus.
Die einzelnen Features im Parameter Eingabe-Features werden anhand der Features im Parameter Auswahl-Features ausgewertet. Wenn der festgelegte Parameter Beziehung erfüllt ist, wird das Eingabe-Feature ausgewählt.
Weitere Informationen zu "Lagebezogen auswählen" und Beispielabbildungen von Beziehungen
Verwendung
Wenn es sich bei der Eingabe um eine Feature-Class oder einen Dataset-Pfad handelt, wird von diesem Werkzeug mit dem Ergebnis des angewendeten Werkzeugs automatisch ein neuer Layer erstellt und zurückgegeben.
Das Koordinatensystem, in dem die räumliche Beziehung ausgewertet wird, kann sich auf das Ergebnis auswirken. Features, die sich in einem Koordinatensystem überschneiden, überschneiden sich in einem anderen möglicherweise nicht.
- Dieses Werkzeug wertet die räumliche Beziehung im Koordinatensystem der Datenquelle der Eingabe-Features aus. Legen Sie die Umgebungseinstellung Ausgabe-Koordinatensystem auf Aktuelle Karte [Layer] fest, um dasselbe Koordinatensystem wie die aktuelle Anzeige zu verwenden.
Mit diesem Werkzeug können Sie Features auf Grundlage der räumlichen Beziehungen zu anderen Features im selben Layer auswählen. Ein Beispiel finden Sie unter Auswählen anhand einer räumlichen Beziehung im Layer
Die Anzahl der ausgewählten Datensätze wird im Geoverarbeitungsverlauf unter Parameter > Anzahl aufgeführt. Zusätzlich kann die Anzahl der ausgewählten Datensätze mit dem Werkzeug Anzahl erhalten bestimmt werden. In Python kann auch über das Objekt Result des Werkzeugs auf die Anzahl der ausgewählten Datensätze zugegriffen werden.
Weitere Informationen zu den dreidimensionalen räumlichen Beziehungen Überschneiden 3D und In einer Entfernung (3D) (INTERSECT_3D und WITHIN_A_DISTANCE_3D in Python) finden Sie unter 3D-Beziehungen lagebezogen auswählen.
Die räumliche Beziehung Überschneiden (DBMS) (INTERSECT_DBMS in Python) bietet bei Verwendung von Enterprise-Geodatabase-Daten möglicherweise eine bessere Performance als die Beziehung Überschneiden (Intersect) (INTERSECT in Python). Sie wird jedoch nur unter bestimmten Umständen unterstützt. Wenn alle Bedingungen erfüllt sind, wird die räumliche Operation im Enterprise-Geodatabase-Datenbankmanagementsystem (DBMS) und nicht auf dem Client durchgeführt. Berücksichtigen Sie bei Verwendung dieser räumlichen Beziehung Folgendes:
- Zum Ausführen der Operation innerhalb des DBMS müssen die folgenden Voraussetzungen erfüllt sein:
- Die Parameterwerte für Eingabe-Features und Auswahl-Features stammen aus demselben Enterprise-Geodatabase-Workspace und müssen denselben Raumbezug sowie Geometriespeichertyp aufweisen.
- Das zugrunde liegende DBMS ist IBM Db2, Oracle, PostgreSQL, SAP HANA oder Microsoft SQL Server.
- Die unterstützten Geometriespeichertypen für diese Option sind ST_GEOMETRY (Db2, Oracle, PostgreSQL und SAP HANA), PostGIS (PostgreSQL), SDO_GEOMETRY (Oracle) und MSSQLGeometry und MSSQLGeography (SQL Server). Unter Geodatabase-Verwaltung finden Sie Informationen zum Installieren und Konfigurieren Ihres DBMS sowie zum Konfigurieren des Geometriespeichertyps Ihrer Wahl, damit Sie ihn verwenden können.
- Wenn Sie Oracle ST_GEOMETRY verwenden, müssen Sie Oracle extproc für den Zugriff auf ST_Geometry konfigurieren. Weitere Informationen finden Sie unter Konfigurieren von "extproc" für den Zugriff auf "ST_Geometry" in Oracle.
- Der Parameter Suchentfernung ist nicht festgelegt.
- Der Parameterwert für Auswahltyp ist Neue Auswahl.
- Die vor der Werkzeugausführung vorgenommene Auswahl wurde mit einer Layer-Definitionsabfrage erstellt, nicht mit einem Auswahlsatz.
- Die räumliche Operation wird ohne Anwendung einer XY-Toleranz bei der Verarbeitung durchgeführt. Die Verwendung einer XY-Toleranz wird im DBMS nicht unterstützt. Dies kann dazu führen, dass im Vergleich zur Durchführung der Analyse auf dem Client unter Anwendung einer XY-Toleranz geringfügig andere Auswahlen zurückgegeben werden. Weitere Informationen dazu, wie bei clientseitigen Operationen eine XY-Toleranz angewendet wird, finden Sie unter Grundlagen zu Feature-Classes.
- Enterprise-Geodatabase in Db2, Oracle, PostgreSQL, SAP HANA und SQL Server werden unterstützt. Sie verfügen jeweils über einen eigenen Geometriespeichertyp, der durch diese Beziehung unterstützt wird. Nähere Informationen zum jeweiligen Geometriespeichertyp finden Sie in der Dokumentation des Anbieters Ihres DBMS. Beim Durchführen räumlicher Operationen kann es durch Speicherbeschränkungen zu Beeinträchtigungen der Performance und Skalierbarkeit kommen.
- Zum Ausführen der Operation innerhalb des DBMS müssen die folgenden Voraussetzungen erfüllt sein:
Syntax
arcpy.management.SelectLayerByLocation(in_layer, {overlap_type}, {select_features}, {search_distance}, {selection_type}, {invert_spatial_relationship})
Parameter | Erklärung | Datentyp |
in_layer [in_layer,...] | Die Features, die anhand der Werte des Parameters select_features ausgewertet werden. Die Auswahl wird auf diese Features angewendet. | Feature Layer; Raster Layer; Mosaic Layer |
overlap_type (optional) | Gibt die räumliche Beziehung an, die ausgewertet werden soll.
| String |
select_features (optional) | Die Features im Parameter Eingabe-Features werden auf Grundlage ihrer Beziehung zu den Features des betreffenden Layers oder der betreffenden Feature-Class ausgewählt. | Feature Layer |
search_distance (optional) | Die angegebene Entfernung, in der gesucht wird. Dieser Parameter ist nur gültig, wenn der Parameter overlap_type auf WITHIN_A_DISTANCE, WITHIN_A_DISTANCE_GEODESIC, WITHIN_A_DISTANCE_3D, INTERSECT, INTERSECT_3D, HAVE_THEIR_CENTER_IN oder CONTAINS festgelegt wurde. Wenn die Option WITHIN_A_DISTANCE_GEODESIC ausgewählt ist, verwenden Sie eine lineare Einheit wie Kilometer oder Meilen. | Linear Unit |
selection_type (optional) | Gibt an, wie die Auswahl auf die Eingabe angewendet und mit einer vorhandenen Auswahl kombiniert wird. Dieses Werkzeug bietet keine Option, eine vorhandene Auswahl aufzuheben. Verwenden Sie im Werkzeug Layer nach Attributen auswählen die Option CLEAR_SELECTION.
| String |
invert_spatial_relationship (optional) | Gibt an, ob das Ergebnis der Auswertung der räumlichen Beziehung verwendet wird oder das gegenteilige Ergebnis. Dieser Parameter kann beispielsweise verwendet werden, um eine Liste von Features abzurufen, die sich nicht überschneiden oder nicht innerhalb einer angegebenen Entfernung von Features in einem anderen Dataset liegen.
| Boolean |
Abgeleitete Ausgabe
Name | Erklärung | Datentyp |
out_layer_or_view | Die aktualisierten Eingaben mit angewendeter Auswahl. | Feature-Layer; Mosaik-Layer |
out_layers_or_views | Die Namen der aktualisierten Eingaben. | Feature-Layer; Mosaik-Layer |
count | Die Anzahl der ausgewählten Datensätze. | Long |
Codebeispiel
Das folgende Skript für das Python-Fenster veranschaulicht, wie die Funktion SelectLayerByLocation im unmittelbaren Modus verwendet wird.
import arcpy
arcpy.SelectLayerByLocation_management("parcel_lyr", "have_their_center_in",
"c:/kamsack.gdb/city_limits")
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.
# 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))
Das folgende eigenständige Skript zeigt eine Vielzahl von Verwendungsmöglichkeiten für die Optionen overlap_type und WITHIN_A_DISTANCE des Parameters WITHIN_A_DISTANCE_GEODESIC mit dem Parameter 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')
Umgebungen
Lizenzinformationen
- Basic: Ja
- Standard: Ja
- Advanced: Ja