Sichtlinie (3D Analyst)

Zusammenfassung

Dieses Werkzeug verwendet als Eingabe eine 2D- oder 3D-Polyline-Feature-Class zusammen mit einer Raster-, TIN- (Triangulated Irregular Network, Unregelmäßiges Dreiecksnetz) oder Terrain-Dataset-Oberfläche, um die Sichtbarkeit zwischen der Beobachter- und Zielposition festzulegen. Eine Multipatch-Feature-Class kann optional als Teil der Sichtbarkeitsanalyse angegeben werden.

Weitere Informationen zur Funktionsweise von "Sichtlinie" (3D Analyst)

Verwendung

Syntax

LineOfSight_3d (in_surface, in_line_feature_class, out_los_feature_class, {out_obstruction_feature_class}, {use_curvature}, {use_refraction}, {refraction_factor}, {pyramid_level_resolution}, {in_features})
ParameterErläuterungDatentyp
in_surface

Die Eingabe-Raster-, Eingabe-TIN- oder Eingabe-Terrain-Oberfläche, auf der die Berechnungen basieren.

TIN Layer; Raster Layer; Terrain Layer
in_line_feature_class

Die Eingabe-Polyline-Feature-Class, entlang der die Sichtbarkeit berechnet wird. Dabei kann es sich um eine 2D- oder 3D-Feature-Class handeln.

Feature Layer
out_los_feature_class

Die Ausgabe-Line-Feature-Class, entlang der die Sichtbarkeit bestimmt wurde. Zwei Attributfelder werden erstellt. "VisCode" gibt die Sichtbarkeit entlang der Linie an, wobei 1 für "sichtbar" und 2 für "nicht sichtbar" steht. "TarIsVis" gibt die Sichtbarkeit des Zieles an. Dabei steht 0 für "nicht sichtbar" und 1 für "sichtbar".

Feature Class
out_obstruction_feature_class
(optional)

Die Ausgabe-Point-Feature-Class, die das erste Sichthindernis entlang der Sichtlinie angibt, wenn das Ziel nicht sichtbar ist.

Feature Class
use_curvature
(optional)

Gibt an, ob die Erdkrümmung in der Sichtlinienanalyse berücksichtigt werden soll. Damit diese Option aktiviert werden kann, muss die Oberfläche über einen definierten Raumbezug in projizierten Koordinaten sowie definierte Z-Einheiten verfügen.

  • CURVATUREDie Erdkrümmung wird berücksichtigt.
  • NO_CURVATUREDie Erdkrümmung wird nicht berücksichtigt. Dies ist die Standardeinstellung.
Boolean
use_refraction
(optional)

Gibt an, ob die atmosphärische Lichtbrechung berücksichtigt werden soll, wenn eine Sichtlinie aus einer Oberflächenfunktion generiert wird.

  • NO_REFRACTION Die atmosphärische Lichtbrechung wird nicht berücksichtigt. Dies ist die Standardeinstellung.
  • REFRACTIONDie atmosphärische Lichtbrechung wird berücksichtigt.
Boolean
refraction_factor
(optional)

Gibt den Wert für den Brechungsfaktor an. Der Standardbrechungsfaktor ist 0,13.

Double
pyramid_level_resolution
(optional)

Die Auflösung der Pyramidenebene des Terrain-Datasets, die für die Geoverarbeitung verwendet werden soll. Der Standardwert ist 0, die volle Auflösung.

Double
in_features
(optional)

Eine Feature-Class mit Multipatches, die möglicherweise die Sichtlinie(n) blockieren. Dieses Feld ist standardmäßig leer.

Feature Layer

Codebeispiel

Sichtlinie – Beispiel 1 (Python-Fenster)

Das folgende Skript im Python-Fenster veranschaulicht, wie Sie die Funktion Sichtlinie im unmittelbaren Modus verwenden.

import arcpy
from arcpy import env

arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.LineOfSight_3d("tin", "line.shp", "los.shp", "buldings_multipatch.shp", 
                    "obstruction.shp")
Sichtlinie – Beispiel 2 (eigenständiges Skript)

Das folgende Python-Skript veranschaulicht, wie Sie die Funktion Sichtlinie in einem eigenständigen Skript verwenden.

'''*********************************************************************
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)

Umgebungen

Verwandte Themen

Lizenzinformationen

ArcView: Erfordert 3D Analyst
ArcEditor: Erfordert 3D Analyst
ArcInfo: Erfordert 3D Analyst

7/10/2012