3D-Linie mit Multipatch verschneiden (3D Analyst)
Zusammenfassung
Berechnet einen geometrischen Schnittpunkt der Eingabe-Linien- und -Multipatch-Features und gibt die Anzahl der Schnittpunkte zurück. Punkte (Schnittpunkte) und/oder Linien (das Ergebnis aus Eingabelinien, die an Schnittpunkten unterbrochen werden) können optional in die Ausgabe-Feature-Classes aufgenommen werden.
Weitere Informationen zur Funktionsweise von "3D-Linie mit Multipatch verschneiden" (3D Analyst)
Abbildung
Verwendung
-
Als Eingabe sind eine Multipatch-Feature-Class und eine 3D-Line-Feature-Class erforderlich.
Mit dem Werkzeug wird der Schnittpunkt zwischen jeder ausgewählten Linie (oder allen Linien, wenn keine ausgewählt sind) in der Eingabe-Line-Feature-Class und jedem ausgewählten Multipatch (oder allen Multipatches, wenn keine ausgewählt sind) in der Eingabe-Multipatch-Feature-Class ermittelt.
-
Attributwerte aus den Eingabe-Linien-Features können in der optionalen Ausgabe-Line-Feature-Class übernommen werden.
Das Werkzeug generiert auch eine numerische Ausgabe (Ganzzahl), die die Anzahl der gefundenen Schnittpunkte enthält, auch wenn keine Ausgabe-Feature-Class angegeben wird.
Eine, keine oder beide der Ausgabe-Feature-Classes können angegeben werden (d. h. Point- und/oder Line-Feature-Class oder keine von beiden). Es wird nur dann keine verwendet, wenn ein Modell oder Skript und die Ausgabe-Schnittpunktanzahl verwendet werden.
Multipatches müssen nicht geschlossen sein.
Die Ausgabe-Features weisen dreidimensionale Geometrie auf.
-
Die folgenden Felder sind in der optionalen Ausgabe-Point-Feature-Class enthalten:
- OID: OBJECTID des Punktes.
- Shape: Geometrie des Punktes.
- 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 folgenden Felder sind in der optionalen Ausgabe-Line-Feature-Class enthalten:
- OID: OBJECTID des Punktes.
- Shape: Geometrie der Linie.
- LINE_OID: OBJECTID der ursprünglichen Linie, an der der Schnittpunkt gefunden wurde und von der diese neue Linie erzeugt wurde.
- FROM_MP_ID: OBJECTID des Multipatches, das sich mit der ursprünglichen Linie am Anfang dieser neuen Linie überschneidet (-1, wenn kein Multipatch vorhanden ist).
- TO_MP_ID: OBJECTID des Multipatches, das sich mit der ursprünglichen Linie am Ende dieser neuen Linie überschneidet (-1, wenn kein Multipatch vorhanden ist).
- 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.
"3D-Linie mit Multipatch verschneiden" ist ein 3D-Gruppenoperator im Toolset "3D-Features". Weitere Informationen zu Gruppenoperatoren und ihrer Verwendung finden Sie unter Arbeiten mit 3D-Gruppenoperatoren.
Syntax
Parameter | Erläuterung | Datentyp |
in_line_features |
Die Eingabe-Line-Feature-Class oder der Eingabe-Linien-Layer. | Feature Layer |
in_multipatch_features |
Die Eingabe-Multipatch-Feature-Class oder der -Layer. | Feature Layer |
join_attributes (optional) |
Lässt zu, dass alle nicht erforderlichen Felder (anders ausgedrückt, Felder, bei denen es sich nicht um ObjectID- oder Geometriefelder handelt) und Werte aus der Eingabe-Line-Feature-Class in die optionale Ausgabe-Line-Feature-Class kopiert werden.
| String |
out_point_feature_class (optional) |
Die optionale Feature-Class, in die Schnittpunkte eingefügt werden. | Feature Class |
out_line_feature_class (optional) |
Die optionale Feature-Class, in die Linien (Eingabelinien, die an Schnittpunkten unterbrochen werden) eingefügt werden. | Feature Class |
Codebeispiel
Das folgende Skript im Python-Fenster veranschaulicht, wie Sie die Funktion 3D-Linie mit Multipatch verschneiden im unmittelbaren Modus verwenden.
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')
Das folgende Python-Skript veranschaulicht, wie Sie die Funktion 3D-Linie mit Multipatch verschneiden in einem eigenständigen Skript verwenden.
'''**************************************************************************** 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)