Ligne de visée (3D Analyst)

Récapitulatif

Cet outil utilise une classe d'entités polylignes 2D ou 3D en entrée avec une surface de jeu de données de raster, de réseau triangulé irrégulier (TIN) ou de MNT afin de déterminer la visibilité entre les points d'observation et les points cible. Il est possible de fournir une classe d'entités multipatch pour l'analyse de visibilité.

Pour en savoir plus sur la fonction Ligne de visée (3D Analyst)

Utilisation

Syntaxe

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})
ParamètreExplicationType de données
in_surface

Surface de MNT, de raster ou de TIN en entrée sur laquelle sont basés les calculs.

TIN Layer; Raster Layer; Terrain Layer
in_line_feature_class

Classe d'entités polylignes en entrée sur laquelle la visibilité doit être calculée. Il peut s'agir d'une classe d'entités 2D ou 3D.

Feature Layer
out_los_feature_class

Classe d'entités linéaires en sortie sur laquelle la visibilité a été déterminée. Deux champs attributaires sont créés. VisCode indique la visibilité le long de la ligne, 1 signifiant visible et 2 invisible. La valeur TarIsVis indique la visibilité de la cible, 0 signifiant non visible et 1 signifiant visible.

Feature Class
out_obstruction_feature_class
(Facultatif)

Classe d'entités points en sortie indiquant le premier point d'obstruction le long de la ligne de visée, si la cible n'est pas visible.

Feature Class
use_curvature
(Facultatif)

Indique si la courbure de la Terre doit être prise en compte lors de l'analyse de la ligne de visée. Pour que cette option soit activée, la surface doit avoir une référence spatiale définie dans des coordonnées projetées avec des unités z définies.

  • CURVATURELa courbure de la Terre est prise en compte.
  • NO_CURVATURELa courbure de la Terre n'est pas prise en compte. Il s'agit de l'option par défaut.
Boolean
use_refraction
(Facultatif)

Indique si la réfraction atmosphérique doit être prise en compte lors de la génération d'une ligne de visée à partir d'une surface fonctionnelle.

  • NO_REFRACTION La réfraction atmosphérique n'est pas prise en compte. Il s'agit de l'option par défaut.
  • REFRACTIONLa réfraction atmosphérique est prise en compte.
Boolean
refraction_factor
(Facultatif)

Indique la valeur à utiliser comme facteur de réfraction. Le facteur de réfraction par défaut est 0,13.

Double
pyramid_level_resolution
(Facultatif)

Résolution du niveau de pyramide du jeu de données de MNT à utiliser pour le géotraitement. La valeur par défaut est 0 (résolution maximale).

Double
in_features
(Facultatif)

Classe d'entités des multipatches qui risquent d'obstruer les lignes de visée. Ce champ est vide par défaut.

Feature Layer

Exemple de code

1er exemple d'utilisation de l'outil Ligne de visée (fenêtre Python)

Le script de fenêtre Python suivant illustre l'utilisation de la fonction Ligne de visée en mode immédiat.

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")
2e exemple d'utilisation de l'outil Ligne de visée (script autonome)

Le script Python ci-dessous illustre l'utilisation de la fonction Ligne de visée dans un script autonome.

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

Environnements

Rubriques connexes

Informations de licence

ArcView : Obligatoire 3D Analyst
ArcEditor : Obligatoire 3D Analyst
ArcInfo : Obligatoire 3D Analyst

7/10/2012