Skyline-Diagramm (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.
Abbildung
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ützpunkts 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 Null).
- 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 Null, folglich auf derselben Höhe wie der Beobachter). Er wird nur innerhalb des Azimutbereichs der Skyline berechnet.
Die Diagrammoption ist nur mit ArcGIS Desktop zum Anzeigen eines Diagramms verfügbar.
Syntax
Parameter | Erläuterung | Datentyp |
in_observer_point_features |
The input features containing one or more observer points. | 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
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.SkylineGraph_3d("observers.shp", "skyline_outline.shp", 0, "ADDITIONAL_FIELDS", "table.dbf")
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" 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)