LandXML a TIN (3D Analyst)
Resumen
Esta herramienta importa una o más superficies de red irregular de triángulos (TIN) desde un archivo LandXML para TIN de Esri de salida.
Uso
-
Cuando está seleccionado el archivo LandXML, el parámetro TIN a importar se completa con todas las superficies TIN encontradas en el archivo LandXML. Se crea un TIN de Delaunay con límites del archivo LandXML como TIN de Delaunay con límites.
Al crear las secuencias de comandos, los nombres dentro del parámetro tinnames se pueden especificar en forma corta (solo número o solo nombre) para su conveniencia. En vez de"1. Site0445; 2. <unnamed>; 3. <unnamed>; 4. Site_09", puede especificar "1;2;3;4" o "Site0445; Site_09;2;3". La palabra clave <unnamed> no se puede utilizar por sí misma ya que el TIN se debe identificar exclusivamente.
Sintaxis
Parámetro | Explicación | Tipo de datos |
in_landxml_path |
Archivo de entrada LandXML. | File |
out_tin_folder |
La carpeta donde se crearán los TIN de salida. | Folder |
tin_basename |
El nombre base del TIN resultante. Cuando se exportan varios TIN desde el archivo LandXML, el nombre de base se utiliza para definir un nombre único para cada TIN de salida. Si <basename> ya existe, la herramienta no escribirá nada. Si <basename> no existe pero <basename>2 existe, la herramienta creará <basename> y <basename>2_1, en lugar de <basename>2. | String |
tinnames [name,...] (Opcional) | Una o varias superficies TIN de LandXML que se exportará a un TIN de Esri. Cada TIN de LandXML se puede especificar con su nombre o su posición de índice en el archivo LandXML, donde el número 1 representa el primer TIN, el 2 el segundo, y así sucesivamente. | String |
Ejemplo de código
El siguiente ejemplo muestra cómo usar de esta herramienta en la ventana Python:
import arcpy
from arcpy import env
arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.LandXMLToTin_3d("surfaces.xml", "TINs", "_", "1;2")
El siguiente ejemplo muestra cómo usar esta herramienta en una secuencia de comandos independiente de Python:
'''****************************************************************************
Name: LandXMLToTin Example
Description: This script demonstrates how to use the
ListFiles method to collect all LandXML (*.xml) files in a
workspace as input for the Import3DFiles tool.
****************************************************************************'''
# Import system modules
import arcpy
from arcpy import env
import exceptions, sys, traceback
try:
# Obtain a license for the ArcGIS 3D Analyst extension
arcpy.CheckOutExtension("3D")
# Set environment settings
env.workspace = "C:/data"
# Use ListFiles method to grab all xml files (assumedly LandXML files)
landList = arcpy.ListFiles("*.xml")
if landList:
for landFile in landList:
# Set Local Variables
outputFolder = "TINs" # The folder that the TINs will be created in
outputBase = "Madagascar_" # Base name will be applied to all output TINs
grab = "1" # TIN selection can be chosen by enumerated values (e.g. 1;2)
# Execute Import3DFiles
arcpy.LandXMLToTin_3d(landFile, outputFolder, outputBase, grab)
print "Completed creating TIN(s) from {0}.".format(landFile)
else:
"There are no xml files in {0}.".format(env.workspace)
except arcpy.ExecuteError:
print arcpy.GetMessages()
except:
# Get the traceback object
tb = sys.exc_info()[2]
tbinfo = traceback.format_tb(tb)[0]
# Concatenate error information into message string
pymsg = 'PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}'\
.format(tbinfo, str(sys.exc_info()[1]))
msgs = 'ArcPy ERRORS:\n {0}\n'.format(arcpy.GetMessages(2))
# Return python error messages for script tool or Python Window
arcpy.AddError(pymsg)
arcpy.AddError(msgs)