Polygon zu Multipatch interpolieren (ArcGIS 3D Analyst)
Zusammenfassung
Erstellt aus einer Polygon-Feature-Class anhand eines Rasters, eines Terrains oder einer TIN-Oberfläche zur Oberfläche passende Multipatch-Features.
Die Grenze jedes Polygon-Features wird entlang der Oberfläche abgebildet. Höhen werden mithilfe der linearen Interpolation ermittelt, indem die Referenzpunkterfassung an jedem Eingabestützpunkt und an den Stellen, an denen die Grenzlinie TIN-Dreieckskanten und -Knoten schneidet, erfolgt. Durch diese natürliche Verdichtung wird die vollständige Definition der linearen Oberfläche mithilfe einer minimalen Anzahl von Referenzpunkten erfasst. Anschließend werden alle Knoten innerhalb des Polygons extrahiert. Die Knoten werden in einem neuen speicherresidenten TIN neu trianguliert, und die 3D-Polygongrenze wird als Clip-Polygon umgesetzt. Die Dreiecke dieses neuen TIN werden dann als Streifenfolge extrahiert, die der Definition eines Multipatch-basierten Features dient.
Verwendung
Die 3D-Oberflächendarstellung wird vom resultierenden Multipatch in seiner Geometrie dargestellt. Die Berechnung von planimetrischen Flächen und Oberflächen wird neben anderen Attributen des Eingabe-Polygons in die Ausgabe einbezogen.
-
Sie können die Polygone auch in Multipatches konvertieren, wenn beim dreidimensionalen Rendering von Polygonen, die auf einer Oberfläche drapiert wurden, Anzeigeprobleme auftreten.
-
Der Wert von Maximale Streifenlänge muss mindestens 3 betragen. Mit diesem Parameter wird die maximale Anzahl von Stützpunkten angegeben, die beim Erstellen des Multipatch in einem Dreiecksstreifen zulässig sind. In ArcGIS sind keine bestimmten Größenbeschränkungen oder -voreinstellungen vorgegeben. Dies kann jedoch bei einigen 3D-Grafikkarten der Fall sein, da Dreiecksstreifen zum Rendern direkt in die Anwendungsprogrammierungs-Schnittstelle (API) für 3D-Grafiken geladen werden. Der empfohlene Wertebereich ist 128 bis 2048.
Syntax
Parameter | Erläuterung | Datentyp |
in_surface |
Die Eingabe-TIN- (Triangulated Irregular Network, Unregelmäßiges Dreiecksnetz) oder Eingabe-Terrain-Dataset-Oberfläche. | Terrain Layer; TIN Layer |
in_feature_class |
Die Eingabe-Polygon-Feature-Class. | Feature Layer |
out_feature_class |
Die Ausgabe-Multipatch-Feature-Class. | Feature Class |
max_strip_size (optional) |
Hiermit wird die maximale Anzahl von Punkten zum Erstellen eines einzelnen Dreiecksstreifens bestimmt. Beachten Sie, dass jedes Multipatch in der Regel aus mehreren Streifenlinien besteht. Der Standardwert ist 1.024. | Long |
z_factor (optional) |
Der Faktor, mit dem die Höhenwerte multipliziert werden. Dieser wird in der Regel verwendet, um lineare Z-Einheiten zu konvertieren, sodass sie den linearen XY-Einheiten entsprechen. Der Standardwert ist 1, wodurch die Höhenwerte unverändert bleiben. | Double |
area_field (optional) |
Der Name des Ausgabefeldes, das die planimetrische bzw. die 2D-Fläche der resultierenden Multipatches enthält. | String |
surface_area_field (optional) |
Der Name des Ausgabefeldes, das die planimetrische bzw. die 3D-Fläche der resultierenden Multipatches enthält. Diese Fläche berücksichtigt die Oberflächenunebenheiten und ist immer größer als die planimetrische Fläche, sofern die Oberfläche nicht flach ist, wobei die beiden dann identisch sind. | String |
pyramid_level_resolution (optional) |
Der Z-Toleranzwert oder die Kachelungsauflösung der Terrain-Pyramidenebene, der bzw. die von diesem Werkzeug verwendet wird. Der Standardwert ist 0, also volle Auflösung. | Double |
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.InterpolatePolyToPatch_3d("sample.gdb/featuredataset/terrain", "polygon.shp", "out_multipatch.shp", 1024, 1, "Area", "SArea", 5)
Im folgenden Beispiel wird die Verwendung dieses Werkzeugs in einem eigenständigen Python-Skript veranschaulicht:
'''****************************************************************************
Name: InterpolatePolyToPatch Example
Description: This script demonstrates how to use the
InterpolatePolyToPatch tool.
****************************************************************************'''
# Import system modules
import arcpy
from arcpy import env
arcpy.CheckOutExtension("3D")
# Set environment settings
env.workspace = "C:/data"
# Set Local Variables
inTerrain = "sample.gdb/featuredataset/terrain"
inPoly = "polygon.shp"
outMP = arcpy.CreateUniqueName("out_multipatch.shp")
#Execute InterpolatePolyToPatch
arcpy.InterpolatePolyToPatch_3d(inTerrain, inPoly, outMP, 1024, 1, "Area", "SArea", 5)