Puffer 3D (ArcGIS 3D Analyst)
Zusammenfassung
Dient zum Erstellen eines 3D-Puffers um Punkt- oder Linien-Features.
Bild
Verwendung
Dient zum Generieren von Kugeln für Punkteingaben und Zylinder-Features für Linieneingaben.
Dient zum Ausgeben geschlossener Multipatch-Features, die für Volumenberechnungen, z. B. mit den 3D-Gruppenoperatoren-Werkzeugen, verwendet werden können. Weitere Informationen zu Gruppenoperatoren und ihrer Verwendung finden Sie unter Arbeiten mit 3D-Gruppenoperatoren..
Durch das Erhöhen der Pufferqualität werden glattere 3D-Features erzeugt, die Verarbeitungszeit verlängert sich jedoch.
Erwägen Sie, einen Wert für Vereinfachung anzugeben, um die Performance bei komplexen Linien-Features, z. B. geschwungenen Linien mit einer großen Anzahl von Stützpunkten, zu verbessern.
Unter Umständen kann mit diesem Werkzeug für bestimmte Linien-Features aufgrund der Geometrie der Linie und des verwendeten Pufferabstands kein geschlossenes Multipatch generiert werden. Vermeiden Sie Pufferdistanzen, die überlappende Puffer innerhalb des gleichen Features verursachen können, und geben Sie unter Umständen für Features, für die keine Ausgabe generiert werden kann, einen kleineren Pufferabstand an.
Syntax
Parameter | Erläuterung | Datentyp |
in_features |
Die Linien- oder Punkt-Features, die gepuffert werden sollen. | Feature Layer |
out_feature_class |
Die Ausgabe-Multipatch-Features, welche die 3D-Puffer darstellen. | Feature Class |
buffer_distance_or_field |
Der Abstand des Puffers um die Eingabe-Features. Dieser kann entweder als linearer Abstand angegeben oder aus einem numerischen Feld in der Attributtabelle des Eingabe-Features abgeleitet werden. Wenn keine Entfernungseinheiten angegeben oder als "Unbekannt" eingegeben werden, wird die lineare Einheit des Raumbezugs der Eingabe-Features verwendet. | Linear Unit; Field |
buffer_joint_type (optional) |
Die Pufferform zwischen den Stützpunkten der Liniensegmente. Dieser Parameter ist nur für Eingabe-Linien-Features gültig.
| String |
buffer_quality (optional) |
Die Anzahl von Segmenten, die zur Darstellung der resultierenden Multipatch-Features verwendet wird. Der Standardwert ist 20. Es kann jedoch jede Zahl im Bereich von 6 bis 60 eingegeben werden. | Long |
simplification_tolerance (optional) | Mit der Vereinfachung werden Stützpunkte von den Eingabelinien entfernt, indem wichtige Stützpunkte beibehalten werden, mit denen die Form der ursprünglichen Linien innerhalb des maximal zulässigen Versatzes definiert wird. Standardmäßig wird eine Vereinfachung nur dann durchgeführt, wenn ein Toleranzwert angegeben ist. Die Vereinfachungstoleranz kann als Zeichenfolge definiert werden, die den numerischen Wert und die gewünschte lineare Maßeinheit (z. B. "1,5 Meter") oder einen numerischen Wert ohne zugeordnete Maßeinheit enthält. In diesem Fall wird standardmäßig die lineare Einheit des horizontalen Raumbezugs der Eingabe verwendet. | Linear Unit |
Codebeispiel
Anhand des folgenden Beispiels wird die Verwendung dieses Werkzeugs im Python-Fenster veranschaulicht:
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')
Im folgenden Beispiel wird die Verwendung dieses Werkzeugs in einem eigenständigen Python-Skript veranschaulicht:
'''****************************************************************************
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)