Zusammenfassung
Dient zum Erstellen von Linien-Features, die Sichtlinien von einem oder mehreren Beobachterpunkten zu Features in einer Ziel-Feature-Class darstellen.
Bild
Verwendung
Sichtlinien werden aus dem Umfang von Ziellinien und -polygonen ermittelt und sind von dem im Parameter Abtastschrittweite angegebenen Wert abhängig. Die Einheiten unter Abtastschrittweite sollten in den XY-Einheiten der Ausgabe-Feature-Class angegeben werden.
Ein Join-Feld wird verwendet, um ein oder mehrere Ziele für einen bestimmten Beobachter anzugeben. Wenn kein Join-Feld verwendet wird, werden alle Punkte mit allen Zielen verbunden.
Es wird eine dreidimensionale Ausgabe generiert, wenn sowohl für Beobachter- als auch Ziel-Features eine Quelle für das Höhenmaß angegeben wird. Als Standard für die Quelle des Höhenmaßes der Beobachter- und Ziel-Features wird der Feldname verwendet, der als erstes in dieser Liste gefunden wird:
- Shape.Z (nur verfügbar für Features, die Z-aktiviert sind)
- Spot
- Z
- Z_Value
- Height
- Elev
- Elevation
- Contour
Wenn kein geeignetes Höhenfeld vorhanden ist, wird standardmäßig das Schlüsselwort <None> verwendet, um anzugeben, dass die Features keine Z-Werte haben.
Wenn das gewünschte Höhenfeld in der Standard-Feldauswahl keine höhere Priorität hat, muss das gewünschte Feld explizit angegeben werden. Wenn kein Höhenfeld benötigt wird, die Feature-Class jedoch eines der Felder in der Standard-Auswahlliste enthält, muss außerdem das Schlüsselwort <None> verwendet werden.
Der Ausgabe-Feature-Class, die die Sichtlinien enthält, werden die folgenden Felder hinzugefügt:
- OID_OBSERV: Die OID des Beobachterpunktes
- OID_TARGET: Die OID des Ziel-Features
- DIST_ALONG: Die Entfernung entlang des Ziel-Features, wenn es sich um eine Linie oder ein Polygon handelt
Wenn der Parameter Richtung ausgeben aktiviert ist, verfügen die ausgegebenen Sichtlinien über zwei zusätzliche Attributfelder:
- AZIMUTH: Grad von genau Norden, wobei die Werte im Uhrzeigersinn zunehmen
- VERT_ANGLE: Vertikaler Winkel in Grad vom Horizont, wobei sich 90° direkt über und -90° direkt unter dem Horizont befindet. Der vertikale Winkel ist nur relevant, wenn ein Höhenfeld angegeben wird.
Syntax
ConstructSightLines_3d (in_observer_points, in_target_features, out_line_feature_class, {observer_height_field}, {target_height_field}, {join_field}, {sample_distance}, {output_the_direction})
Parameter | Erläuterung | Datentyp |
in_observer_points | Die einzelnen Punkt-Features, die Beobachterpunkte darstellen. Multipoint-Features werden nicht unterstützt. | Feature Layer |
in_target_features | Die Ziel-Features (Punkte, Multipoints, Linien und Polygone). | Feature Layer |
out_line_feature_class | Die Ausgabe-Feature-Class, die die Sichtlinien enthält. | Feature Class |
observer_height_field (optional) | Die Quelle der Höhenwerte für die aus der Attributtabelle abgerufenen Beobachterpunkte. Ein Standard-Beobachterhöhenfeld wird aus den unten aufgeführten Optionen nach Priorität ausgewählt. Wenn mehrere Felder vorhanden sind und das gewünschte Feld in der Standard-Feldauswahl keine höhere Priorität hat, muss das gewünschte Feld angegeben werden.
| String |
target_height_field (optional) | Das Höhenfeld für das Ziel. Ein Standard-Zielhöhenfeld wird aus den unten aufgeführten Optionen nach Priorität ausgewählt. Wenn mehrere Felder vorhanden sind und das gewünschte Feld in der Standard-Feldauswahl keine höhere Priorität hat, muss das gewünschte Feld angegeben werden.
| String |
join_field (optional) | Das Join-Feld wird verwendet, um Beobachter mit bestimmten Zielen zu vergleichen. | String |
sample_distance (optional) | Die Entfernung zwischen Beispielen, wenn das Ziel entweder eine Line- oder Polygon-Feature-Class ist. Die Einheiten für Abtastschrittweite werden in den XY-Einheiten der Ausgabe-Feature-Class interpretiert. | Double |
output_the_direction (optional) |
Fügt den ausgegebenen Sichtlinien Richtungsattribute hinzu. Zwei zusätzliche Felder werden hinzugefügt und ausgefüllt, um die Richtung anzugeben: AZIMUTH und VERT_ANGLE (vertikaler Winkel).
| Boolean |
Codebeispiel
ConstructSightLines – Beispiel 1 (Python-Fenster)
Anhand des folgenden Beispiels wird die Verwendung dieses Werkzeugs im Python-Fenster veranschaulicht.
arcpy.CheckOutExtension('3D')
arcpy.env.workspace = 'C:/data'
arcpy.ConstructSightLines_3d('observer_pt.shp', 'target.shp', 'sightlines.shp',
'BASEHEIGHT', 'TOP_HEIGHT', 'NAME', 1)
ConstructSightLines – Beispiel 2 (eigenständiges Skript)
Im folgenden Beispiel wird die Verwendung dieses Werkzeugs in einem eigenständigen Python-Skript veranschaulicht.
'''*********************************************************************
Name: Sight Line Visibility of Parade Path
Description: This script demonstrates how to create a sight line feature class
from a pair of observer and target points.
*********************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
from arcpy import env
try:
# Checking out 3D Analyst Extension:
arcpy.CheckOutExtension('3D')
# Set Local Variables:
env.workspace = 'C:/data'
# Setting up input and output variables:
obs = "observer_pts.shp"
tar = "parade_path.shp"
sightlines = "output_sightlines.shp"
height = "<None>"
join_field = "#"
sampling = 0.5
direction = "OUTPUT_THE_DIRECTION"
surface = 'elevation.tif'
bldgs = 'buildings.shp'
arcpy.AddMessage("Building sightlines...")
arcpy.ddd.ConstructSightLines(obs, tar, sightlines, height, height,
join_field, sampling, direction)
arcpy.ddd.LineOfSight(surface, sightlines, "Parade_LOS.shp",
"Obstructions.shp", in_features=bldgs)
arcpy.GetMessages(0)
arcpy.CheckInExtension("3D")
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)
Umgebung
Lizenzierungsinformationen
- ArcGIS for Desktop Basic: Erfordert 3D Analyst
- ArcGIS for Desktop Standard: Erfordert 3D Analyst
- ArcGIS for Desktop Advanced: Erfordert 3D Analyst