Skyline-Diagramm (ArcGIS 3D Analyst)
Zusammenfassung
Berechnet die Sichtbarkeit des Himmels und generiert optional eine Tabelle und ein Polardiagramm.
Die Tabelle und das Diagramm stellen die horizontalen und vertikalen Winkel dar, die vom Beobachterpunkt zu den einzelnen Stützpunkten der Skyline reichen.
Bild
Verwendung
- Als Eingabe sind ein Beobachterpunkt und eine Skyline (3D-Linie) erforderlich.
- Der Azimut und der vertikale Winkel vom Beobachterpunkt zu jedem Stützpunkt werden berechnet.
- Das Werkzeug gibt immer den Anteil des sichtbaren Himmels (zwischen 0 und 1) zurück; z. B. den Wert 0,8, wenn der Himmel zu 80 Prozent sichtbar ist.
- Mit dem Werkzeug kann optional eine Tabelle mit Winkeln ausgegeben werden. Wenn die Tabelle ausgegeben wird, kann auch ein Polardiagramm optional ausgegeben werden.
- Das Werkzeug zeigt den Prozentsatz des sichtbaren Himmels sowie die minimalen und maximalen vertikalen Winkel immer im Ergebnisfenster an (bzw. in den Ergebnisinformationen, wenn das Fenster nicht angezeigt wird).
- Wenn eine Tabelle ausgegeben wird, enthält sie Zeilen mit mindestens zwei Zahlen mit doppelter Genauigkeit. Jede Zeile enthält mindestens einen arithmetischen Horizontalwinkel und einen Zenitwinkel, die beide in Grad angegeben werden.
- Wenn Zusätzliche Felder ausgewählt ist, werden weitere Spalten generiert, die Informationen wie etwa zur Quelle der Kante, die dem Stützpunkt in der Skyline (FEATURE_ID) folgt, zur Entfernung vom Beobachterpunkt zum Stützpunkt und zu den Koordinaten des Stützpunktes enthält. (Die Quelle kann die FID des Features sein, das Teil der Skyline ist, oder ein Code, der angibt, dass die Skyline auf der Oberfläche ist.)
Die folgenden Felder werden immer in der Tabelle angezeigt:
- HORIZ_ANG – Der Horizontalwinkel.
- ZENITH_ANG – Der Zenitwinkel.
Zusätzliche Felder:
- VERTEX_X – Die X-Koordinate des Stützpunktes.
- VERTEX_Y – Die Y-Koordinate des Stützpunktes.
- VERTEX_Z – Die Z-Koordinate des Stützpunktes.
- DIST_2D – Die horizontale Entfernung vom Beobachter zum Stützpunkt.
- DIST_3D – Die Schrägstrecke vom Beobachter zum Stützpunkt.
Die zusätzlichen Felder sind zum Erstellen des Diagramms nicht erforderlich.
Der arithmetische Horizontalwinkel entspricht einem Winkel von 90 minus dem Azimut, und der Zenitwinkel entspricht einem Winkel von 90 minus dem vertikalen Winkel. (Ein arithmetischer Horizontalwinkel von 0 entspricht Osten und 90 entspricht Norden. Ein Zenitwinkel von 90 ist horizontal und 0 ist gerade nach oben.)
- Das optionale Diagramm ist ein Polardiagramm, in dem die Skyline (3D-Polylinie) auf die Oberfläche einer Kugel projiziert zu sein scheint und der Beobachter des Diagramms sich scheinbar in großer Höhe über dem Mittelpunkt der Kugel befindet (der Mittelpunkt der Kugel entspricht dem Beobachterpunkt) und nach unten sieht.
- Das Polardiagramm dehnt sich linear vom Mittelpunkt aus. Das bedeutet, dass der Ring/Kreis, der den Äquator repräsentiert, doppelt so groß ist wie der Radius des Ringes, der einen Höhenwinkel von 45 ° repräsentiert, wobei davon ausgegangen wird, dass der Mittelpunkt des Diagramms einen Höhenwinkel von 90 ° repräsentiert (der Zenitwinkel ist 0).
- Die Ergebnisse enthalten immer den Prozentsatz sichtbaren Himmels. Dieser Wert entspricht der Fläche über der Skyline, dividiert durch die Fläche über dem Basis-Sichtbarkeitswinkel (einer der Parameter, mit dem Standardwert 0, folglich auf derselben Höhe wie der Beobachter). Er wird nur innerhalb des Azimutbereichs der Skyline berechnet.
Das Diagramm wird nur angezeigt, wenn das Werkzeug in ArcMap, ArcGlobe oder ArcScene ausgeführt wird.
Syntax
Parameter | Erläuterung | Datentyp |
in_observer_point_features |
Die Eingabe-Features, die einen oder mehrere Beobachterpunkte enthalten. | Feature Layer |
in_line_features |
Die Line-Feature-Class, die die Skyline repräsentiert. | Feature Layer |
base_visibility_angle (optional) |
Der vertikale Winkel, der als Basislinie für die Berechnung des Prozentsatzes an sichtbarem Himmel verwendet wird – 0 ist der Horizont, 90 ist gerade nach oben, -90 ist gerade nach unten. Die Standardeinstellung ist 0. | Double |
additional_fields (optional) |
Bestimmt, ob zusätzliche Felder in der Tabelle ausgegeben werden, und nicht nur die beiden Winkelwerte.
| Boolean |
out_angles_table (optional) |
Die Tabelle, die für die Ausgabe der Winkel erstellt wird. Dieses Feld ist standardmäßig leer (d. h. keine Tabelle). | Table |
out_graph (optional) |
Der Name des optionalen Diagramms. Das Diagramm kann nur erstellt werden, wenn eine Tabelle erzeugt wird. Das Diagramm wird angezeigt und kann gespeichert und/oder bearbeitet werden. Dieses Feld ist standardmäßig leer (d. h. kein Diagramm). | Graph |
Codebeispiel
Anhand des folgenden Beispiels wird die Verwendung dieses Werkzeugs im Python-Fenster veranschaulicht:
import arcpy
from arcpy import env
arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.SkylineGraph_3d("observers.shp", "skyline_outline.shp", 0, "ADDITIONAL_FIELDS", "table.dbf")
Im folgenden Beispiel wird die Verwendung dieses Werkzeugs in einem eigenständigen Python-Skript veranschaulicht:
'''****************************************************************************
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"
inLines = "skyline_outline.shp"
baseVisibility = 25
# Ensure output table has unique name
outTable = arcpy.CreateUniqueName("angles_table.dbf")
#Execute SkylineGraph
arcpy.SkylineGraph_3d(inPts, inLines, 0, "ADDITIONAL_FIELDS", outTable)
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)