Layer lagebezogen auswählen (Data Management)
Zusammenfassung
Wählt Features eines Layers 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-Feature-Layer oder in der 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.
-
Gültige Eingaben für dieses Werkzeug sind Layer im ArcMap-, ArcGlobe oder ArcScene-Inhaltsverzeichnis sowie in ArcCatalog oder mit einem Skript unter Nutzung des Werkzeugs Feature-Layer erstellen erstellte Layer.
-
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 notwendigerweise in einem anderen überschneiden. Räumliche Beziehungen werden im Koordinatensystem der Datenquelle des Eingabe-Feature-Layers ausgewertet. Durch Festlegung der Umgebung des Ausgabe-Koordinatensystems erfolgt die Auswertung der räumlichen Beziehung zu einem angegebenen Koordinatensystem. Mit der in ArcMap, ArcScene und ArcGlobe im Menü "Auswahl" verfügbaren Funktion "Lagebezogen auswählen" wird der Vorgang in dem Koordinatensystem ausgeführt, in dem die Anwendung angezeigt wird. Um das Koordinatensystem mit diesem Geoverarbeitungswerkzeug abzugleichen, legen Sie für das Ausgabe-Koordinatensystem "Gleich wie Anzeige" fest.
-
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 (also Skript oder Modell) weitere Analysen erfolgen..
-
Weitere Informationen zu dreidimensionalen räumlichen Beziehungen (INTERSECT_3D und WITHIN_A_DISTANCE_3D) finden Sie unter 3D-Beziehungen lagebezogen auswählen.
Syntax
Parameter | Erläuterung | Datentyp |
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.
| 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 ausgewählt. | 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 bei eventuellem Vorhandensein einer Auswahl mit dieser kombiniert wird. Derzeit ist es nicht möglich, eine hier vorhandene Auswahl zu löschen. Eine Auswahl kann im Werkzeug "Layer nach Attributen auswählen" mit der Option "CLEAR_SELECTION" aufgehoben werden.
| String |
Codebeispiel
Mit dem folgenden Skript im Python-Fenster wird veranschaulicht, wie Sie die Funktion "SelectLayerByLocation" im unmittelbaren Modus verwenden.
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")
Mit dem folgenden eigenständigen Skript wird gezeigt, wie Sie mit der Funktion "SelectLayerByLocation" Features auf Grundlage von Position und einer Attributabfrage in eine neue Feature-Class extrahieren.
# 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 criterias 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 criterias written to {0}'.format( matchcount, chihuahua_10000plus))