Ajouter des informations Z (3D Analyst)
Récapitulatif
Ajoute des informations sur les propriétés d'altitude d'entités dans une classe d'entités prenant en charge les valeurs Z.
Chaque forme 3D est examinée et les propriétés sélectionnées sont ajoutées à la table attributaire de la classe d'entités en entrée. Les options en sortie varient selon la géométrie de l'entité.
Utilisation
-
Les propriétés Z disponibles sont les suivantes :
- Points - Z
- Multipoints - Z min, Z max, Z moyen, nb de points
- Polylignes - Z min, Z max, Z moyen, longueur 3D, inclinaison min., inclinaison max., inclinaison moyenne, nb de sommets
- Polygones - Z min, Z max, Z moyen, longueur 3D, inclinaison min., inclinaison max., inclinaison moyenne, nb de sommets
- multipatch - Z min, Z max, zone surfacique, volume, inclinaison min., inclinaison max., inclinaison moyenne
-
La pente est indiquée sous la forme d'un pourcentage ou d'un degré, et est calculée différemment selon le type de géométrie prenant en charge cette propriété.
- Les valeurs de pente des entités linéaires sont calculées pour chaque segment de 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 moyenne de la pente de tous les segments de ligne après pondération de chaque segment par sa longueur 3D. Les segments les plus longs ont donc une plus grande influence sur les segments les plus courts.
- Les valeurs de pente des entités multipatch sont calculées pour chaque face de triangle.
- La pente minimale provient de la face dont la valeur est la plus proche de 0, ou du degré horizontal.
- La pente maximale provient de la face présentant la plus grande valeur.
- La pente moyenne provient de la moyenne de la pente de toutes les faces du triangle après pondération de chaque segment par sa surface tridimensionnelle. Les plus grandes surfaces ont donc plus d'influence sur la valeur obtenue que les plus petites surfaces.
- Les valeurs de pente des entités surfaciques sont calculées avec les tronçons à l'aide de la même technique que pour les segments de ligne.
- Les valeurs de pente des entités linéaires sont calculées pour chaque segment de ligne :
Le volume ne peut être calculé que pour les multipatchs fermés. Une entité multipatch ouverte renvoie une valeur de 0,0. Sur la plate-forme Solaris, la limitation de création empêche actuellement l'outil de déterminer si un multipatch est fermé, ce qui entraîne le calcul de mesures de volume pour tous les multipatchs en partant du principe qu'ils sont fermés.
Syntaxe
Paramètre | Explication | Type de données |
in_feature_class |
La classe d'entités en entrée. | Feature Layer |
out_property [out_property,...] | Propriétés z qui sont ajoutées à la table attributaire de la classe d'entités en entrée. Les options disponibles sont les suivantes :
| String |
noise_filtering (Facultatif) |
Vous permet d'exclure des petites portions d'entités d'après des calculs statistiques. Cette option permet d'obtenir de bonnes évaluations de pente maximale, car les petites portions présentent souvent des pentes extrêmes, qui risquent de biaiser les résultats statistiques. Les valeurs des options Surface ou Longueur permettent d'exclure ces portions d'entités. Ce paramètre ne s'applique pas aux entités points uniques et multi-points.
| String |
Exemple de code
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.AddZInformation_3d('lines_3D.shp', 'Z_MEAN; LENGTH_3D; AVG_SLOPE',
'NO_FILTER')
L'exemple suivant illustre l'utilisation de cet outil dans un script Python autonome :
'''******************************************************************
Name: AddZInformation Example
Description: This script demonstrates AddZInformation on all
z-aware features in a target workspace.
******************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
from arcpy import env
try:
arcpy.CheckOutExtension('3D')
# Set environment settings
env.workspace = 'C:/data'
# Create list of feature classes
fcList = arcpy.ListFeatureClasses()
if fcList:
for fc in fcList:
desc = arcpy.Describe(fc)
if desc.hasZ:
# Set Local Variables
noise = 'No_Filter'
if desc.shapeType == 'Polygon':
Prop = ['Z_MIN', 'Z_MAX', 'VERTEX_COUNT']
elif desc.shapeType == 'Point':
Prop = 'Z'
elif desc.shapeType == 'Multipoint':
Prop = ['Z_MIN', 'Z_MAX', 'Z_MEAN']
elif desc.shapeType == 'Polyline':
Prop = 'LENGTH_3D'
print 'Completed adding Z information.'
# Execute AddZInformation
arcpy.AddZInformation_3d(inFC, Prop, noise)
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)