Skyline (3D Analyst)
Zusammenfassung
Generiert eine Line- oder Multipatch-Feature-Class, die die Ergebnisse aus einer Skyline-Silhouettenanalyse enthält.
Abbildung
Verwendung
In der Analyse, die von Beobachterpunkten über einer funktionalen oder virtuellen Oberfläche durchgeführt wird, werden auch Features berücksichtigt, die während der Analyse gefunden werden. Wenn sie in Verbindung mit anderen Werkzeugen, vor allem mit dem Werkzeug Skyline-Barriere, verwendet wird, können Schattenvolumen und andere Features erstellt werden.
Das Werkzeug Skyline wird oft in Verbindung mit dem Werkzeug Skyline-Barriere und manchmal in Verbindung mit dem Werkzeug Skyline-Diagramm verwendet. Andere Anwendungen des Werkzeugs Skyline werden unter Analysieren von Bedrohungen für 3D-Flugbahnen und Korridore beschrieben.
Mit dem Werkzeug Skyline können Silhouetten von Features erstellt werden, und diese Silhouetten können mit dem Werkzeug Skyline-Barriere in Schattenvolumen extrudiert werden. Weitere Informationen finden Sie unter Funktionsweise des Werkzeugs "Skyline".
Wenn Feature-Silhouetten statt einer Skyline generiert werden, unterscheiden sich einige Parameter in der Verwendung und Beschreibung.
Wenn keine Features angegeben sind, besteht die Skyline ausschließlich aus einer Kammlinie (Horizontlinie).
Wenn keine Oberflächenfunktionen angegeben sind, wird eine virtuelle Oberfläche verwendet, die aus dem angegebenen Radius und der angegebenen Höhe generiert wird.
-
Die einzigen erforderlichen Parameter sind die Eingabe-Beobachterpunkte und die Ausgabe-Feature-Class (die Skyline).
-
Wenn mindestens ein Feature ausgewählt ist, werden nur die ausgewählten Features berücksichtigt; andernfalls werden alle berücksichtigt.
Für jeden Beobachterpunkt wird eine separate Skyline-Analyse ausgeführt. Eine oder mehrere Linien werden generiert, um die Skyline darzustellen, wie sie von jedem Beobachterpunkt gesehen wird.
Die Azimut-Schrittgröße wirkt sich nur auf die Granularität eines Kammlinienteils der Skyline aus und nicht auf den Teil der Skyline, der entlang aller Features verläuft.
Jede Ausgabe-Linie weist einen Wert auf, der die FID des Beobachterpunkt-Features angibt, das zum Erstellen der durch die Linie dargestellten Skyline verwendet wird.
Um ein Schattenvolumen von einem oder mehreren Features zu erstellen, wird empfohlen, das Kontrollkästchen Skyline segmentieren zu aktivieren, damit jedes Feature, das an der Skyline beteiligt ist, eine eigene Polylinie hat.
Beim Erstellen eines Schattenvolumens führen Sie in der Regel das Werkzeug Skyline mit nur einem Feature pro Ausführung aus. Anschließend führen Sie das Werkzeug Skyline-Barriere auf der Polylinie aus, die das Feature darstellt.
Die Ausgabegeometrie ist eine 3D-Polylinie.
Der Ausgabe-Feature-Class, die die Skylines enthält, werden die folgenden Felder hinzugefügt:
- OID – Die FID der Skyline.
- Shape – Die Geometrie der Skyline.
- OBSV_PT_ID – Die FID des Beobachterpunktes, der zum Erstellen dieser Skyline verwendet wird.
- ORIGFTR_ID – Die FID des Features, z. B. ein Gebäude.
Der Ausgabe-Feature-Class, die die Silhouetten enthält, werden die folgenden Felder hinzugefügt:
- FID – Die Feature-ID der Silhouette.
- Shape – Die Geometrie der Silhouette.
- OBSV_PT_ID – Die FID des Beobachterpunktes, der zum Erstellen dieser Silhouette verwendet wird.
- ORIGFTR_ID – Die FID des ursprünglichen Features, z. B. ein Gebäude, das durch diese Silhouette dargestellt wird.
- DIR_VECT_X – Die X-Komponente des Einheitenvektors, der die Richtung der Lichtstrahlen von der Position des Beobachters darstellt.
- DIR_VECT_Y – Die Y-Komponente des Einheitenvektors, der die Richtung der Lichtstrahlen von der Position des Beobachters darstellt.
- DIR_VECT_Z – Die Z-Komponente des Einheitenvektors, der die Richtung der Lichtstrahlen von der Position des Beobachters darstellt.
- FEAT_CTR_X – Die X-Komponente des Mittelpunktes des Envelopes des ursprünglichen Features (z. B. eines Gebäudes).
- FEAT_CTR_Y – Die Y-Komponente des Mittelpunktes des Feature-Envelopes.
- FEAT_CTR_Z – Die Z-Komponente des Mittelpunktes des Feature-Envelopes.
- BHND_CTR_X – Die X-Komponente des Mittelpunktes des Feature-Envelopes – hinter das Feature verschoben.
- BHND_CTR_Y – Die Y-Komponente des Mittelpunktes des Feature-Envelopes – hinter das Feature verschoben.
- BHND_CTR_Z – Die Z-Komponente des Mittelpunktes des Feature-Envelopes – hinter das Feature verschoben.
- USED_PARLL – Ob die Silhouette mit parallelen Lichtstrahlen erstellt wurde (1 für ja und 0 für nein).
- MADE_VERT – Ob die Silhouette vertikal und nicht senkrecht zu den Lichtstrahlen erstellt wurde (1 für ja und 0 für nein).
- MOVED_BHND – Ob in die Silhouette hinter das Feature verschoben wurde, anstatt bei seinem Mittelpunkt zu bleiben (1 für ja und 0 für nein).
Syntax
Parameter | Erläuterung | Datentyp |
in_observer_point_features |
Die 3D-Punkte, die Beobachter darstellen. Für jeden wird eine separate Skyline generiert. | Feature Layer |
out_feature_class |
Die Line-Feature-Class, in die die Skylines eingefügt werden. Alternativ könnte dies eine Multipatch-Feature-Class sein, die Feature-Silhouetten enthält. | Feature Class |
in_surface (optional) |
Die Oberflächenfunktionen zum Bestimmen des Horizonts. | LAS Dataset Layer; Raster Layer; TIN Layer; Terrain Layer |
virtual_surface_radius (optional) |
Der Radius der virtuellen Oberfläche zum Definieren des Horizonts statt einer tatsächlichen Oberfläche. Der Wert muss positiv sein. Wird ignoriert, wenn eine tatsächliche Oberfläche angegeben wird. Die Standardeinstellung ist 1,000. | Linear Unit |
virtual_surface_elevation (optional) |
Die Höhe der virtuellen Oberfläche zum Definieren des Horizonts statt einer tatsächlichen Oberfläche. Dieser Wert wird ignoriert, wenn eine tatsächliche Oberfläche zur Verfügung steht. Die Standardeinstellung ist 0. | Linear Unit |
in_features (optional) |
Die Feature-Class für die Verwendung in der Skyline-Analyse. Die Features stellen gewöhnlich Hindernisse, z. B. städtische Gebäude, dar. | Feature Layer |
feature_lod (optional) |
Die Detaillierungsebene, in der jedes Feature in der Skyline-Analyse untersucht werden soll.
| String |
from_azimuth_value_or_field (optional) |
Der Azimut, in Grad, von dem die Skyline-Analyse gestartet werden soll. Die Analyse beginnt am Beobachterpunkt und bewegt sich nach rechts, vom "Von Azimut" bis zum "Bis Azimut". Der Wert muss zwischen -360 und 360 liegen. Der Standard beträgt 0. | Double; Field |
to_azimuth_value_or_field (optional) |
Die Richtung, in Grad, in der die Skyline-Analyse abgeschlossen werden soll. Die Analyse beginnt am Beobachterpunkt und bewegt sich nach rechts, vom "Von Azimut" bis zum "Bis Azimut". Der Wert kann maximal 360° größer als "Von Azimut" sein. Die Standardeinstellung ist 360. | Double; Field |
azimuth_increment_value_or_field (optional) |
Das Winkelintervall, in Grad, in dem der Horizont ausgewertet werden soll, während die Skyline-Analyse zwischen dem "Von Azimut" und dem "Bis Azimut" durchgeführt wird. Der Wert darf nicht größer als der "Bis Azimut"-Wert minus dem "Von Azimut"-Wert sein. Die Standardeinstellung ist 1. | Double; Field |
max_horizon_radius (optional) |
Die maximale Entfernung von der Beobachterposition, in der nach einem Horizont gesucht werden soll. Der Wert Null gibt an, dass keine Grenze vorgegeben werden soll. Die Standardeinstellung ist 0. | Double |
segment_skyline (optional) |
Anstatt nur einer Linie zu generieren, um die Skyline von jedem Beobachterpunkt darzustellen, wird die Ausgabe in mehrere Linien geteilt. Jede dieser Linien stellt ein anderes Feature oder einen Abschnitt des Horizonts zwischen den Features dar. Beim Erstellen von Silhouetten gibt dieser Parameter an, ob abweichende Strahlen verwendet werden sollen; für Sonnenschatten sollte im Allgemeinen "Nein" angegeben oder die Option deaktiviert werden.
| Boolean |
scale_to_percent (optional) |
Gibt den Prozentsatz des ursprünglichen vertikalen Winkels (Winkel über dem Horizont oder Höhenwinkel) oder der Höhe an, bei dem jeder Skyline-Stützpunkt platziert werden soll. Bei Eingabe von 0 oder 100 erfolgt keine Skalierung. Die Standardeinstellung ist 100. | Double |
scale_according_to (optional) |
Die Werte, nach denen die Skalierung erfolgen soll.
| String |
scale_method (optional) |
Der Stützpunkt, der für die Berechnung verwendet werden soll.
| String |
use_curvature (optional) |
Gibt an, ob die Erdkrümmung berücksichtigt werden soll, wenn eine Kammlinie aus einer Oberflächenfunktion generiert wird.
| Boolean |
use_refraction (optional) |
Gibt an, ob die atmosphärische Lichtbrechung berücksichtigt werden soll, wenn eine Kammlinie aus einer Oberflächenfunktion generiert wird. Wenn keine tatsächliche Oberfläche angegeben wird, führt das Aktivieren dieses Kontrollkästchens (oder die Übergabe von REFRACTION in Python) dazu, dass an Stelle von Skylines Silhouetten erstellt werden.
| Boolean |
refraction_factor (optional) |
Wenn die atmosphärische Lichtbrechung berücksichtigt wird, wenden Sie einen Skalarwert an. Die Standardeinstellung ist 0,13. | Double |
pyramid_level_resolution (optional) |
Wenn ein Terrain für eine Oberflächenfunktion angegeben wird, wird dieser Parameter mit den Auflösungen im Terrain aufgefüllt. Eine der Auflösungen kann zum Erstellen der Horizontlinie ausgewählt werden. Der Standardwert ist 0, also volle Auflösung. | Double |
create_silhouettes (optional) |
Geben Sie an, ob Ausgabe-Features Silhouetten darstellen, die vom Beobachterpunkt aus sichtbar sind.
| 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.Skyline_3d("observers.shp", "skyline_output.shp", "sample.gdb/featuredataset/terrain")
The following sample demonstrates the use of this tool in a stand-alone Python script:
'''**************************************************************************** Name: Skyline Example Description: This script demonstrates how to use the Skyline tool. ****************************************************************************''' # 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 inPts = "observers.shp" # Make sure output has a unique name outFC = arcpy.CreateUniqueName("skyline_output.shp") inSurface = "sample.gdb/featuredataset/terrain" obstructionFCs = "buildings.shp; billboards.shp" surfRad = "1000 meters" surfElev = "100 meters" LOD = "FULL_DETAIL" fromAzim = 0 toAzim = 360 incAzim = 1 maxHorizRad = 0 segSky = "SEGMENT_SKYLINE" scale = 100 scaleAcc = "ELEVATION" scaleMethod = "SKYLINE_MAXIMUM" # Execute Skyline arcpy.Skyline_3d(inPts, outFC, inSurface, surfRad, surfElev, obstructionFCs, LOD, fromAzim, toAzim, incAzim, maxHorizRad, segSky, scale, scaleAcc, scaleMethod) 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)