Zusammenfassung
Führt geschlossene, überlappende Multipatch-Features aus einer Eingabe-Feature-Class zusammen.
Abbildung
Verwendung
-
Für diese Analyse ist eine geschlossene Multipatch-Geometrie erforderlich. Mit dem Werkzeug Ist geschlossen 3D kann ermittelt werden, ob eine Multipatch-Feature-Class geschlossene Features enthält, und mit dem Werkzeug Multipatch einschließen können Lücken in Multipatch-Features ausgeschlossen werden.
Multipatch-Features, die überlappende Volumina umfassen, werden durch Schneiden der Hüllen der Features sowie durch Entfernen der redundanten inneren Teile kombiniert. Dieser Vorgang wird iterativ so lange durchgeführt, bis alle Multipatch-Features in der Feature-Class verarbeitet wurden.
Ein Gruppierungsfeld kann genutzt werden, um zu identifizieren, welche Features vereinigt werden sollen (wenn z. B. die Multipatches Gebäudeteile in einer Stadt und mehrere Features ein Gebäude darstellen). Dadurch kann die Performance deutlich erhöht werden, indem die Anzahl der Durchgänge reduziert wird, die das Werkzeug das Dataset durchlaufen muss. Statt ein Feature mit allen anderen Features zu vergleichen, wird es nur mit den Features in der Gruppe verglichen.
Wenn die Optimierung aktiviert ist, versucht das Werkzeug automatisch, die Features in Gruppen zu ordnen, indem der Rahmen für jedes Feature geprüft wird. Wenn ein Gruppierungsfeld angegeben wurde, kann durch Deaktivieren der Optimierung die Werkzeug-Performance erhöht werden. Auch ohne Gruppierungsfeld kann die Optimierung deaktiviert werden, wenn die gewünschte Ausgabe darin besteht, alle überlappenden Features in einem einzigen Multipatch zu vereinigen.
Legen Sie die Anzahl der zu aggregierenden Features mit Bedacht fest, da möglicherweise in der Ausgabe-Feature-Class sehr große und komplexe Features erstellt werden, was zu Darstellungsproblemen führen kann.
Wenn zwei oder mehr Multipatch-Features nur eine Kante oder einen Stützpunkt gemeinsam haben, generiert das Werkzeug eine Warnmeldung. Die Warnmeldung gibt an, dass das Ausgabe-Feature nicht einfach ist und nicht erstellt werden konnte. Die gleiche Meldung wird zurückgegeben, wenn eine Gruppe Multipatches enthält, die kein Volumen bzw. keinen Raum gemeinsam haben.
Es kann optional eine Tabelle erstellt werden, um die Attribute der Quell-Features zu identifizieren, die zum Erstellen jeder einzelnen vereinigten Ausgabe vereinigt wurden.
Syntax
arcpy.ddd.Union3D(in_feature_class, out_feature_class, {group_field}, {disable_optimization}, {output_all}, {out_table})
Parameter | Erklärung | Datentyp |
in_feature_class | Die Multipatch-Features, die vereinigt werden. | Feature Layer |
out_feature_class | Die Ausgabe-Multipatch-Feature-Class, die die aggregierten Features speichert. | Feature Class |
group_field (optional) | Das Feld zum Identifizieren der Features, die zusammen gruppiert werden sollen. | Field |
disable_optimization (optional) | Legt fest, ob die Eingabe-Daten optimiert werden oder nicht. Beim Optimieren werden die Eingabedaten vorbereitet, indem sie gruppiert werden, um die Performance zu verbessern und eindeutige Ausgaben für jeden Satz von überlappenden Features zu erstellen.
| Boolean |
output_all (optional) | Legt fest, ob die Ausgabe-Feature-Class alle Features enthält oder nur diejenigen, die die vereinigten Features überlappen.
| Boolean |
out_table (optional) | Eine Viele-zu-eins-Tabelle, die die Eingabe-Features identifiziert, die zu jeder Ausgabe beitragen. | Table |
Codebeispiel
Union3D – Beispiel 1 (Python-Fenster)
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.Union3D_3d('multipatch.shp', 'union_output.shp', 'GROUP_FIELD',
'DISABLE', 'ENABLE', 'UnionTable.dbf')
Union3D – Beispiel 2 (eigenständiges Skript)
Im folgenden Beispiel wird die Verwendung dieses Werkzeugs in einem eigenständigen Python-Skript veranschaulicht.
'''****************************************************************************
Name: Union3D Example
Description: This script demonstrates how to use the
Union3D tool.
****************************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
from arcpy import env
try:
arcpy.CheckOutExtension('3D')
# Set environment settings
env.workspace = 'C:/data'
# Set Local Variables
inMP = "multipatch.shp"
# Ensure output multipatch has a unique name
outMP = arcpy.CreateUniqueName("union_output.shp")
outTbl = arcpy.CreateUniqueName("UnionTable.dbf")
GroupField = "Type"
optimize = "DISABLE"
solids = "ENABLE"
#Execute Union3D
arcpy.ddd.Union3D(inMP, outMP, GroupField, optimize, solids, outTbl)
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)
Umgebungen
Lizenzinformationen
- Basic: Erfordert 3D Analyst
- Standard: Erfordert 3D Analyst
- Advanced: Erfordert 3D Analyst