Résumé
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 :
géométrie des entités Propriétés Z Point
Valeur Z du point.
Multi-points
Nombre de points et valeurs Z minimale, maximale et moyenne de tous les points d'un enregistrement multi-points.
Polyligne et polygone
Nombre de sommets et distance 3D de la ligne ou périmètre du polygone.
Valeur minimale, maximale et moyenne de la valeur Z et pente de la ligne ou périmètre du polygone.
Multipatch
Superficie et volume d'un multipatch fermé.
Valeurs minimale, maximale et moyenne de la valeur Z et pente le long de la surface multipatch.
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 et les périmètres de polygones sont calculés le long de 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 et les périmètres de polygones sont calculés le long de 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
AddZInformation_3d (in_feature_class, out_property, {noise_filtering})
Paramètre | Explication | Type de données |
in_feature_class | Entités en entrée à traiter. | 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) | Valeur numérique facultative utilisée pour exclure des portions d'entités des calculs obtenus. Ce paramètre peut être utile lorsque l'entrée 3D contient des entités relativement petites présentant des pentes extrêmes qui risquent de biaiser les résultats statistiques. Si les unités linéaires de l'entité 3D sont des mètres, la valeur 0,001 exclura les lignes ou les limites de polygone qui mesurent moins de 0,001 mètre. Pour les entités multipatch, la même valeur exclura les sous-parties dont la surface est inférieure à 0,001 mètre carré. Ce paramètre ne s'applique pas aux entités points uniques et multi-points. Le filtre de surface est disponible lorsque l'entrée est une entité multipatch et le filtre de longueur est fourni lorsque l'entrée est une ligne ou un polygone. | String |
Exemple de code
1er exemple d'utilisation de l'outil AddZInformation (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.AddZInformation_3d('lines_3D.shp', 'Z_MEAN; LENGTH_3D; AVG_SLOPE',
'NO_FILTER')
2e exemple d'utilisation de l'outil AddZInformation (script autonome)
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)
Environnements
Informations de licence
- ArcGIS Desktop Basic: Requiert 3D Analyst
- ArcGIS Desktop Standard: Requiert 3D Analyst
- ArcGIS Desktop Advanced: Requiert 3D Analyst