Résumé
Crée une zone tampon en 3 dimensions autour des points ou lignes pour produire des entités multipatch sphériques ou cylindriques.
Illustration
Utilisation
La sortie de cet outil sont des entités multipatch fermées, qui peuvent être utilisées dans des calculs volumétriques et d'autres outils de l'opérateur de jeu 3D.
Indiquez une valeur Simplification pour améliorer les performances en présence d'entités linéaires complexes, telles que des courbes intégrant de nombreux sommets.
Cet outil risque de ne pas générer de multipatch fermé pour certaines entités linéaires si la géométrie de la ligne et la distance de la zone tampon produisent des régions superposées avec des sommets denses. En règle générale, il vaut mieux éviter les distances de zone tampon qui risquent d'entraîner la superposition de régions dans la même entité.
Syntaxe
arcpy.ddd.Buffer3D(in_features, out_feature_class, buffer_distance_or_field, {buffer_joint_type}, {buffer_quality}, {simplification_tolerance})
Paramètre | Explication | Type de données |
in_features | Entités ponctuelles ou linéaires à bufferiser. | Feature Layer |
out_feature_class | Multipatch en sortie contenant les zones tampon 3D. | Feature Class |
buffer_distance_or_field | Distance de la zone tampon autour des entités en entrée qui peut être fournie sous la forme d'une distance linéaire ou dérivée d'un champ numérique de la table attributaire de l'entité en entrée. Si la distance de la zone tampon est spécifiée dans un champ en sortie, ses unités de mesure découlent de la référence spatiale de l'entité. Si la distance linéaire est spécifiée comme valeur numérique, les unités de mesure suivantes sont prises en charge :
| Linear Unit; Field |
buffer_joint_type (Facultatif) | Forme de la zone tampon entre les sommets des segments de ligne. Ce paramètre est uniquement valide pour les entités linéaires en entrée.
| String |
buffer_quality (Facultatif) | Nombre de segments permettant de représenter les entités multipatch résultantes. Le nombre par défaut est 20, mais vous pouvez entrer un nombre compris entre 6 et 60. Une valeur de Qualité de la zone tampon supérieure produit des entités 3D plus lisses, mais prolonge également le temps de traitement. | Long |
simplification_tolerance (Facultatif) | Simplifie les lignes en entrée en maintenant leur forme dans le décalage spécifié de sa forme d'origine. La simplification n'est effectuée que si une valeur est spécifiée. Les unités de mesure suivantes sont prises en charge :
| Linear Unit |
Exemple de code
1er exemple d'utilisation de l'outil Buffer3D (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.Buffer3D_3d('lineFC.shp', 'buffer3d.shp', '15 Meters',
'Round', 30, '1 Meters')
2e exemple d'utilisation de l'outil Buffer3D (script autonome)
L'exemple suivant illustre l'utilisation de cet outil dans un script Python autonome.
'''****************************************************************************
Name: Buffer 3D Example
Description: This script demonstrates an application of
the Buffer 3D and Inside 3D tools.
****************************************************************************'''
# Import system modules
import arcpy
from arcpy import env
import exceptions, sys, traceback
try:
# Obtain a license for the ArcGIS 3D Analyst extension
arcpy.CheckOutExtension('3D')
# Set environment settings
env.workspace = 'C:/data'
# Set Local Variables
inFC = 'lineFC.shp'
bufferOut = 'buffer3d.shp'
# Execute Buffer 3D
arcpy.Buffer3D_3d(inFC, bufferOut, '15 Meters', 'Round', '30', '1 Meters')
arcpy.Inside3D_3d(bufferOut, 'survey_pts.shp', 'inside_analysis.dbf')
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