Résumé
Permet de générer une ligne ou une classe d'entités multipatch contenant les résultats d'une analyse de la silhouette ou de l'horizon.
Illustration
Utilisation
L'outil Horizon est souvent utilisé conjointement avec l'outil Barrière d'horizon, et parfois avec l'outil Diagramme de ligne d'horizon. D'autres applications de cet outil sont décrites dans la rubrique Analyse de menaces aux trajectoires et couloirs de vol 3D.
L'outil Horizon permet de créer des silhouettes d'entités qui peuvent être extrudées dans des volumes d'ombre avec l'outil Barrière d'horizon. Pour plus d'informations, consultez la rubrique Fonctionnement de l'outil Horizon.
Les champs suivants sont ajoutés à la classe d'entités en sortie qui contient les horizons :
- OBSV_PT_ID : FID du point d’observation utilisé pour créer cet horizon.
- ORIGFTR_ID : FID de l’entité (bâtiment, par exemple).
Les champs suivants sont ajoutés à la classe d'entités en sortie qui contient les silhouettes :
- OBSV_PT_ID : FID du point d’observation utilisé pour créer cette silhouette.
- ORIGFTR_ID : FID de l’entité d’origine (bâtiment, par exemple) représentée par cette silhouette.
- DIR_VECT_X : composant X du vecteur d’unité représentant la direction des rayons lumineux à partir du point d’observation.
- DIR_VECT_Y : composant Y du vecteur d’unité représentant la direction des rayons lumineux à partir du point d’observation.
- DIR_VECT_Z : composant Z du vecteur d’unité représentant la direction des rayons lumineux à partir du point d’observation.
- FEAT_CTR_X : composant X du centre de l’enveloppe de l’entité d’origine (par exemple, bâtiment).
- FEAT_CTR_Y : composant Y du centre de l’enveloppe de l’entité.
- FEAT_CTR_Z : composant Z du centre de l’enveloppe de l’entité.
- BHND_CTR_X : composant X du centre de l’enveloppe de l’entité, déplacé derrière l’entité.
- BHND_CTR_Y : composant Y du centre de l’enveloppe de l’entité, déplacé derrière l’entité.
- BHND_CTR_Z : composant Z du centre de l’enveloppe de l’entité, déplacé derrière l’entité.
- USED_PARLL : création ou non de la silhouette à l’aide de rayons lumineux parallèles (1 pour oui, 0 pour non).
- MADE_VERT : silhouette créée à la verticale ou non, plutôt que perpendiculaire aux rayons lumineux (1 pour oui, 0 pour non).
- MOVED_BHND : silhouette déplacée ou non derrière l’entité, plutôt que placée au centre (1 pour oui, 0 pour non).
Syntaxe
arcpy.ddd.Skyline(in_observer_point_features, out_feature_class, {in_surface}, {virtual_surface_radius}, {virtual_surface_elevation}, {in_features}, {feature_lod}, {from_azimuth_value_or_field}, {to_azimuth_value_or_field}, {azimuth_increment_value_or_field}, {max_horizon_radius}, {segment_skyline}, {scale_to_percent}, {scale_according_to}, {scale_method}, {use_curvature}, {use_refraction}, {refraction_factor}, {pyramid_level_resolution}, {create_silhouettes})
Paramètre | Explication | Type de données |
in_observer_point_features | Points 3D représentant les points d'observation. Chaque entité aura sa propre sortie. | Feature Layer |
out_feature_class | Entités 3D qui seront des lignes représentant l'horizon ou des multipatchs représentant les silhouettes. | Feature Class |
in_surface (Facultatif) | Surface topographique qui permettra de définir l'horizon. Si aucune surface n'est fournie, une surface virtuelle est employée à l'aide des paramètres virtual_surface_radius et virtual_surface_elevation. | LAS Dataset Layer; Mosaic Layer; Raster Layer; TIN Layer; Terrain Layer |
virtual_surface_radius (Facultatif) | Rayon de la surface virtuelle qui servira à définir l'horizon si aucune surface topographique n'est fournie. La valeur par défaut est 1,000 mètres. Les unités suivantes sont prises en charge :
| Linear Unit |
virtual_surface_elevation (Facultatif) | Altitude de la surface virtuelle (au lieu d'une surface réelle) pour la définition de l'horizon. Ce paramètre est ignoré si une surface réelle est fournie. La valeur par défaut est 0. Les unités suivantes sont prises en charge :
| Linear Unit |
in_features [in_features,...] (Facultatif) | Entités utilisées pour déterminer l'horizon. Si aucune entité n'est spécifiée, l'horizon se compose uniquement de la ligne d'horizon, telle qu'elle est définie par la surface topographique ou virtuelle. | Feature Layer |
feature_lod (Facultatif) | Niveau de détail auquel chaque entité doit être examinée dans l'analyse d'horizon.
| String |
from_azimuth_value_or_field (Facultatif) | Azimut (en degrés) à partir duquel les analyses d'horizon doivent être lancées. L'analyse démarre au point d'observation et se poursuit vers la droite, à partir de l'azimut de départ jusqu'à atteindre l'azimut d'arrivée. Doit être supérieur à moins 360 et inférieur à 360. La valeur par défaut est 0. | Double; Field |
to_azimuth_value_or_field (Facultatif) | Direction (en degrés) dans laquelle les analyses d'horizon doivent être effectuées. L'analyse démarre au point d'observation et se poursuit vers la droite, à partir de l'azimut de départ jusqu'à atteindre l'azimut d'arrivée. Ne doit pas excéder 360 et être supérieur à l'azimut de départ. La valeur par défaut est 360. | Double; Field |
azimuth_increment_value_or_field (Facultatif) | Intervalle angulaire (en degrés) auquel l'horizon doit être évalué lors de l'analyse d'horizon entre l'azimut de départ et l'azimut d'arrivée. Ne doit pas excéder l'azimut de départ moins l'azimut d'arrivée. La valeur par défaut est 1. | Double; Field |
max_horizon_radius (Facultatif) | Distance maximale pour rechercher un horizon à partir de l'emplacement d'observation. Une valeur nulle indique qu'aucune limite ne doit être imposée. La valeur par défaut est 0. Les unités suivantes sont prises en charge :
| Linear Unit |
segment_skyline (Facultatif) | Détermine si la ligne d'horizon ainsi obtenue disposera d'une entité pour chaque point d'observation ou si la ligne d'horizon de chaque point d'observation sera segmentée par les éléments uniques qui constituent la ligne d'horizon. Si des silhouettes sont générées, ce paramètre indique alors si des rayons divergents doivent être utilisés. Pour les ombres, ce paramètre doit en général être défini sur NO_SEGMENT_SKYLINE
| Boolean |
scale_to_percent (Facultatif) | Indique à quel pourcentage de l'angle vertical (angle au-dessus de l'horizon, ou angle d'altitude) ou de l'altitude d'origine chaque sommet d'horizon doit être placé. Si la valeur 0 ou 100 est entrée, aucune mise à l'échelle n'est effectuée. La valeur par défaut est 100. | Double |
scale_according_to (Facultatif) | Valeurs d'après lesquelles la mise à l'échelle doit être déterminée.
| String |
scale_method (Facultatif) | Sommet à utiliser pour effectuer le calcul.
| String |
use_curvature (Facultatif) | Indique si la courbure de la Terre doit être prise en compte lors de la génération de la crête à partir d'une surface fonctionnelle.
| Boolean |
use_refraction (Facultatif) | Indique si la réfraction atmosphérique sera appliquée lors de la génération d'une crête à partir d'une surface fonctionnelle.
| Boolean |
refraction_factor (Facultatif) | Coefficient de réfraction à utiliser si la réfraction atmosphérique est prise en compte. La valeur par défaut est 0.13. | Double |
pyramid_level_resolution (Facultatif) | Résolution de taille de fenêtre ou de tolérance z du niveau de pyramide de MNT qui sera utilisée par cet outil. La valeur par défaut est 0 (ou résolution maximale). | Double |
create_silhouettes (Facultatif) | Indique si les entités en sortie représenteront des lignes d'horizon ou des silhouettes.
| Boolean |
Exemple de code
1er exemple d'utilisation de l'outil Skyline (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.Skyline_3d("observers.shp", "skyline_output.shp", "sample.gdb/featuredataset/terrain")
2e exemple d'utilisation de l'outil Skyline (script autonome)
L'exemple suivant illustre l'utilisation de cet outil dans un script Python autonome.
'''****************************************************************************
Name: Skyline Example
Description: This script demonstrates how to use the
Skyline 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"
# Make sure output has a unique name
outFC = arcpy.CreateUniqueName("skyline_output.shp")
inSurface = "sample.gdb/featuredataset/terrain"
obstructionFCs = "buildings.shp; billboards.shp"
surfRad = "1000 meters"
surfElev = "100 meters"
LOD = "FULL_DETAIL"
fromAzim = 0
toAzim = 360
incAzim = 1
maxHorizRad = 0
segSky = "SEGMENT_SKYLINE"
scale = 100
scaleAcc = "ELEVATION"
scaleMethod = "SKYLINE_MAXIMUM"
# Execute Skyline
arcpy.Skyline_3d(inPts, outFC, inSurface, surfRad, surfElev,
obstructionFCs, LOD, fromAzim, toAzim, incAzim,
maxHorizRad, segSky, scale, scaleAcc, scaleMethod)
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
- Espace de travail courant
- Système de coordonnées en sortie
- Transformations géographiques
- Résolution XY
- Tolérance XY
- Domaine XY en sortie
- Résolution Z
- Tolérance Z
- Domaine Z en sortie
- Mot-clé CONFIG en sortie
- Validation automatique
- Grille spatiale 1 en sortie
- Grille spatiale 2 en sortie
- Grille spatiale 3 en sortie
- Utilisation de la mémoire de terrain
Informations de licence
- Basic: Requiert 3D Analyst
- Standard: Requiert 3D Analyst
- Advanced: Requiert 3D Analyst