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
-
Si les entités cibles sont linéaires ou surfaciques, le périmètre est échantillonné de manière uniforme.
-
La classe d'entités en entrée doit être une classe d'entités points. Les multi-points ne sont pas valides.
-
Une sortie tridimensionnelle est générée si une source hauteurs est spécifiée pour les entités d'observation et cible.
Un champ de jointure permet de spécifier une ou plusieurs cibles pour un point d'observation donné. Si aucun champ de jointure n'est utilisé, tous les points sont connectés à toutes les cibles.
La source hauteurs du point d'observation et les entités cible sont par défaut le premier nom de champ de cette liste :
- Shape.Z (uniquement disponible pour les entités prenant en charge les valeurs Z)
- Spot
- Z
- Z_Value
- Height
- Elev
- Elevation
- Contour
Si aucun champ de hauteur approprié n'existe, le mot-clé <Aucun> est utilisé par défaut pour indiquer que les entités ne présentent aucune valeur Z.
Si le champ de hauteur souhaité n'a pas une plus grande priorité dans la sélection de champ par défaut, le champ souhaité doit être spécifié explicitement. De même, si un champ de hauteur n'est pas requis alors que la classe d'entités comporte l'un des champs dans la liste de sélection par défaut, le mot-clé <Aucun> doit être spécifié.
La Distance d'échantillonnage doit être précisée avec les unités x,y de la classe d'entités en sortie.
Les champs suivants sont ajoutés à la classe d'entités en sortie qui contient les lignes de visée :
- OID_OBSERV - OID du point d'observation
- OID_TARGET - OID de l'entité cible
- DIST_ALONG - Distance le long de l'entité cible s'il s'agit d'une ligne ou d'un polygone
Syntaxe
Paramètre | Explication | Type 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é.
| 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.
| 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
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)