Résumé
Permet de générer une classe d'entités multipatch représentant une barrière d'horizon ou un volume d'ombre.
En savoir plus sur le fonctionnement de l'outil Barrière d'horizon
Illustration
Utilisation
La barrière ressemble à un éventail de triangles formé en dessinant une ligne à partir du point d'observation jusqu'au premier sommet de l'horizon, puis en balayant cette ligne sur tous les sommets de l'horizon. Utilisez cet outil pour déterminer si des entités (par exemple, des multipatch représentant des bâtiments) enfreignent la barrière en la dépassant, ou si un projet de construction risque de modifier l'horizon.
Utilisez tout d'abord l'outil Horizon pour générer un horizon ou une silhouette. Une silhouette produirait une représentation volumétrique de l'ombre portée par la lumière provenant du point d'observation.
Les paramètres Rayon minimum et Rayon maximal permettent de définir la longueur des segments du triangle émanant du point d'observation. Si la valeur 0 est définie par défaut pour le Rayon minimum ou le Rayon maximal, aucune longueur minimum ou maximum n'est utilisée dans l'analyse.
Si vous choisissez de créer un multipatch fermé, la sortie sera extrudée à la hauteur définie dans le paramètre Altitude de la base et un anneau horizontal sera créé pour former la partie inférieure de la géométrie fermée. Si l'altitude de la base spécifiée est plus grande que le plus haut sommet de la barrière d'horizon, la base est en fait un plafond.
La nouvelle classe d'entités multipatch comportera les champs suivants :
- OBSV_PT_ID - FID du point d'observation utilisé pour créer l'horizon qui a ensuite permis de créer ce multipatch de la barrière d'horizon.
- ORIGFTR_ID - FID de l'entité d'origine (bâtiment, par exemple) représenté par le segment d'horizon ou la silhouette utilisé pour créer ce volume d'ombre.
- SILHOUE_ID - FID de l'entité multipatch (silhouette) utilisée pour créer ce volume d'ombre (pour les silhouettes uniquement).
Syntaxe
SkylineBarrier_3d (in_observer_point_features, in_features, out_feature_class, {min_radius_value_or_field}, {max_radius_value_or_field}, {closed}, {base_elevation}, {project_to_plane})
Paramètre | Explication | Type de données |
in_observer_point_features | Classe d'entités ponctuelles contenant les points d'observation. | Feature Layer |
in_features | Classe d'entités linéaires en entrée représentant les horizons ou classe d'entités multipatch en entrée représentant les silhouettes. | Feature Layer |
out_feature_class | Classe d'entités en sortie dans laquelle la barrière d'horizon ou le volume d'ombre est placé. | Feature Class |
min_radius_value_or_field (Facultatif) | Rayon minimal auquel les côtés de triangle doivent être prolongés à partir du point d'observation. La valeur par défaut est 0, ce qui signifie qu'il n'y a pas de minimum. | Linear Unit; Field |
max_radius_value_or_field (Facultatif) | Rayon maximal auquel les côtés de triangle doivent être prolongés à partir du point d'observation. La valeur par défaut est 0, ce qui signifie qu'il n'y a pas de maximum. | Linear Unit; Field |
closed (Facultatif) | Fermeture ou non de la barrière d'horizon avec une jupe et une base, afin que le multipatch obtenu donne l'apparence d'être plein.
| Boolean |
base_elevation (Facultatif) | Altitude de la base du multipatch fermé qui est ignorée si la barrière ne doit pas être fermée. La valeur par défaut est 0. | Linear Unit; Field |
project_to_plane (Facultatif) | Projection ou non de l'extrémité supérieure (plus proche du point d'observation) et inférieure (plus éloignée du point d'observation) de la barrière sur un plan vertical. Ce paramètre est en général activé pour créer un volume d'ombre.
| Boolean |
Exemple de code
1er exemple d'utilisation de l'outil SkylineBarrier (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.SkylineBarrier_3d("observers.shp", "skyline_outline.shp", "barrier_output.shp")
2e exemple d'utilisation de l'outil SkylineBarrier (script autonome)
L'exemple suivant illustre l'utilisation de cet outil dans un script Python autonome.
'''****************************************************************************
Name: Skyline Barrier Example
Description: This script demonstrates how to use the
Skyline Barrier tool.
****************************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
from arcpy import env
try:
# Obtain a license for the ArcGIS 3D Analyst extension
arcpy.CheckOutExtension('3D')
# Set environment settings
env.workspace = 'C:/data'
# Set Local Variables
inPts = 'observers.shp'
inLine = 'skyline.shp'
outFC = 'output_barriers.shp'
minRadius = '0 METERS'
maxRadius = '200 METERS'
#Execute SkylineBarrier
arcpy.SkylineBarrier_3d(inPts, inLine, outFC, minRadius,
maxRadius, 'CLOSED')
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
Informations de licence
- ArcGIS Desktop Basic: Requiert 3D Analyst
- ArcGIS Desktop Standard: Requiert 3D Analyst
- ArcGIS Desktop Advanced: Requiert 3D Analyst