Terrain-Bezugsmaßstab ändern (3D Analyst)

Mit der 3D Analyst-Lizenz verfügbar.

Zusammenfassung

Dient zum Ändern des Bezugsmaßstabs, der mit einer Terrain-Pyramidenebene verknüpft ist.

Verwendung

  • Sie sollten eine Änderung des Bezugsmaßstabs einer Terrain-Pyramide in Betracht ziehen, wenn es zu einer unerwünschten Beeinträchtigung der Performance beim Zeichnen kommt oder eine höhere Verdichtung von Datenpunkten im Anzeigemaßstabsbereich der Pyramide erforderlich ist.

  • Wenn Sie die Auflösung einer vorhandenen Pyramidenebene ändern, muss ggf. eine Pyramidenebene hinzugefügt oder entfernt werden. Hierzu können Sie Terrain-Pyramidenebene hinzufügen oder Terrain-Pyramidenebene entfernen verwenden.

  • Bei Verwendung in einer SDE-Datenbank kann das Eingabe-Terrain nicht als versioniert registriert werden.

Parameter

BeschriftungErläuterungDatentyp
Eingabe-Terrain

Das Terrain-Dataset, das verarbeitet wird.

Terrain Layer
Alter Bezugsmaßstab

Der Bezugsmaßstab einer vorhandenen Pyramidenebene.

Long
Neuer Bezugsmaßstab

Der neue Bezugsmaßstab für die Pyramidenebene.

Long

Abgeleitete Ausgabe

BeschriftungErläuterungDatentyp
Aktualisiertes Eingabe-Terrain

Das aktualisierte Terrain.

Terrain-Layer

arcpy.ddd.ChangeTerrainReferenceScale(in_terrain, old_refscale, new_refscale)
NameErläuterungDatentyp
in_terrain

Das Terrain-Dataset, das verarbeitet wird.

Terrain Layer
old_refscale

Der Bezugsmaßstab einer vorhandenen Pyramidenebene.

Long
new_refscale

Der neue Bezugsmaßstab für die Pyramidenebene.

Long

Abgeleitete Ausgabe

NameErläuterungDatentyp
derived_out_terrain

Das aktualisierte Terrain.

Terrain-Layer

Codebeispiel

ChangeTerrainReferenceScale – Beispiel 1 (Python-Fenster)

Im folgenden Beispiel wird die Verwendung dieses Werkzeugs im Python-Fenster veranschaulicht.

arcpy.env.workspace = 'C:/data'
arcpy.ddd.ChangeTerrainReferenceScale('terrain.gdb/terrainFDS/terrain1', 
                                   1000, 2000)
ChangeTerrainReferenceScale – Beispiel 2 (eigenständiges Skript)

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

'''****************************************************************************
Name: Update Terrain
Description: This script demonstrates how to update a terrain dataset
             with new elevation measurements obtained from Lidar by
             importing LAS files to multipoint features, then appending the
             new points to another multipoint feature that participates in a
             terrain. The terrain's pyramids are modified to optimize its
             draw speed.
****************************************************************************'''
# Import system modules
import arcpy

try:
    # Set environment settings
    arcpy.env.workspace = "C:/data"

    # Set Variables
    inTerrain = "sample.gdb/featuredataset/terrain"
    currentPts = "existing_points"
    lasFiles = ['las/NE_Philly.las',
                'las/NW_Philly.las']
    newPts = 'in_memory/update_pts'
    # Define spatial reference of LAS files using factory code
    # for NAD_1983_StatePlane_Pennsylvania_South
    lasSR = arcpy.SpatialReference(2272)

    arcpy.AddMessage("Converting LAS files to multipoint features...")
    arcpy.ddd.LASToMultipoint(lasFiles, newPts, 1.5, 2, 1,
                              'INTENSITY', lasSR)

    arcpy.AddMessage("Appending LAS points to {0}..."\
                     .format(currentPts))
    arcpy.ddd.AppendTerrainPoints(inTerrain, currentPts, newPts)

    arcpy.AddMessage("Changing terrain pyramid reference scales...")
    arcpy.ddd.ChangeTerrainReferenceScale(inTerrain, 1000, 500)
    arcpy.ddd.ChangeTerrainReferenceScale(inTerrain, 2500, 2000)

    arcpy.AddMessage("Adding terrain pyramid level...")
    arcpy.ddd.AddTerrainPyramidLevel(inTerrain, "", "4 4500")

    arcpy.AddMessage("Changing pyramid resolution bounds for breaklines...")
    arcpy.ddd.ChangeTerrainResolutionBounds(inTerrain, "breaklines", 5, 4)

    arcpy.AddMessage("Building terrain...")
    arcpy.ddd.BuildTerrain(inTerrain)

    arcpy.AddMessage("Completed updates.")

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

Verwandte Themen