Z-Informationen hinzufügen (ArcGIS 3D Analyst)
Zusammenfassung
Dient zum Hinzufügen von Informationen zu Höheneigenschaften der Features in einer Z-aktivierten Feature-Class.
Jedes 3D-Shape wird untersucht und die ausgewählten Eigenschaften werden an die Attributtabelle der Eingabe-Feature-Class angefügt. Die Ausgabeoptionen ändern sich auf Grundlage der Geometrie des Features.
Verwendung
-
Die folgenden Z-Eigenschaften sind verfügbar:
- Punkte: Z
- Multipoints: Z-Minimum, Z-Maximum, Z-Mittelwert, Punktanzahl
- Polylinien: Z-Minimum, Z-Maximum, Z-Mittelwert, 3D-Länge, minimale Neigung, maximale Neigung, durchschnittliche Neigung, Stützpunktanzahl
- Polygone: Z-Minimum, Z-Maximum, Z-Mittelwert, 3D-Länge, minimale Neigung, maximale Neigung, durchschnittliche Neigung, Stützpunktanzahl
- Multipatches: Z-Minimum, Z-Maximum, Oberfläche, Volumen, minimale Neigung, maximale Neigung, durchschnittliche Neigung
-
Die Neigung wird als Prozentwert oder Grad zurückgegeben und wird für jeden Geometrietyp, der diese Eigenschaft unterstützt, anders berechnet.
- Neigungswerte für Linien-Features werden für die einzelnen Liniensegmente berechnet:
- Die Mindestneigung wird von dem Segment abgerufen, dessen Wert 0 am nächsten ist bzw. dem horizontalen Grad.
- Die Maximalneigung wird von dem Segment abgerufen, das den höchsten berechneten Wert aufweist.
- Die durchschnittliche Neigung wird abgerufen, indem die durchschnittliche Neigung aller Liniensegmente ermittelt wird, nachdem die einzelnen Segmente nach ihrer 3D-Länge gewichtet wurden. Dies führt zu längeren Segmenten, die einen größeren Einfluss auf kürzere Segmente haben.
- Neigungswerte für Multipatch-Features werden für die einzelnen Dreiecksflächen berechnet.
- Die Mindestneigung wird von der Fläche abgerufen, deren Wert 0 am nächsten ist bzw. dem horizontalen Grad.
- Die Maximalneigung wird von der Fläche mit dem höchsten Wert abgerufen.
- Die durchschnittliche Neigung wird abgerufen, indem die durchschnittliche Neigung aller Dreiecksflächen ermittelt wird, nachdem die einzelnen Segmente nach ihrer dreidimensionalen Fläche gewichtet wurden. Dies führt zu größeren Flächen, die im Gegensatz zu kleineren Flächen einen größeren Einfluss auf den sich ergebenden Wert haben.
- Neigungswerte für Polygon-Features werden entlang den Kanten berechnet, wobei die gleiche Technik wie für Liniensegmente verwendet wird.
- Neigungswerte für Linien-Features werden für die einzelnen Liniensegmente berechnet:
Das Volumen kann nur für geschlossene Multipatches berechnet werden. Bei einem geöffneten Multipatch-Feature wird der Wert 0,0 zurückgegeben. Auf der Solaris-Plattform wird aktuell aufgrund einer Entwurfseinschränkung verhindert, dass mit dem Werkzeug bestimmt werden kann, ob ein Multipatch geschlossen ist. Dies führt dazu, dass beim Berechnen des Volumens von Multipatches davon ausgegangen wird, dass sie geschlossen sind.
Syntax
Parameter | Erläuterung | Datentyp |
in_feature_class |
Die Eingabe-Feature-Class. | Feature Layer |
out_property [out_property,...] | Die Z-Eigenschaften, die der Attributtabelle der Eingabe-Feature-Class hinzugefügt werden. Die folgenden Optionen sind möglich:
| String |
noise_filtering (optional) |
Stellt die Option bereit, kleine Teile der Features von statistischen Berechnungen auszuschließen. Diese Option ist nützlich, um eine gute Einschätzung der maximalen Neigung zu erhalten, da kleine Teile oft extreme Neigungen aufweisen, die möglicherweise die statistischen Ergebnisse verfälschen. Die in den Optionen Fläche oder Länge angegebenen Werte werden verwendet, um diese Teile von Features auszuschließen. Dieser Parameter gilt nicht für Punkt- und Multipoint-Features.
| String |
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.AddZInformation_3d('lines_3D.shp', 'Z_MEAN; LENGTH_3D; AVG_SLOPE',
'NO_FILTER')
Im folgenden Beispiel wird die Verwendung dieses Werkzeugs in einem eigenständigen Python-Skript veranschaulicht:
'''******************************************************************
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)