Создать TIN (3D Analyst)
Резюме
Создает набор данных, содержащий триангуляционную нерегулярную сеть (triangulated irregular network – TIN).
Использование
-
Сети TIN, используемые для моделирования поверхности, должны быть построены в системах координат проекции. Применение географической системы координат не рекомендуется, поскольку триангуляция Делоне может работать неправильно, если координаты XY выражены в угловых единицах, а расчеты на основе расстояний, например расчеты уклона, объема и линии видимости, могут давать вводящие в заблуждение или неверные результаты.
-
Если параметр Входной класс объектов (Input Feature Class) отображается неправильно, попробуйте изменить размер диалогового окна инструмента.
-
Рассмотрите возможность увеличения числа узлов, загруженных в TIN из входных объектов, на несколько миллионов для обеспечения более высокой производительности и более качественного отображения. Максимальное количество узлов, поддерживаемое TIN, варьируется в зависимости от свободных непрерывных ресурсов памяти системы. Обычно наибольшее достижимое количество узлов при нормальном режиме работы на 32-разрядной платформе Windows составляет от десяти до пятнадцати миллионов. Наборы данных большего размера лучше всего представлять в виде наборов данных Terrain.
Синтаксис
Параметр | Объяснение | Тип данных |
out_tin |
Выходной набор данных TIN. | TIN |
spatial_reference (дополнительно) |
Пространственная привязка выходной сети TIN. | Coordinate System |
in_features [[in_feature_class, height_field, SF_type, tag_value],...] (дополнительно) | Добавьте связи к одному или нескольким классам пространственных объектов, которые будут включены в TIN. Для каждого класса объектов необходимо установить свойства, указывающие, каким образом этот класс используется для определения поверхности. in_feature_class: класс, объекты которого будут импортированы в TIN. height_field: поле, которое определяет источник значений высот для объектов. В таблице атрибутов объекта можно использовать любое числовое поле. Если объект поддерживает z-значения, геометрию объектов можно прочитать, выбрав опцию Shape.Z. Если высота не требуется, укажите ключевое слово <None>, чтобы создать объекты без Z значений, высота которых будет интерполирована на основе поверхности. SF_type: тип объектов поверхности, определяющий, как геометрия, импортированная из объектов, применяется для триангуляции поверхности. Опции с жестким или мягким обозначением определяют, представляют ли ребра объектов при преобразовании триангулированной поверхности в растр четко выраженные перегибы в уклоне или плавное изменение. Доступны следующие ключевые слова:
tag_value: целочисленное поле таблицы атрибутов класса объектов, используемое, когда в качестве типа объекта поверхности устанавливается опция значения заполнения. Заполнение тега применяется как базовая форма атрибуции треугольника, границы которого используются при триангуляции как линии перегиба. Опция по умолчанию: < none >. | Value Table |
constrained_delaunay (дополнительно) | Определяет, какой метод триангуляции использовать вдоль линий перегиба TIN.
| Boolean |
Пример кода
В следующем примере показано использование этого инструмента в окне Python:
import arcpy
from arcpy import env
arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.CreateTin_3d("NewTIN", "Coordinate Systems/Projected Coordinate Systems/State Plane/NAD 1983 (Feet)/NAD 1983 StatePlane California II FIPS 0402 (Feet).prj", "points.shp Shape.Z masspoints", "constrained_delaunay")
В следующем примере показано использование этого инструмента в автономном скрипте Python:
'''****************************************************************************
Name: Define Data Boundary of LAS File
Description: This script demonstrates how to delineate data boundaries of
LAS files with irregularly clustered points. It is intended for
use as a script tool with one input LAS file.
****************************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
# Set local variables
inLas = arcpy.GetParameterAsText(0) #input LAS file
ptSpacing = arcpy.GetParameterAsText(1) # LAS point spacing
classCode = arcpy.GetParameterAsText(2) # List of integers
returnValue = arcpy.GetParameterAsText(3) # List of strings
outTin = arcpy.GetParameterAsText(4) # TIN created to delineate data area
outBoundary = arcpy.GetParameterAsText(5) # Polygon boundary file
try:
arcpy.CheckOutExtension("3D")
# Execute LASToMultipoint
arcpy.AddMessage("Creating multipoint features from LAS...")
lasMP = arcpy.CreateUniqueName('lasMultipoint', 'in_memory')
arcpy.ddd.LASToMultipoint(inLas, LasMP, ptSpacing, class_code,
"ANY_RETURNS", "", sr, inFormat, zfactor)
# Execute CreateTin
arcpy.AddMessage("Creating TIN dataset...")
arcpy.ddd.CreateTin(outTin, sr, "{0} Shape.Z masspoints"\
.format(lasMP), "Delaunay")
# Execute CopyTin
arcpy.AddMessage("Copying TIN to delineate data boundary...")
arcpy.ddd.CopyTin(outTin, "{0}_copy".format(outTin))
# Execute DelineateTinDataArea
arcpy.AddMessage("Delineating TIN boundary...")
maxEdge = ptSpacing * 4
arcpy.ddd.DelineateTinDataArea(outTin, maxEdge, "PERIMETER_ONLY")
# Execute TinDomain
arcpy.AddMessage("Exporting data area to polygon boundary...")
arcpy.ddd.TinDomain(outTin, outBoundary, "POLYGON")
arcpy.AddMessage("Finished")
arcpy.CheckInExtension("3D")
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)