Résumé
Attribue des entités avec des informations spatiales découlant d’une surface.
Utilisation
Les valeurs Z des entités 3D sont ignorées. Chaque entité récapitulera les propriétés Z de la surface qui intersectent sa géométrie. Les points font dériver les valeurs Z de l’emplacement XY sur la surface, les lignes acquièrent les propriétés Z en interpolant les mesures de la surface avec sa longueur et les polygones récapitulent les propriétés Z de la surface au sein de sa superficie.
Les options Propriété en sortie sont écrites dans la table attributaire de l'entité en entrée. Chaque entité définit l'emplacement des propriétés de surface évaluées et le type de propriété pouvant être signalé varie en fonction de la géométrie de l'entité :
géométrie des entités Propriétés de la surface Point
Points altimétriques interpolés à partir de la coordonnées XY du point sur la surface.
Multi-point
Valeur minimale, maximale et moyenne du point coté pour tous les points d'un enregistrement multi-points.
Polyligne
Distance 3D de la ligne le long de la surface.
Valeur minimale, maximale et moyenne de l'altitude et de la pente de la ligne le long de la surface.
Polygone
Superficie 3D de la surface superposant le polygone.
Valeur minimale, maximale et moyenne de l'altitude et de la pente de la surface.
Les valeurs de pente sont calculées sous la forme de pourcentages (degrés) et, pour les entités linéaires, elles sont calculées à chaque segment de la ligne.
- La pente minimale provient du segment dont la valeur est la plus proche de 0, ou du degré horizontal.
- La pente maximale provient du segment présentant la plus grande valeur calculée.
- La pente moyenne provient de la pondération de chaque pente en fonction de sa longueur 3D, puis du calcul de la moyenne. Les segments les plus longs ont donc une plus grande influence sur la valeur obtenue que les segments les plus courts.
Vous pouvez appliquer un filtre du bruit pour exclure les portions de la surface caractérisées par des mesures anormales du calcul de la pente. Les entités linéaires sont segmentées par des sommets qui capturent le profil de la surface, et le fait de filtrer ces segments par longueur permet de supprimer l'influence des segments courts probablement provoqués par des mesures de surface indésirables. De même, le filtre de surface pour les entités surfaciques permet de ne pas prendre en compte les micro triangles des surfaces triangulées dans le calcul de la pente. Pour les surfaces raster, un sous-ensemble de centroïdes de cellules permet de construire une surface triangulée sur laquelle le filtre de surface est appliqué.
Syntaxe
arcpy.ddd.AddSurfaceInformation(in_feature_class, in_surface, out_property, {method}, {sample_distance}, {z_factor}, {pyramid_level_resolution}, {noise_filtering})
Paramètre | Explication | Type de données |
in_feature_class | Entités ponctuelles, multi-points, polylignes ou surfaciques qui définissent les emplacements permettant de déterminer une ou plusieurs propriétés de surfaces. | Feature Layer |
in_surface | Surface de jeu de données LAS, de mosaïque, raster, TIN ou de MNT utilisée pour interpoler les valeurs z. | LAS Dataset Layer; Mosaic Layer; Raster Layer; Terrain Layer; TIN Layer |
out_property [out_property,...] | Propriétés d'altitude de surface ajoutées à la table attributaire de la classe d'entités en entrée. La liste suivante récapitule les mots-clés de propriété disponibles et les types de géométrie pris en charge :
| String |
method (Facultatif) | Méthode d'interpolation utilisée pour définir les informations sur la surface. Les options disponibles dépendent du type de données de la surface en entrée :
| String |
sample_distance (Facultatif) | Espacement selon lequel les valeurs z sont interpolées. Par défaut, la taille de cellule raster est utilisée lorsque la surface en entrée est un raster, et la densification naturelle de la surface triangulée est utilisée lorsque l'entrée est un MNT ou un jeu de données TIN. | Double |
z_factor (Facultatif) | Facteur par lequel les valeurs z sont multipliées. Il permet généralement de convertir des unités linéaires Z afin d'apparier les unités linéaires XY. La valeur par défaut est de 1, ce qui laisse les valeurs d’altitude inchangées. Ce paramètre est désactivé si la référence spatiale de la surface en entrée possède un datum Z avec une unité linéaire spécifiée. | 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 |
noise_filtering (Facultatif) | Exclut les portions de la surface qui sont potentiellement caractérisées par des mesures anormales du calcul de la pente. Les entités linéaires proposent un filtre de longueur, tandis que les polygones fournissent un filtre de surface. La valeur correspondant à l'une ou l'autre de ces options de filtrage est évaluée dans les unités linéaires du système de coordonnées de l'entité. Les propriétés autres que les pentes ne sont pas affectées par ce paramètre.
| String |
Sortie dérivée
Nom | Explication | Type de données |
output_feature_class | Entités en entrée mises à jour. | Couche d'entités |
Exemple de code
1er exemple d'utilisation de l'outil AddSurfaceInformation (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.AddSurfaceInformation_3d("points.shp", "my_tin", "Z", "LINEAR")
2e exemple d'utilisation de l'outil AddSurfaceInformation (script autonome)
L'exemple suivant illustre l'utilisation de cet outil dans un script Python autonome.
'''*********************************************************************
Name: AddSurfaceInformation Example
Description: This script demonstrates how to use AddSurfaceInformation
on all 2D feature classes in a target workspace.
*********************************************************************'''
# Import system modules
import arcpy
from arcpy import env
import exceptions, sys, traceback
try:
arcpy.CheckOutExtension("3D")
# Set Local Variables
env.workspace = 'c:/data'
inSurface = 'fgdb.gdb/municipal/terrain'
pyramid = 5
method = "BILINEAR"
# Create list of feature classes
fcList = arcpy.ListFeatureClasses()
if fcList:
for fc in fcList:
desc = arcpy.Describe(fc)
# Determine if the feature is 2D
if not desc.hasZ:
if desc.shapeType == "Polygon":
# Desired properties separated by semi-colons
Prop = "Z_MIN;Z_MAX"
elif desc.shapeType == "Point":
Prop = "Z"
elif desc.shapeType == "Multipoint":
Prop = "Z_MIN;Z_MAX;Z_MEAN"
elif desc.shapeType == "Polyline":
Prop = "LENGTH_3D"
# Execute AddSurfaceInformation
arcpy.ddd.AddSurfaceInformation(fc, inSurface, Prop,
method, 15, 1, pyramid)
print "Completed adding surface information."
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
Informations de licence
- Basic: Requiert 3D Analyst
- Standard: Requiert 3D Analyst
- Advanced: Requiert 3D Analyst