3D-Linie mit Multipatch verschneiden (ArcGIS 3D Analyst)
Zusammenfassung
Bestimmt die Anzahl der geometrischen Schnittpunkte zwischen Linien- und -Multipatch-Features und gibt sie zurück. Punkt-Features, die den Schnittpunkt darstellen, und Linien-Features, die die Eingabelinien darstellen, die an solchen Punkten geteilt sind, können optional in Ausgabe-Feature-Classes geschrieben werden.
Bild
Verwendung
-
2D-Linien-Features werden von diesem Werkzeug nicht unterstützt. Z-aktivierte 3D-Linien-Features sind erforderlich, da die Überschneidungsberechnungen anhand von 3D-Features im euklidischen 3D-Raum durchgeführt werden. 2D-Linien-Features mit Höhendefinitionen, die in einem Attributfeld gespeichert sind, können anhand von Feature zu 3D nach Attribut in 3D konvertiert werden.
Die Anzahl der Schnittpunkte wird als Ganzzahlergebnis im Meldungsfenster zurückgegeben und kann in einem Modell oder Skript verwendet werden, um die Vorbedingungen für nachfolgende Operationen festzulegen.
-
Die Punktausgabe stellt Schnittpunkte zwischen den Eingabe-Linien- und Multipatch-Features dar und enthält die folgenden Attribute:
- LINE_OID – OBJECTID der ursprünglichen Linie, an der der Schnittpunkt gefunden wurde.
- MPATCH_OID – OBJECTID des Multipatches, das sich an dieser Position mit der Linie überschneidet.
- DIST_3D – Der 3D-Abstand an der ursprünglichen Linie, an dem sich der Schnittpunkt befindet.
-
Die optionale Linienausgabe unterteilt Linien-Features an den Schnittpunkten und enthält die folgenden Attribute:
- LINE_OID - OBJECTID der ursprünglichen Linie, von der die neue Linie abgeleitet wurde.
- FROM_MP_ID – OBJECTID des Multipatch-Feature, das den Anfang der Linie schneidet. Mit dem Wert -1 wird angegeben, dass der Anfang der Linie kein Schnittpunkt ist.
- TO_MP_ID – Die OBJECTID des Multipatches, der das Ende der Linie schneidet. Mit dem Wert -1 wird angegeben, dass der Anfang der Linie kein Schnittpunkt ist.Hinweis:
Wenn eine Linie keinen Multipatch schneidet, wird sie direkt in die Ausgabe kopiert, und ihre Felder FROM_MP_ID und TO_MP_ID erhalten die Attributwerte -1.
- DIST_3D – Der 3D-Abstand an der ursprünglichen Linie, an dem sich ein Schnittpunkt befindet, und der den Anfang dieser neuen Linie darstellt.
- LENGTH_3D – Die 3D-Länge dieser neuen Linie. Die Summe der Längen jeder neuen Linie, die von einer ursprünglichen Linie abgeleitet wurde, entspricht der 3D-Länge der ursprünglichen Linie.
Durch die Verwendung der Ausgabe-Line-Feature-Class durch den Parameter Ausgabe-Attribute ist es möglich, in den optionalen Ausgabe-Features auf Attributwerte der ursprünglichen Linien zu verweisen.
Dieses Werkzeug ist ein 3D-Gruppenoperator, der analytische Funktionen für 3D-Features bereitstellt. Weitere Informationen zu Gruppenoperatoren und ihrer Verwendung finden Sie unter Arbeiten mit 3D-Gruppenoperatoren.
Syntax
Parameter | Erläuterung | Datentyp |
in_line_features |
Die Linien-Features, die sich mit Multipatch-Features schneiden. | Feature Layer |
in_multipatch_features |
Die Multipatch-Features, mit denen sich die Linien schneiden. | Feature Layer |
join_attributes (optional) |
Legt fest, ob die Attribute der Eingabe-Linien-Features in der Ausgabe-Line-Feature-Class beibehalten werden.
| String |
out_point_feature_class (optional) |
Optionale Features, die Schnittpunkte zwischen der 3D-Linie und Multipatch darstellen. | Feature Class |
out_line_feature_class (optional) |
Optionale Features, die Eingabe-3D-Linien an den Schnittpunkten mit Multipatch-Features unterteilen. | Feature Class |
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.Intersect3DLineWithMultiPatch_3d('inLine.shp', 'inMultipatch.shp',
'IDS_ONLY', 'outPts.shp', 'outLine.shp')
Im folgenden Beispiel wird die Verwendung dieses Werkzeugs in einem eigenständigen Python-Skript veranschaulicht:
'''****************************************************************************
Name: Intersect3DLineWithMultiPatch Example
Description: This script demonstrates how to
use the Intersect3DLine tool.
****************************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
from arcpy import env
try:
# Obtain a license for the ArcGIS 3D Analyst extension
arcpy.CheckOutExtension('3D')
# Set environment settings
env.workspace = 'C:/data'
# Set Local Variables
inLineFC = 'sample.gdb/lines_3d'
inMP = 'sample.gdb/test_MP'
# Ensure a unique name is produced for output files
outPoint = arcpy.CreateUniqueName('OutPt_3DIntersect', 'sample.gdb')
outLine = arcpy.CreateUniqueName('OutLine_3DIntersect', 'sample.gdb')
# Execute Intersect 3D Line with Multipatch
arcpy.Intersect3DLineWithMultiPatch_3d(inLineFC, inMP, 'IDS_ONLY',
outPoint, outLine)
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)