Terrain erstellen (3D Analyst)

Zusammenfassung

Erstellt ein Terrain-Dataset.

Verwendung

  • Der Wert des Parameters Durchschnittl. Punktabstand sollte eine ordnungsgemäße Annäherung der im Terrain verwendeten Daten widerspiegeln, da er zum Definieren der Größe der internen Kacheln des Terrains herangezogen wird, mit denen die Datenanalyse und die Anzeige-Performance optimiert werden. Jede Kachel enthält ungefähr maximal 200.000 Quellen-Höhenpunkte. Wenn die Daten gesammelt wurden, die von einer Position zur anderen erhebliche Unterschiede in den Punktdichten aufweisen, sollte der angegebene Wert den kleineren Abstand favorisieren.

  • Nachdem Sie dieses Werkzeug ausgeführt haben, verwenden Sie Terrain-Pyramidenebene hinzufügen, um die Pyramidendefinition festzulegen, Feature-Class zu Terrain hinzufügen, um auf die Datenquellen zu verweisen, die zur Oberfläche beitragen, und Terrain berechnen (in dieser Reihenfolge), um das Terrain zu erstellen.

Parameter

BeschriftungErläuterungDatentyp
Eingabe-Feature-Dataset

Das Feature-Dataset, in dem das Terrain-Dataset enthalten ist.

Feature Dataset
Ausgabe-Terrain

Der Name des Terrain-Datasets.

String
Durchschnittl. Punktabstand

Der mittlere horizontale Abstand zwischen Datenpunkten, die zum Modellieren des Terrains verwendet werden. Sensor-basierte Messungen wie photogrammetrische, LIDAR- und SONAR-Messungen weisen normalerweise einen bekannten Abstand auf, der verwendet werden sollte. Verwenden Sie die horizontalen Einheiten im Koordinatensystem des Feature-Datasets für den Abstand.

Double
Maximale Übersichtsgröße
(optional)

Die Terrainübersicht ist dem Konzept der Bildminiaturansichten ähnlich. Sie ist die gröbste Darstellung des Terrain-Datasets und die maximale Größe stellt die obere Grenze der Anzahl von Messpunkten dar, die zum Erstellen der Übersicht entnommen werden können.

Long
Konfigurationsschlüsselwort
(optional)

Das Konfigurationsschlüsselwort, das zum Optimieren des Terrain-Speichers in einer Enterprise-Datenbank verwendet wird.

String
Pyramidentyp
(optional)

Gibt die Methode der Punktausdünnung an, die zum Erstellen der Terrain-Pyramiden verwendet wird.

  • KachelungDatenpunkte in der Fläche, die durch eine bestimmte Kachelung für jede Pyramidenebene definiert ist, werden mithilfe des Parameterwertes für Kachelungsmethode ausgewählt. Dies ist die Standardeinstellung.
  • Z-ToleranzDie vertikale Genauigkeit der einzelnen Pyramidenebenen relativ zur vollen Auflösung der Datenpunkte wird angegeben.
String
Kachelungsmethode
(optional)

Gibt an, wie Punkte in der Fläche, die durch die Kachelung definiert ist, ausgewählt werden. Dieser Parameter ist nur anwendbar, wenn Kachelung für den Parameter Pyramidentyp angegeben wird.

  • Z-MinimumDer Punkt mit dem kleinsten Höhenwert wird ausgewählt. Dies ist die Standardeinstellung.
  • Z-MaximumDer Punkt mit dem größten Höhenwert wird ausgewählt.
  • Am nächsten zum Mittelwert gelegener Z-WertDer Punkt, dessen Höhenwert dem Durchschnitt aller Werte am nächsten ist, wird ausgewählt.
  • Minimaler und maximaler Z-WertDie Punkte mit den kleinsten und größten Höhenwerten werden ausgewählt..
String
Methode für sekundäre Ausdünnung
(optional)

Gibt eine zusätzliche Ausdünnung an, die durchgeführt wird, um die Anzahl der Punkte zu reduzieren, die über ebene Flächen verwendet werden, wenn Kachelungspyramiden verwendet werden. Eine Fläche wird als Ebene betrachtet, wenn sich die Höhe von Punkten in diesem Bereich innerhalb des Parameterwertes für Schwellenwert für sekundäre Ausdünnung befindet. Der daraus resultierende Effekt ist auf Pyramidenebenen mit höherer Auflösung deutlicher erkennbar, da kleinere Flächen mit höherer Wahrscheinlichkeit eben sind als größere Flächen.

  • KeinEs wird keine sekundäre Ausdünnung ausgeführt. Dies ist die Standardeinstellung.
  • SchwachEine schwache Ausdünnung wird durchgeführt, wenn lineare Unterbrechungen beibehalten werden sollen (z. B. Gebäudeseiten und Waldgrenzen). Diese Methode wird für Lidar-Daten empfohlen, die sowohl Boden- als auch andere Punkte umfassen. Damit werden die wenigsten Punkte ausgedünnt.
  • MittelEine mittlere Ausdünnung wird durchgeführt, wenn ein Kompromiss zwischen Performance und Genauigkeit gefordert ist. Bei dieser Methode werden nicht so viele Details wie bei der schwachen Ausdünnung beibehalten. Das Ergebnis ist jedoch vergleichbar, wobei insgesamt mehr Punkte eliminiert werden.
  • StarkBei einer starken Ausdünnung werden die meisten Punkte entfernt, wobei jedoch scharf voneinander abgegrenzte Features eher nicht beibehalten werden. Diese Option sollte auf Oberflächen beschränkt werden, deren Gefälle sich nur allmählich ändert. Die starke Ausdünnung eignet sich beispielsweise für Lidar-Daten der nackten Erdoberfläche oder bathymetrische Daten.
String
Schwellenwert für sekundäre Ausdünnung
(optional)

Der vertikale Schwellenwert zur Aktivierung der sekundären Ausdünnung, wenn der Parameter Pyramidentyp auf Kachelung festgelegt ist. Legen Sie den Wert so fest, dass er dem Wert für die vertikale Genauigkeit der Daten entspricht oder größer ist.

Double
Triangulationsmethode
(optional)

Gibt an, ob Bruchkanten-Features in die Terrain-Oberfläche integriert werden sollen, indem deren Segmente so verdichtet werden, dass sie den Delaunay-Triangulationsregeln zum Erstellen einer TIN-Oberfläche entsprechen.

Mit der Delaunay-Triangulation werden Bruchkanten-Features so verdichtet, dass sie die sie umgebenden Punkte enthalten und dass keine langen, dünnen Dreiecke entstehen, die in der Regel bei der Analyse von TIN-basierten Oberflächen zu unerwünschten Ergebnissen führen. Darüber hinaus kann die Natürliche-Nachbarn-Interpolation und die Polygonerstellung nach Thiessen (Voronoi) nur für Delaunay-konforme Triangulationen ausgeführt werden.

Mit einer Constrained Delaunay-Triangulation wird verhindert, dass Bruchkanten-Features verdichtet und Bruchkantensegmente als Kanten in die TIN-Oberfläche integriert werden. Diese Option sollten Sie verwenden, wenn Sie bestimmte Kanten definieren müssen, die nicht von der Triangulation geändert, also in mehrere Kanten aufgeteilt werden dürfen.

  • DelaunayBruchkanten werden verdichtet, um Delaunay-Dreiecke zu erstellen, in denen die sie umgebenden Punkte enthalten sind. Dies ist die Standardeinstellung.
  • Constrained DelaunayBruchkanten werden nicht verdichtet.
String

Abgeleitete Ausgabe

BeschriftungErläuterungDatentyp
Ausgabe-Terrain

Das neue Terrain-Dataset.

Terrain

arcpy.ddd.CreateTerrain(in_feature_dataset, out_terrain_name, average_point_spacing, {max_overview_size}, {config_keyword}, {pyramid_type}, {windowsize_method}, {secondary_thinning_method}, {secondary_thinning_threshold}, {triangulation_method})
NameErläuterungDatentyp
in_feature_dataset

Das Feature-Dataset, in dem das Terrain-Dataset enthalten ist.

Feature Dataset
out_terrain_name

Der Name des Terrain-Datasets.

String
average_point_spacing

Der mittlere horizontale Abstand zwischen Datenpunkten, die zum Modellieren des Terrains verwendet werden. Sensor-basierte Messungen wie photogrammetrische, LIDAR- und SONAR-Messungen weisen normalerweise einen bekannten Abstand auf, der verwendet werden sollte. Verwenden Sie die horizontalen Einheiten im Koordinatensystem des Feature-Datasets für den Abstand.

Double
max_overview_size
(optional)

Die Terrainübersicht ist dem Konzept der Bildminiaturansichten ähnlich. Sie ist die gröbste Darstellung des Terrain-Datasets und die maximale Größe stellt die obere Grenze der Anzahl von Messpunkten dar, die zum Erstellen der Übersicht entnommen werden können.

Long
config_keyword
(optional)

Das Konfigurationsschlüsselwort, das zum Optimieren des Terrain-Speichers in einer Enterprise-Datenbank verwendet wird.

String
pyramid_type
(optional)

Gibt die Methode der Punktausdünnung an, die zum Erstellen der Terrain-Pyramiden verwendet wird.

  • WINDOWSIZEDatenpunkte in der Fläche, die durch eine bestimmte Kachelung für jede Pyramidenebene definiert ist, werden mithilfe des Parameterwertes für windowsize_method ausgewählt. Dies ist die Standardeinstellung.
  • ZTOLERANCEDie vertikale Genauigkeit der einzelnen Pyramidenebenen relativ zur vollen Auflösung der Datenpunkte wird angegeben.
String
windowsize_method
(optional)

Gibt an, wie Punkte in der Fläche, die durch die Kachelung definiert ist, ausgewählt werden. Dieser Parameter ist nur anwendbar, wenn WINDOWSIZE für den Parameter pyramid_type angegeben wird.

  • ZMINDer Punkt mit dem kleinsten Höhenwert wird ausgewählt. Dies ist die Standardeinstellung.
  • ZMAXDer Punkt mit dem größten Höhenwert wird ausgewählt.
  • ZMEANDer Punkt, dessen Höhenwert dem Durchschnitt aller Werte am nächsten ist, wird ausgewählt.
  • ZMINMAXDie Punkte mit den kleinsten und größten Höhenwerten werden ausgewählt..
String
secondary_thinning_method
(optional)

Gibt eine zusätzliche Ausdünnung an, die durchgeführt wird, um die Anzahl der Punkte zu reduzieren, die über ebene Flächen verwendet werden, wenn Kachelungspyramiden verwendet werden. Eine Fläche wird als Ebene betrachtet, wenn sich die Höhe von Punkten in diesem Bereich innerhalb des Parameterwertes für secondary_thinning_threshold befindet. Der daraus resultierende Effekt ist auf Pyramidenebenen mit höherer Auflösung deutlicher erkennbar, da kleinere Flächen mit höherer Wahrscheinlichkeit eben sind als größere Flächen.

  • NONEEs wird keine sekundäre Ausdünnung ausgeführt. Dies ist die Standardeinstellung.
  • MILDEine schwache Ausdünnung wird durchgeführt, wenn lineare Unterbrechungen beibehalten werden sollen (z. B. Gebäudeseiten und Waldgrenzen). Diese Methode wird für Lidar-Daten empfohlen, die sowohl Boden- als auch andere Punkte umfassen. Damit werden die wenigsten Punkte ausgedünnt.
  • MODERATEEine mittlere Ausdünnung wird durchgeführt, wenn ein Kompromiss zwischen Performance und Genauigkeit gefordert ist. Bei dieser Methode werden nicht so viele Details wie bei der schwachen Ausdünnung beibehalten. Das Ergebnis ist jedoch vergleichbar, wobei insgesamt mehr Punkte eliminiert werden.
  • STRONGBei einer starken Ausdünnung werden die meisten Punkte entfernt, wobei jedoch scharf voneinander abgegrenzte Features eher nicht beibehalten werden. Diese Option sollte auf Oberflächen beschränkt werden, deren Gefälle sich nur allmählich ändert. Die starke Ausdünnung eignet sich beispielsweise für Lidar-Daten der nackten Erdoberfläche oder bathymetrische Daten.
String
secondary_thinning_threshold
(optional)

Der vertikale Schwellenwert zur Aktivierung der sekundären Ausdünnung, wenn der Parameter pyramid_type auf WINDOWSIZE festgelegt ist. Legen Sie den Wert so fest, dass er dem Wert für die vertikale Genauigkeit der Daten entspricht oder größer ist.

Double
triangulation_method
(optional)

Gibt an, ob Bruchkanten-Features in die Terrain-Oberfläche integriert werden sollen, indem deren Segmente so verdichtet werden, dass sie den Delaunay-Triangulationsregeln zum Erstellen einer TIN-Oberfläche entsprechen.

Mit der Delaunay-Triangulation werden Bruchkanten-Features so verdichtet, dass sie die sie umgebenden Punkte enthalten und dass keine langen, dünnen Dreiecke entstehen, die in der Regel bei der Analyse von TIN-basierten Oberflächen zu unerwünschten Ergebnissen führen. Darüber hinaus kann die Natürliche-Nachbarn-Interpolation und die Polygonerstellung nach Thiessen (Voronoi) nur für Delaunay-konforme Triangulationen ausgeführt werden.

Mit einer Constrained Delaunay-Triangulation wird verhindert, dass Bruchkanten-Features verdichtet und Bruchkantensegmente als Kanten in die TIN-Oberfläche integriert werden. Diese Option sollten Sie verwenden, wenn Sie bestimmte Kanten definieren müssen, die nicht von der Triangulation geändert, also in mehrere Kanten aufgeteilt werden dürfen.

  • DELAUNAYBruchkanten werden verdichtet, um Delaunay-Dreiecke zu erstellen, in denen die sie umgebenden Punkte enthalten sind. Dies ist die Standardeinstellung.
  • CONSTRAINED_DELAUNAYBruchkanten werden nicht verdichtet.
String

Abgeleitete Ausgabe

NameErläuterungDatentyp
derived_out_terrain

Das neue Terrain-Dataset.

Terrain

Codebeispiel

CreateTerrain – Beispiel 1 (Python-Fenster)

Anhand des folgenden Beispiels wird die Verwendung dieses Werkzeugs im Python-Fenster veranschaulicht.

arcpy.env.workspace = 'C:/data'
arcpy.ddd.CreateTerrain('source.gdb/Redlands', 'Redlands_terrain',  5,
                      50000, '', 'WINDOWSIZE', 'ZMIN', 'NONE', 1)
CreateTerrain – Beispiel 2 (eigenständiges Skript)

Im folgenden Beispiel wird die Verwendung dieses Werkzeugs in einem eigenständigen Python-Skript veranschaulicht.

"""****************************************************************************
Name: Create Terrain from TIN
Description: This script demonstrates how to create a terrain dataset using
             features extracted from a TIN. It is particularly useful in
             situations where the source data used in the TIN is not available,
             and the amount of data stored in the TIN proves to be too large
             for the TIN. The terrain's scalability will allow improved
             display performance and faster analysis. The script is designed
             to work as a script tool with 5 input arguments.
****************************************************************************"""
# Import system modules
import arcpy

# Set local variables
tin = arcpy.GetParameterAsText(0) # TIN used to create terrain
gdbLocation = arcpy.GetParameterAsText(1) # Folder that will store terran GDB
gdbName = arcpy.GetParameterAsText(2) # Name of terrain GDB
fdName = arcpy.GetParameterAsText(3) # Name of feature dataset
terrainName = arcpy.GetParameterAsText(4) # Name of terrain

try:
    # Create the file gdb that will store the feature dataset
    arcpy.management.CreateFileGDB(gdbLocation, gdbName)
    gdb = '{0}/{1}'.format(gdbLocation, gdbName)
    # Obtain spatial reference from TIN
    SR = arcpy.Describe(tin).spatialReference
    # Create the feature dataset that will store the terrain
    arcpy.management.CreateFeatureDataset(gdb, fdName, SR)
    fd = '{0}/{1}'.format(gdb, fdName)
    # Export TIN elements to feature classes for terrain
    arcpy.AddMessage("Exporting TIN footprint to define terrain boundary...")
    boundary = "{0}/boundary".format(fd)
    # Execute TinDomain
    arcpy.ddd.TinDomain(tin, tinDomain, 'POLYGON')
    arcpy.AddMessage("Exporting TIN breaklines...")
    breaklines = "{0}/breaklines".format(fd)
    # Execute TinLine
    arcpy.ddd.TinLine(tin, breaklines, "Code")
    arcpy.AddMessage("Exporting TIN nodes...")
    masspoints = "{0}/masspoints".format(fd)
    # Execute TinNode
    arcpy.ddd.TinNode(sourceTIN, TIN_nodes)
    arcpy.AddMessage("Creating terrain dataset...")
    terrain = "terrain_from_tin"
    # Execute CreateTerrain
    arcpy.ddd.CreateTerrain(fd, terrainName, 10, 50000, "",
                            "WINDOWSIZE", "ZMEAN", "NONE", 1)
    arcpy.AddMessage("Adding terrain pyramid levels...")
    terrain = "{0}/{1}".format(fd, terrainName)
    pyramids = ["20 5000", "25 10000", "35 25000", "50 50000"]
    # Execute AddTerrainPyramidLevel
    arcpy.ddd.AddTerrainPyramidLevel(terrain, "", pyramids)
    arcpy.AddMessage("Adding features to terrain...")
    inFeatures = "{0} Shape softclip 1 0 10 true false boundary_embed <None> "\
             "false; {1} Shape masspoints 1 0 50 true false points_embed "\
             "<None> false; {2} Shape softline 1 0 25 false false lines_embed "\
             "<None> false".format(boundary, masspoints, breaklines)
    # Execute AddFeatureClassToTerrain
    arcpy.ddd.AddFeatureClassToTerrain(terrain, inFeatures)
    arcpy.AddMessage("Building terrain...")
    # Execute BuildTerrain
    arcpy.ddd.BuildTerrain(terrain, "NO_UPDATE_EXTENT")
    arcpy.GetMessages()

except arcpy.ExecuteError:
    print(arcpy.GetMessages())
except Exception as err:
    print(err)

Lizenzinformationen

  • Basic: Erfordert 3D Analyst
  • Standard: Erfordert 3D Analyst
  • Advanced: Erfordert 3D Analyst

Verwandte Themen