Near (Analysis)

Zusammenfassung

Berechnet die Entfernung und weitere Nachbarschaftsinformationen zwischen den Eingabe-Features und dem nächstgelegenen Feature in einem anderen Layer oder einer anderen Feature-Class.

Weitere Informationen zum Berechnen der Nähe mit Geoverarbeitungswerkzeugen

Abbildung

Abbildung des Werkzeugs "Near"
Das Suchen von Near-Features nach Geometrietyp wird gezeigt.

Verwendung

  • Die folgenden Felder werden zur Eingabe hinzugefügt. Wenn die Felder bereits vorhanden sind, werden die Feldwerte aktualisiert. Diese Feldnamen können mit dem Parameter Feldnamen konfiguriert werden.

    • NEAR_FID: Die ObjectID des nächstgelegenen Features. Wenn kein Near-Feature gefunden wird, ist der Wert -1.
    • NEAR_DIST: Die Entfernung vom Eingabe-Feature zum Near-Feature. Der Wert wird in der linearen Einheit des Koordinatensystems des Eingabe-Features oder in Metern angegeben, wenn für den Parameter Methode der Wert Geodätisch festgelegt wurde und die Eingabe sich in einem geographischen Koordinatensystem befindet. Wenn kein Near-Feature gefunden wird, ist der Wert -1.
    • NEAR_FC: Der Pfad der Quell-Feature-Class, die das nächstgelegene gefundene Feature enthält. Der Layer-Name wird verwendet, wenn Layer als Eingabe verwendet werden, und der Katalogpfad zur Feature-Class wird verwendet, wenn Sie Pfade als Eingabe verwenden. Dieses Feld wird nur dann der Ausgabetabelle hinzugefügt, wenn mehrere Near-Features angegeben wurden. Wenn kein Near-Feature gefunden wird, ist der Wert eine leere Zeichenfolge oder Null.

    Die folgenden Felder werden der Eingabe hinzugefügt, wenn der Parameter Position aktiviert ist. Die Feldwerte werden aktualisiert, wenn die Felder bereits vorhanden sind. Die Einheiten der Feldwerte hängen von dem Wert des Parameters Methode ab. Wenn der Parameter Methode auf Planar festgelegt ist, liegt der Feldwert in der linearen Einheit des Koordinatensystems des Eingabe-Features vor. Bei Festlegung auf Geodätisch wird er in dem geographischen Koordinatensystem angegeben, das mit dem Koordinatensystem des Eingabe-Features verknüpft ist.

    • NEAR_X: Die X-Koordinate der Position im Near-Feature, das dem Eingabe-Feature am nächsten liegt. Wenn kein Near-Feature gefunden wird, ist der Wert -1.
    • NEAR_Y: Die Y-Koordinate der Position im Near-Feature, das dem Eingabe-Feature am nächsten liegt. Wenn kein Near-Feature gefunden wird, ist der Wert -1.

    Das folgende Feld wird den Eingabe-Features hinzugefügt, wenn der Parameter Winkel aktiviert ist. Der Feldwert wird aktualisiert, wenn das Feld bereits existiert.

    • NEAR_ANGLEDer Winkel der Linie an der FROM_X- und FROM_Y-Position, die die Eingabe-Features mit dem Near-Feature verbindet. Wenn kein Near-Feature gefunden wird oder das Near-Feature sich mit dem Eingabe-Feature überschneidet, ist der Wert 0.

  • Der Wert für NEAR_FID und NEAR_DIST ist -1, wenn kein Feature innerhalb eines Suchradius gefunden wird.

  • Die Eingabe- und Near-Features können Punkt, Multipoint, Linie oder Polygon sein.

  • Der Parameterwert Near-Features kann eine oder mehrere Feature-Classes mit unterschiedlichen Shape-Typen (Punkt, Multipoint, Linie oder Polygon) umfassen.

  • Eine Feature-Class oder ein Layer kann sowohl als Eingabe-Feature als auch als Near-Feature verwendet werden. In diesem Fall wird das auszuwertende Eingabe-Feature aus den Near-Feature-Kandidaten ausgeschlossen, um zu vermeiden, dass die Features jeweils das nächstgelegene Feature für sich selbst darstellen.

  • Eingabe-Features können ein Layer sein, bei dem Sie eine Auswahl getroffen haben. Die ausgewählten Features werden während der Werkzeuganwendung verwendet und aktualisiert. Bei den übrigen Features werden die Werte der neu erstellten Felder (z. B. NEAR_FID und NEAR_DIST) auf -1 gesetzt.

  • Wenn mehr als ein Near-Feature die gleiche kürzeste Entfernung vom Eingabe-Feature aufweist, wird eines davon nach dem Zufallsprinzip als nächstgelegenes Feature ausgewählt.

  • Bei Verwendung der Option Planar für den Parameter Methode sollten Sie für die Eingabe-Features eine Projektion verwenden, die für den Entfernungsmesswert geeignet ist, z. B. eine äquidistante Projektion.

    Weitere Informationen zu Koordinatensystemen und Projektionen

  • Um die Positionen NEAR_X und NEAR_Y zu visualisieren, kann die Ausgabetabelle als Eingabe für das Werkzeug XY-Ereignis-Layer erstellen oder XY in Linie verwendet werden.

  • Sie können im Parameter Entfernungseinheit eine Maßeinheit für das Feld NEAR_DIST festlegen, beispielsweise Meter, Kilometer oder Meilen.

Parameter

BeschriftungErläuterungDatentyp
Eingabe-Features

Die Eingabe-Features können vom Typ "Punkt", "Polylinie", "Polygon" oder "Multipoint" sein.

Feature Layer
Near-Features

Ein oder mehrere Feature-Layer oder Feature-Classes mit Near-Feature-Kandidaten. Die Near-Features können vom Typ "Punkt", "Polylinie", "Polygon" oder "Multipoint" sein. Wenn mehrere Layer oder Feature-Classes angegeben werden, wird der Eingabetabelle das Feld NEAR_FC hinzugefügt. Darin werden die Pfade der Quell-Feature-Class mit dem nächstgelegenen Feature gespeichert. Eine Feature-Class oder ein Layer kann sowohl als Eingabe-Feature als auch als Near-Feature verwendet werden.

Feature Layer
Suchradius
(optional)

Der zum Suchen nach Near-Features verwendete Radius. Wenn kein Wert angegeben wird, werden alle Near-Features berücksichtigt. Wenn eine Entfernung eingegeben, jedoch keine Einheit oder "Unbekannt" angegeben wurde, werden die Einheiten des Koordinatensystems der Eingabe-Features verwendet. Bei Verwendung der Option Geodätisch für den Parameter Methode ist eine lineare Einheit wie Kilometer oder Meilen zu verwenden.

Linear Unit
Position
(optional)

Gibt an, ob X- und Y-Koordinaten der nächstgelegenen Position des nächsten Near-Features in die Felder NEAR_X und NEAR_Y geschrieben werden.

  • Deaktiviert: Die Postionen werden nicht in die Felder geschrieben. Dies ist die Standardeinstellung.
  • Aktiviert: Die Postionen werden in die Felder geschrieben.
Boolean
Winkel
(optional)

Gibt an, ob der nächstgelegene Winkel berechnet und in das Feld NEAR_ANGLE der Ausgabetabelle geschrieben wird. Der nächstgelegene Winkel misst die Richtung der Linie, die ein Eingabe-Feature mit dem diesem zunächst liegenden Feature an der nächstgelegenen Position verbindet. Bei Verwendung der Methode Planar im Parameter Methode liegt der Winkel im Bereich -180° bis 180°, wobei 0° Osten, 90° Norden, 180° (bzw. -180°) Westen und -90° Süden bedeutet. Bei Verwendung der Methode Geodätisch liegt der Winkel im Bereich -180° bis 180°, wobei 0° Norden, 90° Osten, 180° (oder -180°) Süden und -90° Westen bedeutet.

  • Deaktiviert: Der nächstgelegene Winkel wird nicht berechnet und das Feld NEAR_ANGLE wird nicht hinzugefügt. Dies ist die Standardeinstellung.
  • Aktiviert: Der nächstgelegene Winkel wird berechnet und das Feld NEAR_ANGLE wird hinzugefügt.
Boolean
Methode
(optional)

Gibt an, ob die kürzeste Route auf einem Sphäroiden (geodätisch) oder die Entfernung auf einer Ebene (planar) verwendet werden soll. Es wird dringend empfohlen, für Daten, die in einem nicht für Entfernungsmesswerte geeigneten Koordinatensystem (z. B. Web Mercator und geographische Koordinatensysteme) gespeichert sind, sowie für Datasets, die einen großen geographischen Bereich umfassen, die Methode Geodätisch zu verwenden.

  • PlanarZwischen Features wird die planare Entfernung verwendet. Dies ist die Standardeinstellung.
  • GeodätischZwischen den Features wird die geodätische Entfernung verwendet. Bei dieser Methode wird die Krümmung des Sphäroiden berücksichtigt und die Daten in der Nähe der internationalen Datumsgrenze und der Pole werden richtig verarbeitet.
String
Feldnamen
(optional)

Die Namen der Attributfelder an, die bei der Verarbeitung hinzugefügt werden.

Wenn dieser Parameter nicht verwendet wird oder Felder hinzugefügt werden, die von diesem Parameter ausgeschlossen sind, werden die standardmäßigen Feldnamen verwendet.

Die Felder NEAR_FID und NEAR_DIST werden standardmäßig hinzugefügt. Die Felder NEAR_X und NEAR_Y werden hinzugefügt, wenn der Parameter Position aktiviert ist. Das Feld NEAR_ANGLE wird hinzugefügt, wenn der Parameter Winkel aktiviert ist, und das Feld NEAR_FC wird hinzugefügt, wenn mehrere Eingaben verwendet werden.

Value Table
Entfernungseinheit
(optional)

Gibt die Maßeinheit für das Feld NEAR_DIST an. Wenn keine Maßeinheit angegeben ist, werden die Werte im Feld NEAR_DIST in der linearen Einheit des Koordinatensystems des Eingabe-Features angegeben. Wenn sich die Eingabe in einem geographischen Koordinatensystem befindet und die Methode "Geodätisch" verwendet wird, sind die Einheiten des Feldes NEAR_DIST Meter.

  • KilometerDie Einheit ist Kilometer.
  • MeterDie Einheit ist Meter.
  • Seemeilen (International)Die Einheit ist internationale Seemeilen.
  • Meilen (Britisch)Die Einheit ist britische Meilen.
  • Yards (International)Die Einheit ist internationale Yards.
  • Fuß (International)Die Einheit ist internationaler Fuß.
  • US Survey SeemeilenDie Einheit ist US Survey Seemeilen.
  • US Survey MilesDie Einheit ist US Survey Meilen.
  • US Survey YardsDie Einheit ist US Survey Yards.
  • US Survey FeetDie Einheit ist US Survey Feet.
String

Abgeleitete Ausgabe

BeschriftungErläuterungDatentyp
Aktualisierte Eingabe-Features

Die aktualisierten Eingabe-Features.

Feature Layer

arcpy.analysis.Near(in_features, near_features, {search_radius}, {location}, {angle}, {method}, {field_names}, {distance_unit})
NameErläuterungDatentyp
in_features

Die Eingabe-Features können vom Typ "Punkt", "Polylinie", "Polygon" oder "Multipoint" sein.

Feature Layer
near_features
[near_features,...]

Ein oder mehrere Feature-Layer oder Feature-Classes mit Near-Feature-Kandidaten. Die Near-Features können vom Typ "Punkt", "Polylinie", "Polygon" oder "Multipoint" sein. Wenn mehrere Layer oder Feature-Classes angegeben werden, wird der Eingabetabelle das Feld NEAR_FC hinzugefügt. Darin werden die Pfade der Quell-Feature-Class mit dem nächstgelegenen Feature gespeichert. Eine Feature-Class oder ein Layer kann sowohl als Eingabe-Feature als auch als Near-Feature verwendet werden.

Feature Layer
search_radius
(optional)

Der zum Suchen nach Near-Features verwendete Radius. Wenn kein Wert angegeben wird, werden alle Near-Features berücksichtigt. Wenn eine Entfernung eingegeben, jedoch keine Einheit oder "Unbekannt" angegeben wurde, werden die Einheiten des Koordinatensystems der Eingabe-Features verwendet. Bei Verwendung der Option GEODESIC für den Parameter method ist eine lineare Einheit wie Kilometer oder Meilen zu verwenden.

Linear Unit
location
(optional)

Gibt an, ob X- und Y-Koordinaten der nächstgelegenen Position des nächsten Near-Features in die Felder NEAR_X und NEAR_Y geschrieben werden.

  • NO_LOCATIONDie Positionsinformationen werden nicht in die Felder geschrieben. Dies ist die Standardeinstellung.
  • LOCATIONDie Positionsinformationen werden in die Felder geschrieben.
Boolean
angle
(optional)

Gibt an, ob der nächstgelegene Winkel berechnet und in das Feld NEAR_ANGLE der Ausgabetabelle geschrieben wird. Der nächstgelegene Winkel misst die Richtung der Linie, die ein Eingabe-Feature mit dem diesem zunächst liegenden Feature an der nächstgelegenen Position verbindet. Bei Verwendung der Methode PLANAR für den Parameter method liegt der Winkel im Bereich -180° bis 180°, wobei 0° Osten, 90° Norden, 180° (oder -180°) Westen und -90° Süden bedeutet. Bei Verwendung der Methode GEODESIC liegt der Winkel im Bereich -180° bis 180°, wobei 0° Norden, 90° Osten, 180° (oder -180°) Süden und -90° Westen bedeutet.

  • NO_ANGLEDer nächstgelegene Winkel wird nicht berechnet oder geschrieben. Dies ist die Standardeinstellung.
  • ANGLEDer nächstgelegene Winkel wird berechnet und in das Feld NEAR_ANGLE geschrieben.
Boolean
method
(optional)

Gibt an, ob die kürzeste Route auf einem Sphäroiden (geodätisch) oder die Entfernung auf einer Ebene (planar) verwendet werden soll. Es wird dringend empfohlen, für Daten, die in einem nicht für Entfernungsmesswerte geeigneten Koordinatensystem (z. B. Web Mercator und geographische Koordinatensysteme) gespeichert sind, sowie für Datasets, die einen großen geographischen Bereich umfassen, die Methode GEODESIC zu verwenden.

  • PLANARZwischen Features wird die planare Entfernung verwendet. Dies ist die Standardeinstellung.
  • GEODESICZwischen den Features wird die geodätische Entfernung verwendet. Bei dieser Methode wird die Krümmung des Sphäroiden berücksichtigt und die Daten in der Nähe der internationalen Datumsgrenze und der Pole werden richtig verarbeitet.
String
field_names
[[property, fieldname],...]
(optional)

Die Namen der Attributfelder an, die bei der Verarbeitung hinzugefügt werden.

Wenn dieser Parameter nicht verwendet wird oder Felder hinzugefügt werden, die von diesem Parameter ausgeschlossen sind, werden die standardmäßigen Feldnamen verwendet.

Die Felder NEAR_FID und NEAR_DIST werden standardmäßig hinzugefügt. Die Felder NEAR_X und NEAR_Y werden hinzugefügt, wenn der Parameter location auf LOCATION festgelegt ist. Das Feld NEAR_ANGLE wird hinzugefügt, wenn der Parameter angle auf ANGLE festgelegt ist, und das Feld NEAR_FC wird hinzugefügt, wenn mehrere Eingaben verwendet werden.

Value Table
distance_unit
(optional)

Gibt die Maßeinheit für das Feld NEAR_DIST an. Wenn keine Maßeinheit angegeben ist, werden die Werte im Feld NEAR_DIST in der linearen Einheit des Koordinatensystems des Eingabe-Features angegeben. Wenn sich die Eingabe in einem geographischen Koordinatensystem befindet und die Methode "Geodätisch" verwendet wird, sind die Einheiten des Feldes NEAR_DIST Meter.

  • KilometersDie Einheit ist Kilometer.
  • MetersDie Einheit ist Meter.
  • NauticalMilesIntDie Einheit ist internationale Seemeilen.
  • MilesIntDie Einheit ist britische Meilen.
  • YardsIntDie Einheit ist internationale Yards.
  • FeetIntDie Einheit ist internationaler Fuß.
  • NauticalMilesDie Einheit ist US Survey Seemeilen.
  • MilesDie Einheit ist US Survey Meilen.
  • YardsDie Einheit ist US Survey Yards.
  • FeetDie Einheit ist US Survey Feet.
String

Abgeleitete Ausgabe

NameErläuterungDatentyp
out_feature_class

Die aktualisierten Eingabe-Features.

Feature Layer

Codebeispiel

Near: Beispiel 1 (Python-Fenster)

Das folgende interaktive Skript für das Python-Fenster veranschaulicht, wie die Funktion Near im unmittelbaren Modus verwendet wird.

import arcpy
arcpy.env.workspace = "C:/data/city.gdb" 

# Find the nearest road from each house
arcpy.analysis.Near('houses', 'roads')
Near: Beispiel 2 (eigenständiges Skript)

Das folgende Python-Skript veranschaulicht, wie die Funktion Near in einem eigenständigen Skript verwendet wird.

# Name: Near.py
# Description: Finds nearest features from input feature class to near feature class.

import arcpy

# Set workspace environment
arcpy.env.workspace = "C:/data/city.gdb"

try:
    # set local variables
    in_features = "houses"
    near_features = "parks"
    
    # find features only within search radius
    search_radius = "5000 Meters"
    
    # find location nearest features
    location = "LOCATION"
    
    # avoid getting angle of neares features
    angle = "NO_ANGLE"
    
    # execute the function
    arcpy.analysis.Near(in_features, near_features, search_radius, location, angle)
    
    # get geoprocessing messages
    print(arcpy.GetMessages())

except arcpy.ExecuteError:
    print(arcpy.GetMessages(2))
    
except Exception as err:
    print(err.args[0])
Near: Beispiel 3 (eigenständiges Skript)

Das folgende Python-Skript veranschaulicht, wie der nächstgelegene Winkel in Azimut konvertiert wird.

# Name: near_angle_to_azimuth.py

import arcpy

# Near tool does not calculate angle in azimuths
# This script, using the output of the tool, converts the angles
# to azimuth angles.

in_table = r"C:/data/city.gdb/near_table"
    
angles = arcpy.da.SearchCursor(in_table, ["NEAR_ANGLE"])

azimuth_angles = []

with angles as rows:
    for row in rows:
        angle = row[0]
        if angle <= 180 and angle > 90:
            azimuth_angles.append(360.0 - (angle - 90))
        else:
            azimuth_angles.append(abs(angle - 90))

# Use these azimuth angles as necessary.
Near: Beispiel 4 (eigenständiges Skript)

Im folgenden Python-Skript wird die Nachbearbeitung mit der abgeleiteten Ausgabe der FunktionNear gezeigt. Das Skript ermittelt für jedes Near-Feature das nächstgelegene Eingabe-Feature.

# Name: features_closest_to_input.py

"""
    This script finds, for each input feature, a list of near feature it is closest to.
    If near features 6, 7, 10 are closest to input feature 3 then the 
    resulting dictionary will have a list [6, 7, 10] as value for key 3
"""

import os
import arcpy

in_fc = r"C:\data\cities.gdb\cities_many"

# create a dictionary to hold the list of near ids for each input id
nearest_dict = dict()

with arcpy.da.SearchCursor(in_fc, ["OID@", "NEAR_FID"]) as rows:
    for row in rows:
        nearest_id = row[0]  # get OID value for that row
        input_id = row[1]    # get NEAR_FID value 
        
        if input_id in nearest_dict:
            # if a dict key already exists, append near id to value list for that key
            nearest_dict[input_id].append(nearest_id)
        else:
            # if the key does not exist then create a new list with near id
            # and add it to the dictionary
            nearest_dict[input_id] = [nearest_id]
            
print(nearest_dict)

# output will look like:
# {1: [13, 28], 2: [2, 9, 14, 20, 22], 3: [11, 12, 24, 25]}

Lizenzinformationen

  • Basic: Ja
  • Standard: Ja
  • Advanced: Ja

Verwandte Themen