Construire des lignes de visée (3D Analyst)

Récapitulatif

Crée des entités linéaires représentant des lignes de visée d'un ou plusieurs points d'observation vers les entités d'une classe d'entités cible.

Utilisation

Syntaxe

ConstructSightLines_3d (in_observer_points, in_target_features, out_line_feature_class, {observer_height_field}, {target_height_field}, {join_field}, {sample_distance})
ParamètreExplicationType de données
in_observer_points

Entités points uniques qui représentent des points d'observation. Les entités multi-points ne sont pas prises en charge.

Feature Layer
in_target_features

Entités cible (points, multi-points, lignes et polygones).

Feature Layer
out_line_feature_class

Classe d'entités en sortie contenant les lignes de visée.

Feature Class
observer_height_field
(Facultatif)

Source des valeurs de hauteur pour les points d'observation obtenus à partir de la table attributaire.

Un champ Champ de hauteur de l'observateur par défaut est sélectionné parmi les options répertoriées ci-dessous par ordre de priorité. Si plusieurs champs existent, et si le champ requis n'a pas de plus grande priorité dans la sélection de champ par défaut, le champ requis doit être spécifié. Si aucun champ de hauteur n'est approprié, le mot-clé <Aucun> est utilisé. De même, si un champ de hauteur n'est pas requis alors que la classe d'entités présente l'un des champs répertoriés ci-dessous, le mot-clé <Aucun> doit être spécifié.

  1. Shape.Z
  2. Spot
  3. Z
  4. Z_Value
  5. Height
  6. Elev
  7. Elevation
  8. Contour
String
target_height_field
(Facultatif)

Champ de hauteur pour la cible.

Un champ Champ de hauteur cible par défaut est sélectionné parmi les options répertoriées ci-dessous par ordre de priorité. Si plusieurs champs existent, et si le champ requis n'a pas de plus grande priorité dans la sélection de champ par défaut, le champ requis doit être spécifié. Si aucun champ de hauteur n'est approprié, le mot-clé <Aucun> est utilisé. De même, si un champ de hauteur n'est pas requis alors que la classe d'entités présente l'un des champs répertoriés ci-dessous, le mot-clé <Aucun> doit être spécifié. Si aucun champ de hauteur approprié n'existe, le mot-clé <Aucun> est utilisé par défaut.

  1. Shape.Z
  2. Spot
  3. Z
  4. Z_Value
  5. Height
  6. Elev
  7. Elevation
  8. Contour
String
join_field
(Facultatif)

Le champ de jointure est utilisé pour la correspondance des points d'observation avec des cibles spécifiques.

String
sample_distance
(Facultatif)

Distance entre les échantillons lorsque la cible est une classe d'entités linéaires ou surfaciques. Les unités Distance d'échantillonnage sont interprétées dans les unités XY de la classe d'entités en sortie.

Double

Exemple de code

1er exemple d'utilisation de l'outil ConstructSightLines (fenêtre Python)

L'exemple suivant illustre l'utilisation de cet outil dans la fenêtre Python :

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

L'exemple suivant illustre l'utilisation de cet outil dans un script Python 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

Thèmes connexes

9/12/2013