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 Esri TIN de salida.
Uso
-
Cuando está seleccionado el archivo LandXML de entrada, 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.
-
Cuando se exporten varios TIN desde el archivo LandXML, al nombre de base se repetirá para definir el nombre de los TIN de salida de la siguiente manera: <basename>, <basename>2, <basename>3, y así sucesivamente. 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 vez de <basename>2.
En modo de secuencia de comandos, los nombres dentro del parámetro tinnames pueden especificarse en forma corta (solo número o solo nombre) para conveniencia. En vez de"1. Site0445; 2. <unnamed>; 3. <unnamed>; 4. Site_09" , puede especificar "1;2;3;4" o bien, "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. | Folder |
tin_basename |
El nombre del prefijo adjunto al TIN de salida. Cuando se exporten varios TIN desde el archivo LandXML, el nombre de base lo seguirá un valor entero que reflejará el orden de las salidas del TIN. | String |
tinnames [tinnames,...] (Opcional) | Cada TIN se puede especificar por un nombre (por ejemplo, "Tin01") o su posición en la lista de TIN de LandXML disponibles (por ejemplo 1 para especificar el primer TIN). La lista de TIN para importar se puede introducir como una cadena de caracteres delimitada por punto y coma(por ejemplo, "1. Tin01; 2. Tin02"),una lista de cadenas de caracteres (por ejemplo, ["1. Tin01", "2. Tin02"]) o una lista de valores numéricos que denotan la posición de los TIN deseados (por ejemplo, [1, 2, 3]). | 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)