Cambiar escala de referencia de terreno (3D Analyst)

Disponible con una licencia de 3D Analyst.

Resumen

Cambia la escala de referencia asociada con un nivel de la pirámide del terreno.

Uso

  • Considerar cambiar una escala de referencia de la pirámide de terreno si experimenta un rendimiento de velocidad de dibujo no deseado o requiere una mayor densificación de puntos de datos en el rango de escala de visualización de la pirámide.

  • Es posible que también sea necesario agregar o quitar un nivel de pirámide al cambiar la resolución de uno existente, lo que se puede hacer al utilizar Agregar pirámide del terreno o Quitar pirámide del terreno.

  • Cuando se usa en una base de datos SDE, el terreno de entrada no se puede registrar como versionado.

Parámetros

EtiquetaExplicaciónTipo de datos
Terreno de entrada

El dataset de terreno que se procesará.

Terrain Layer
Escala de referencia antigua

La escala de referencia de un nivel de pirámide existente.

Long
Escala de referencia nueva

La nueva escala de referencia para el nivel de pirámide.

Long

Salida derivada

EtiquetaExplicaciónTipo de datos
Terreno de entrada actualizado

El terreno actualizado.

Capa de terreno

arcpy.ddd.ChangeTerrainReferenceScale(in_terrain, old_refscale, new_refscale)
NombreExplicaciónTipo de datos
in_terrain

El dataset de terreno que se procesará.

Terrain Layer
old_refscale

La escala de referencia de un nivel de pirámide existente.

Long
new_refscale

La nueva escala de referencia para el nivel de pirámide.

Long

Salida derivada

NombreExplicaciónTipo de datos
derived_out_terrain

El terreno actualizado.

Capa de terreno

Muestra de código

Ejemplo 1 de ChangeTerrainReferenceScale (ventana de Python)

En el siguiente ejemplo se muestra cómo usar esta herramienta en la ventana de Python.

arcpy.env.workspace = 'C:/data'
arcpy.ddd.ChangeTerrainReferenceScale('terrain.gdb/terrainFDS/terrain1', 
                                   1000, 2000)
Ejemplo 2 de ChangeTerrainReferenceScale (script independiente)

En el siguiente ejemplo se muestra cómo usar esta herramienta en una secuencia de comandos independiente de Python.

'''****************************************************************************
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)

Temas relacionados