Résumé
Génère 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é par le traçage d’une ligne entre le point d’observation et le premier sommet de l’horizon, puis par le balayage de cette ligne sur tous les sommets de l’horizon. Vous pouvez utiliser cet outil pour déterminer si des entités (par exemple, des multipatchs représentant des bâtiments) ne respectent pas la barrière par dépassement 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 produit une représentation volumétrique de l’ombre projetée par la lumière provenant du point d’observation.
Les paramètres Rayon minimum et Rayon maximal définissent la longueur des côtés du triangle émanant du point d’observation. Si la valeur par défaut de 0 est spécifiée pour le paramètre Rayon minimum ou Rayon maximal, aucune longueur minimale ou maximale n’est utilisée dans l’analyse.
Si vous choisissez de créer un multipatch fermé, la sortie est extrudée à la hauteur définie pour le paramètre Altitude de la base, et un anneau horizontal est créé pour former la partie inférieure de la géométrie fermée. Si l’altitude de la base spécifiée est supérieure au sommet le plus haut de la barrière d’horizon, la base est en fait un plafond.
La nouvelle classe d’entités multipatch comporte alors 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 la silhouette ou le segment d’horizon 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
arcpy.ddd.SkylineBarrier(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 qui contient les points d’observation. | Feature Layer |
in_features | Classe d’entités linéaires en entrée qui représente 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 d’extension des côtés du triangle à partir du point d’observation. Par exemple, avec une valeur de 10 mètres, toutes les entités interruptions en sortie sont étendues d’au moins 10 mètres à partir du point d’origine. La valeur par défaut est de 0, autrement dit aucune distance minimale ne s’applique. | Linear Unit; Field |
max_radius_value_or_field (Facultatif) | Rayon maximal d’extension des côtés du triangle à partir du point d’observation. La valeur par défaut est de 0, autrement dit aucune distance maximale ne s’applique. | 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 un solide fermé.
| Boolean |
base_elevation (Facultatif) | Altitude de la base du multipatch fermé. Ce paramètre est ignoré si le paramètre closed est défini sur NO_CLOSED. La valeur par défaut est 0. | Linear Unit; Field |
project_to_plane (Facultatif) | Projection souhaitée ou non de l’extrémité avant (plus proche du point d’observation) et de l’extrémité arrière (plus éloignée du point d’observation) de la barrière sur un plan vertical. Ce paramètre est généralement défini sur PROJECT_TO_PLANE pour créer un volume d’ombre.
| Boolean |
Exemple de code
Exemple 1 d’utilisation de l’outil Barrière d’horizon (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")
Exemple 2 d’utilisation de l’outil Barrière d’horizon (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
- Basic: Requiert 3D Analyst
- Standard: Requiert 3D Analyst
- Advanced: Requiert 3D Analyst