Sichtlinien konstruieren (3D Analyst)
Zusammenfassung
Dient zum Erstellen von Linien-Features, die Sichtlinien von einem oder mehreren Beobachterpunkten zu Features in einer Ziel-Feature-Class darstellen.
Verwendung
-
Der Umfang wird gleichmäßig gemessen, wenn die Ziel-Features Linien oder Polygone sind.
-
Die Eingabe-Feature-Class muss eine Point-Feature-Class sein. Multipoints sind nicht gültig.
-
Es wird eine dreidimensionale Ausgabe generiert, wenn sowohl für Beobachter- als auch Ziel-Features eine Quelle für das Höhenmaß angegeben wird.
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.
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 <Keines> 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. Auf ähnliche Weise muss, wenn kein Höhenfeld benötigt wird, die Feature-Class jedoch eines der Felder in der Standard-Auswahlliste enthält, das Schlüsselwort <Keines> angegeben werden.
Die Einheiten unter Abtastschrittweite sollten in XY-Einheiten der Ausgabe-Feature-Class angegeben werden.
Der Ausgabe-Feature-Class, die die Sichtlinien enthält, werden die folgenden Felder hinzugefügt:
- OID_OBSERV – Die OID des Beobachterpunkts.
- 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.
Syntax
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. Wenn kein geeignetes Höhenfeld vorhanden ist, wird das Schlüsselwort <Keines> verwendet. Auf ähnliche Weise muss, wenn kein Höhenfeld benötigt wird, die Feature-Class jedoch eines der unten aufgeführten Felder enthält, das Schlüsselwort <Keines> 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. Wenn kein geeignetes Höhenfeld vorhanden ist, wird das Schlüsselwort <Keines> verwendet. Auf ähnliche Weise muss, wenn kein Höhenfeld benötigt wird, die Feature-Class jedoch eines der unten aufgeführten Felder enthält, das Schlüsselwort <Keines> angegeben werden. Wenn kein geeignetes Höhenfeld vorhanden ist, wird standardmäßig das Schlüsselwort <Keines> verwendet.
| 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 |
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.ConstructSightLines_3d('observer_pt.shp', 'target.shp', 'sightlines.shp', 'BASEHEIGHT', 'TOP_HEIGHT', 'NAME')
The following sample demonstrates the use of this tool in a stand-alone Python script:
'''********************************************************************* Name: Sight Line Visibility Description: This script demonstrates how to calculate visibility for sight lines against the obstructions presented by terrain elevation & building models in a multipatch. *********************************************************************''' # Import system modules import arcpy import exceptions, sys, traceback from arcpy import env try: arcpy.CheckOutExtension('3D') # Set Local Variables env.workspace = 'C:/data' obs_pts = "Observers.shp" target = "Observation_Targets.shp" sight_lines = "in_memory/sightlines" surface = "sample.gdb/elevation/terrain" buildings = "city_buildings.shp" outLOS = arcpy.CreateUniqueName("Line_of_Sight.shp") obstruction_pts = arcpy.CreateUniqueName("Obstruction_Points.shp") arcpy.AddMessage("Constructing sight lines...") arcpy.ddd.ConstructSightLines(obs_pts, target, sight_lines) arcpy.AddMessage("Calculating line of sight...") arcpy.ddd.LineOfSight(surface, sight_lines, outLOS, obstruction_pts, "CURVATURE", "REFRACTION", 0.35, 0, buildings) 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)