Crear terreno (3D Analyst)

Resumen

Crea un dataset de terreno.

Uso

  • El valor del parámetro Espaciado de punto promedio debe reflejar una buena aproximación de los datos que se utilizarán en el terreno, ya que servirá para definir el tamaño de las teselas internas del terreno y que se utilizan para optimizar el análisis de datos y el rendimiento de la visualización. Cada tesela se aproxima para que no tenga más de 200,000 puntos de elevación de origen. Si los datos se han recopilado a densidades significativamente diferentes de una ubicación a otra, el valor especificado debe favorecer el espaciado más pequeño.

  • Después de ejecutar esta herramienta, utilice Agregar nivel de pirámide del terreno para especificar la definición de pirámide, Agregar clase de entidad al terreno para hacer referencia a las fuentes de datos que contribuyen a la superficie y Construir terreno (en ese orden) para completar la construcción del terreno.

Parámetros

EtiquetaExplicaciónTipo de datos
Dataset de entidades de entrada

Dataset de entidades que contendrá el dataset de terreno.

Feature Dataset
Terreno de salida

Nombre del dataset de terreno.

String
Espaciado de punto promedio

Distancia horizontal media entre los puntos de datos que se utilizarán para modelar el terreno. Las mediciones basadas en sensores, como las prospecciones fotogramétricas, de lidar y sonar, normalmente tienen un espaciado conocido que se debería usar. Utilice las unidades horizontales del sistema de coordenadas del dataset de entidades para el espaciado.

Double
Tamaño máximo de visión de conjunto
(Opcional)

La vista general del terreno es similar al concepto de vista en miniatura de la imagen. Es la representación más burda del dataset de terreno y el tamaño máximo representa el límite superior del número de puntos de medición que se pueden muestrear para crear la vista general.

Long
Palabra clave de configuración
(Opcional)

La palabra clave de configuración que se utilizará para optimizar el almacenamiento del terreno en una base datos corporativa.

String
Tipo de pirámide
(Opcional)

Especifica el método de simplificación de puntos que se utilizará para construir las pirámides de terreno.

  • Tamaño de ventanaLos puntos de datos en el área definida por un tamaño de ventana dado para cada nivel de pirámide se seleccionarán utilizando el valor de parámetro Método de tamaño de ventana. Esta es la opción predeterminada.
  • Tolerancia ZSe especificará la precisión vertical de cada nivel de pirámide con respecto a la resolución completa de los puntos de datos.
String
Método de tamaño de ventana
(Opcional)

Especifica cómo se seleccionarán los puntos en el área definida por el tamaño de la ventana. Este parámetro sólo se aplica cuando se especifica el Tamaño de ventana para el parámetro Tipo de pirámide.

  • Z mínimaSe seleccionará el punto que presenta el valor de elevación más pequeño. Esta es la opción predeterminada.
  • Z máximaSe seleccionará el punto que presenta el valor de elevación más grande.
  • Más cercano al valor Z medioSe seleccionará el punto con el valor de elevación más cercano a la media de todos los valores.
  • Z mínimo y máximoSe seleccionarán los puntos con los valores de elevación más pequeños y más grandes.
String
Método de simplificación secundaria
(Opcional)

Especifica la simplificación adicional que se llevará a cabo para reducir el número de puntos que se usan en las áreas planas cuando se utilizan pirámides de tamaño de ventana. Un área se considera plana si las alturas de los puntos de esa área están dentro del valor del parámetro Umbral de simplificación secundario. Su efecto es más evidente en niveles de pirámide de mayor resolución, dado que las áreas más pequeñas tienen más posibilidad de ser planas que las más grandes.

  • NingunoNo se realizará ninguna simplificación secundaria. Esta es la opción predeterminada.
  • SuaveSe realizará una simplificación suave para conservar discontinuidades lineales (por ejemplo, laterales de edificios y límites de bosques). Se recomienda este método para datos de lidar que incluyan puntos de tierra y no tierra. Simplificará el mínimo de puntos.
  • ModeradaSe realizará una simplificación moderada, lo que proporciona un equilibrio entre rendimiento y precisión. Este método no muestra tantos detalles como la simplificación suave, pero los resultados son similares aunque, en general, elimine más puntos.
  • FuerteSe realizará una simplificación fuerte, lo que elimina el máximo de puntos, por lo que es menos probable que conserve entidades bien delineadas. Se debería limitar su uso a aquellas superficies en las que la pendiente tiende a cambiar gradualmente. Por ejemplo, la simplificación fuerte resulta eficaz para datos de lidar de terreno desnudo y batimétricos.
String
Umbral de simplificación secundaria
(Opcional)

El umbral vertical que se utilizará para activar la simplificación secundaria cuando el parámetro Tipo de pirámide se establezca en Tamaño de ventana. Otorgue un valor igual o mayor que la precisión vertical de los datos.

Double
Método de triangulación
(Opcional)

Especifica si las entidades de línea de corte se incorporarán a la superficie de terreno al densificar sus segmentos para que se ajusten a las reglas de triangulación de Delaunay para crear una superficie TIN.

La triangulación de Delaunay densificará las entidades de línea de corte para acomodar los puntos que los rodean de forma que se evite la creación de triángulos largos y finos que generalmente producen resultados no deseados al analizar una superficie basada en TIN. Asimismo, la interpolación de vecinos naturales y la generación de polígonos de Thiessen (Voronoi) solamente se pueden realizar en triangulaciones conformes de Delaunay.

Una triangulación de Delaunay con límites evitará la densificación de entidades de línea de corte, incorporando segmentos de línea de corte como bordes en la superficie TIN. Utilice esta opción si necesita definir explícitamente los bordes que no pueden ser modificados bajo ningún concepto (es decir, divididos en varios bordes) por el triangulador.

  • DelaunayLas líneas de corte se densificarán para construir triángulos de Delaunay que se ajusten a los puntos que las rodean. Esta es la opción predeterminada.
  • Restringida de DelaunayLas líneas de corte no se densificarán.
String

Salida derivada

EtiquetaExplicaciónTipo de datos
Terreno de salida

El nuevo dataset de terreno.

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})
NombreExplicaciónTipo de datos
in_feature_dataset

Dataset de entidades que contendrá el dataset de terreno.

Feature Dataset
out_terrain_name

Nombre del dataset de terreno.

String
average_point_spacing

Distancia horizontal media entre los puntos de datos que se utilizarán para modelar el terreno. Las mediciones basadas en sensores, como las prospecciones fotogramétricas, de lidar y sonar, normalmente tienen un espaciado conocido que se debería usar. Utilice las unidades horizontales del sistema de coordenadas del dataset de entidades para el espaciado.

Double
max_overview_size
(Opcional)

La vista general del terreno es similar al concepto de vista en miniatura de la imagen. Es la representación más burda del dataset de terreno y el tamaño máximo representa el límite superior del número de puntos de medición que se pueden muestrear para crear la vista general.

Long
config_keyword
(Opcional)

La palabra clave de configuración que se utilizará para optimizar el almacenamiento del terreno en una base datos corporativa.

String
pyramid_type
(Opcional)

Especifica el método de simplificación de puntos que se utilizará para construir las pirámides de terreno.

  • WINDOWSIZELos puntos de datos en el área definida por un tamaño de ventana dado para cada nivel de pirámide se seleccionarán utilizando el valor de parámetro windowsize_method. Esta es la opción predeterminada.
  • ZTOLERANCESe especificará la precisión vertical de cada nivel de pirámide con respecto a la resolución completa de los puntos de datos.
String
windowsize_method
(Opcional)

Especifica cómo se seleccionarán los puntos en el área definida por el tamaño de la ventana. Este parámetro solo se aplica cuando se especifica WINDOWSIZE para el parámetro pyramid_type.

  • ZMINSe seleccionará el punto que presenta el valor de elevación más pequeño. Esta es la opción predeterminada.
  • ZMAXSe seleccionará el punto que presenta el valor de elevación más grande.
  • ZMEANSe seleccionará el punto con el valor de elevación más cercano a la media de todos los valores.
  • ZMINMAXSe seleccionarán los puntos con los valores de elevación más pequeños y más grandes.
String
secondary_thinning_method
(Opcional)

Especifica la simplificación adicional que se llevará a cabo para reducir el número de puntos que se usan en las áreas planas cuando se utilizan pirámides de tamaño de ventana. Un área se considera plana si las alturas de los puntos de esa área están dentro del valor del parámetro secondary_thinning_threshold. Su efecto es más evidente en niveles de pirámide de mayor resolución, dado que las áreas más pequeñas tienen más posibilidad de ser planas que las más grandes.

  • NONENo se realizará ninguna simplificación secundaria. Esta es la opción predeterminada.
  • MILDSe realizará una simplificación suave para conservar discontinuidades lineales (por ejemplo, laterales de edificios y límites de bosques). Se recomienda este método para datos de lidar que incluyan puntos de tierra y no tierra. Simplificará el mínimo de puntos.
  • MODERATESe realizará una simplificación moderada, lo que proporciona un equilibrio entre rendimiento y precisión. Este método no muestra tantos detalles como la simplificación suave, pero los resultados son similares aunque, en general, elimine más puntos.
  • STRONGSe realizará una simplificación fuerte, lo que elimina el máximo de puntos, por lo que es menos probable que conserve entidades bien delineadas. Se debería limitar su uso a aquellas superficies en las que la pendiente tiende a cambiar gradualmente. Por ejemplo, la simplificación fuerte resulta eficaz para datos de lidar de terreno desnudo y batimétricos.
String
secondary_thinning_threshold
(Opcional)

El umbral vertical que se utilizará para activar la simplificación secundaria cuando el parámetro pyramid_type se establezca en WINDOWSIZE. Otorgue un valor igual o mayor que la precisión vertical de los datos.

Double
triangulation_method
(Opcional)

Especifica si las entidades de línea de corte se incorporarán a la superficie de terreno al densificar sus segmentos para que se ajusten a las reglas de triangulación de Delaunay para crear una superficie TIN.

La triangulación de Delaunay densificará las entidades de línea de corte para acomodar los puntos que los rodean de forma que se evite la creación de triángulos largos y finos que generalmente producen resultados no deseados al analizar una superficie basada en TIN. Asimismo, la interpolación de vecinos naturales y la generación de polígonos de Thiessen (Voronoi) solamente se pueden realizar en triangulaciones conformes de Delaunay.

Una triangulación de Delaunay con límites evitará la densificación de entidades de línea de corte, incorporando segmentos de línea de corte como bordes en la superficie TIN. Utilice esta opción si necesita definir explícitamente los bordes que no pueden ser modificados bajo ningún concepto (es decir, divididos en varios bordes) por el triangulador.

  • DELAUNAYLas líneas de corte se densificarán para construir triángulos de Delaunay que se ajusten a los puntos que las rodean. Esta es la opción predeterminada.
  • CONSTRAINED_DELAUNAYLas líneas de corte no se densificarán.
String

Salida derivada

NombreExplicaciónTipo de datos
derived_out_terrain

El nuevo dataset de terreno.

Terrain

Muestra de código

Ejemplo 1 de CreateTerrain (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.CreateTerrain_3d('source.gdb/Redlands', 'Redlands_terrain',  5,
                      50000, '', 'WINDOWSIZE', 'ZMIN', 'NONE', 1)
Ejemplo 2 de CreateTerrain (script independiente)

En el siguiente ejemplo se muestra cómo usar esta herramienta en un script independiente de Python.

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

Información de licenciamiento

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

Temas relacionados