LandXML в TIN (LandXML To TIN) (3D Analyst)
Резюме
Данный инструмент импортирует поверхности (одну или более) нерегулярной триангуляционной сети (TIN) из файла LandXML в выходные сети TIN Esri .
Использование
-
При выборе входного файла LandXML параметр TIN для импорта (TINs to Import) заполняется всеми поверхностями TIN, найденными в файле LandXML.
TIN из файла LandXML, построенный по методу Делоне с ограничениями, при импорте сохраняет метод построения.
-
Если из файла LandXML экспортируется несколько TIN, то базовое имя будет итерироваться для определения имен выходных сетей TIN следующим образом: <базовое имя>, <базовое имя>2, <базовое имя>3 и т.д. Если <базовое имя> уже существует, инструмент не будет ничего перезаписывать. Если <базовое имя> не существует, но существует <базовое имя>2, то инструмент создаст <базовое имя> и <базовое имя>2_1 вместо имени <базовое имя>2.
В режиме скрипта имена внутри параметра tinnames (имена TIN) могут для удобства указываться в короткой форме (только номер или только имя). Вместо "1. Site0445; 2. <безымянный>; 3. <безымянный>; 4. Site_09", вы можете указать "1;2;3;4" или "Site0445; Site_09;2;3". Ключевое слово <безымянный> не может использоваться само по себе, так как TIN должен иметь уникальную идентификацию.
Синтаксис
Параметр | Объяснение | Тип данных |
in_landxml_path |
Входной файл LandXML. | File |
out_tin_folder |
Папка, в которой будут созданы TIN | Folder |
tin_basename |
Префикс выходной TIN. Если из файла LandXML экспортируется несколько TIN, то к базовому имени будут добавлены целочисленные значения, отражающие последовательность выходных TIN. | String |
tinnames [tinnames,...] (дополнительно) | Каждая сеть TIN может указываться либо по имени (например, "Tin01"), либо по ее позиции в списке доступных TIN в LandXML (например, 1 указывает первый TIN). Список TIN для импорта можно ввести как строку, разделенную точкой с запятой (например, "1. Tin01; 2. Tin02"), список строк (например, ["1. Tin01", "2. Tin02"]) или список численных значений, которые обозначают позиции желаемых TIN (например, [1, 2, 3]). | String |
Пример кода
В следующем примере показано использование этого инструмента в окне Python:
import arcpy
from arcpy import env
arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.LandXMLToTin_3d("surfaces.xml", "TINs", "_", "1;2")
В следующем примере показано использование этого инструмента в автономном скрипте 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)