Near 3D (3D Analyst)
Zusammenfassung
Berechnet die dreidimensionale Entfernung von jedem Eingabe-Feature zum nächstgelegenen Feature, das sich in einer oder mehreren nahen Feature-Classes befindet.
Verwendung
Alle Geometrietypen werden unterstützt und alle Eingabe-Feature-Classes müssen Z-Werte haben.
Die Near-Features können eine oder mehrere Feature-Classes mit unterschiedlichen Shape-Typen umfassen.
Die Near-Features können aus demselben Dataset wie die Eingabe-Features stammen. Wenn das nächstgelegene Near-Feature eines Eingabe-Features das Feature selbst ist (Entfernung ist 0), wird dieses Feature ignoriert, und es wird nach dem nächsten nächstgelegenen Feature gesucht.
Der grundlegende Unterschied zwischen den Werkzeugen Near und Near 3D liegt darin, dass das Werkzeug Near 3D mit 3D-Features statt mit 2D-Features verwendet wird. Zudem sind die vom Werkzeug "Near 3D" verglichenen Entfernungen eher 3D-Entfernungen (Schrägstrecken) als horizontale Entfernungen. Außerdem können einige zusätzliche Felder ausgegeben werden.
Die Winkelfelder werden nur erstellt und enthalten nur Werte, wenn die Option Winkel aktiviert ist.
Die folgenden Felder werden an die Attributtabelle des Eingabe-Features angefügt:
- NEAR_FID – Die FID des nächstgelegenen Near-Features.
- NEAR_DIST – Die 2D-Entfernung (horizontale Entfernung) zwischen dem nächstgelegenen Punkt in einem Eingabe-Feature und dem nächstgelegenen Punkt im nächstgelegenen Near-Feature.
- NEAR_DIST3 – Die 3D-Entfernung (Schrägstrecke) zwischen dem nächstgelegenen Punkt in einem Eingabe-Feature und dem nächstgelegenen Punkt im nächstgelegenen Near-Feature.
- NEAR_DELTX – Die Entfernung auf der X-Achse vom nächstgelegenen Punkt im Eingabe-Feature zum nächstgelegenen Punkt im nächstgelegenen Near-Feature.
- NEAR_DELTY – Die Entfernung auf der Y-Achse vom nächstgelegenen Punkt im Eingabe-Feature zum nächstgelegenen Punkt im nächstgelegenen Near-Feature.
- NEAR_DELTZ – Die Entfernung auf der Z-Achse vom nächstgelegenen Punkt im Eingabe-Feature zum nächstgelegenen Punkt im nächstgelegenen Near-Feature.
- NEAR_FROMX – Die X-Koordinate des nächstgelegenen Punktes im Eingabe-Feature, das dem nächstgelegenen Punkt im nächstgelegenen Near-Feature am nächsten liegt.
- NEAR_FROMY – Die Y-Koordinate des nächstgelegenen Punktes im Eingabe-Feature, das dem nächstgelegenen Punkt im nächstgelegenen Near-Feature am nächsten liegt.
- NEAR_FROMZ – Die Z-Koordinate des nächstgelegenen Punktes im Eingabe-Feature, das dem nächstgelegenen Punkt im nächstgelegenen Near-Feature am nächsten liegt.
- NEAR_X – Die X-Koordinate des nächstgelegenen Punktes im nächstgelegenen Near-Feature oder der nächstgelegene imaginäre Punkt im nächstgelegenen Near-Feature.
- NEAR_Y – Die Y-Koordinate des nächstgelegenen Punktes im nächstgelegenen Near-Feature oder der nächstgelegene imaginäre Punkt im nächstgelegenen Near-Feature.
- NEAR_Z – Die Z-Koordinate des nächstgelegenen Punktes im nächstgelegenen Near-Feature oder der nächstgelegene imaginäre Punkt im nächstgelegenen Near-Feature.
- NEAR_ANG_H – Der horizontale geografische Winkel (Nordazimut) in Grad zwischen dem nächstgelegenen Punkt im Eingabe-Feature und dem nächstgelegenen Punkt im nächstgelegenen Near-Feature. Das ist das gleiche System, das vom älteren Werkzeug "Near" verwendet wird; es handelt sich nicht um einen Azimut oder eine Peilung. Osten ist 0, Nordosten ist 45, Norden ist 90, Süden ist -90 und Westen ist 180 oder -180. Bei diesem Wert wird die Höhe nicht berücksichtigt.
- NEAR_ANG_V – Der vertikale Winkel (alias der Höhenwinkel oder Winkel der Höhe) in Grad, vom nächsten Punkt auf dem Eingabe-Feature zum nächsten Punkt im nächsten Near-Feature. Horizontal ist 0, gerade nach oben ist 90, gerade nach unten ist -90, 10° über der Horizontalen nach oben ist 10.
- NEAR_FC – Der Pfad der Feature-Class, der das nächste Near-Feature enthält. Dieses Feld wird nur hinzugefügt, wenn mehrere Near-Features angegeben wurden.
Wenn die obigen Felder bereits vorhanden sind, werden ihre Werte aktualisiert.
Der Wert für NEAR_FID, NEAR_DIST und NEAR_DIST3 ist -1, falls innerhalb des angegebenen Suchradius keine Entsprechung gefunden wird.
Die Felder NEAR_DELTX, NEAR_DELTY und NEAR_DELTZ werden nur erstellt und enthalten nur Werte, wenn die Option Delta aktiviert ist.
Die Felder NEAR_FROMX, NEAR_FROMY, NEAR_FROMZ, NEAR_X, NEAR_Y und NEAR_Z werden nur erstellt und enthalten nur Werte, wenn das Kontrollkästchen Position aktiviert ist.
This tool is a 3D set operator that provides analytical functions on 3D features. See Working with 3D set operators for more information on what set operators are and how to use them.
Syntax
Parameter | Erläuterung | Datentyp |
in_features |
Die Eingabe-Feature-Class, deren Features die Informationen zum nächsten Feature zugeordnet werden. | Feature Layer |
near_features |
Die Features, deren Nähe zu den Eingabe-Features berechnet wird. Falls mehrere Feature-Classes angegeben sind, wird der Eingabe-Feature-Class ein Zusatzfeld mit dem Namen NEAR_FC hinzugefügt, in dem angegeben wird, welche Near-Feature-Class das nächstgelegene Feature enthält. | Feature Layer |
search_radius (optional) |
Die maximale Entfernung zwischen den Eingabe-Features und den Near-Features, für die die Entfernung und die FID ermittelt werden. Falls kein Suchradius angegeben wurde, werden alle Near-Features verwendet. | Linear Unit |
location (optional) |
Bestimmt, ob jedem Eingabe-Feature (zwei Sätze von XYZ-Werten) sechs Koordinatenfelder hinzugefügt werden. Bei den Werten handelt es sich um die drei Koordinaten des Eingabe-Features (NEAR_FROMX, NEAR_FROMY, NEAR_FROMZ) und die drei Koordinaten des nächstgelegenen Features (NEAR_X, NEAR_Y, NEAR_Z). Die Felder NEAR_FID und NEAR_DIST werden immer hinzugefügt – unabhängig von der Option "Position".
| Boolean |
angle (optional) |
Legt fest, ob die Winkel zwischen dem Eingabe-Feature und dem nächstgelegenen Near-Feature berechnet und in den Feldern NEAR_ANG_H und NEAR_ANG_V gespeichert werden. Die Werte für die beiden Winkel werden in Grad angegeben, wobei ein Grad 1/360 eines Kreises darstellt. Die Bruchteile eines Grades werden als Dezimalwerte angegeben. Horizontale Winkel werden von 180° bis -180° gemessen, wobei 0° Osten, 90° Norden, 180° (-180°) Westen und -90° Süden ist. Vertikale Winkel sind 0° (waagerecht), 90° (senkrecht nach oben) und -90° (senkrecht nach unten).
| Boolean |
delta (optional) |
Legt fest, ob die Entfernungen an den Primärachsen zwischen dem Eingabe-Feature und dem nächstgelegenen Near-Feature berechnet und in den Feldern NEAR_DELTX, NEAR_DELTY und NEAR_DELTZ gespeichert werden.
| Boolean |
Codebeispiel
The following sample demonstrates the use of this tool in the Python window:
import arcpy from arcpy import env arcpy.CheckOutExtension("3D") env.workspace = "C:/data" arcpy.Near3D_3d("points_3D.shp", "buildings_multipatch.shp", "30", "LOCATION", "ANGLE", "DELTA")
Im folgenden Beispiel wird veranschaulicht, wie dieses Werkzeug in einem eigenständigen Python-Skript verwendet wird:
'''**************************************************************************** Name: Near 3D Example Description: This script demonstrates how to use the Near 3D tool to identify the nearest z-aware features that satisfy the results from a queried feature. ****************************************************************************''' # Import system modules import arcpy import exceptions, sys, traceback from arcpy import env try: # Obtain a license for the ArcGIS 3D Analyst extension arcpy.CheckOutExtension('3D') # Set environment settings env.workspace = 'C:/data' # Set Local Variables inFC = 'homes.shp' nearFC = 'radiotowers.shp' # See the 'Building an SQL expression' topic for more information # Query the field 'MATERIAL' for the string 'Reinforced Concrete' SQL_Expression = "'"'MATERIAL'"' = 'Reinforced Concrete'" #Execute Make Feature Layer arcpy.MakeFeatureLayer_management(nearFC, 'Near Layer', SQL_Expression) result = arcpy.GetCount_management('Near Layer') if int(result.getOutput(0)) == 0: arcpy.AddMessage('{0} has no features that satisfy the query: {1}'\ .format(nearFC, SQL_Expression)) else: #Execute Near3D arcpy.Near3D_3d(inFC, 'nearLayer', '', 'LOCATION', 'ANGLE') except arcpy.ExecuteError: print arcpy.GetMessages() except: # Get the traceback object tb = sys.exc_info()[2] tbinfo = traceback.format_tb(tb)[0] # Concatenate error information into message string pymsg = 'PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}'\ .format(tbinfo, str(sys.exc_info()[1])) msgs = 'ArcPy ERRORS:\n {0}\n'.format(arcpy.GetMessages(2)) # Return python error messages for script tool or Python Window arcpy.AddError(pymsg) arcpy.AddError(msgs)