Сводка
Создает набор данных, содержащий триангуляционную нерегулярную сеть (triangulated irregular network – TIN).
Использование
-
Избегайте создания TIN с использованием географической системы координат, так как правило триангуляции Делоне не может эффективно применяться, когда единицы измерения XY выражены в сферических координатах.
-
Тип объекта поверхности определяет, каким образом входные объекты участвуют в определении триангуляционной поверхности.
- Точечные объекты можно задать в виде облаков точек, что создает узел данных, Z-значения которого используются в триангулировании поверхности.
- Линейные объекты можно задать в виде облаков точек и линий перегиба, которые обозначают местоположения на поверхности вдоль линейных неоднородностей уклона, таких как линии хребтов, береговые линии, бордюры, фундаменты зданий и т.д.
- Полигональные объекты также можно задать в виде облаков точек и линий перегиба, вместе с вырезающими объектами, определяющими область данных, заменяющими объектами, задающими регионы с постоянными Z-значениями (поверхность воды), и стирающими объектами, которые обозначают внутренние области с отсутствующими данными.
-
Максимальное число узлов, поддерживаемое TIN, зависит, в основном, от объема свободных непрерывных ресурсов памяти, доступных на компьютере. Рассмотрите возможность ограничения числа узлов 6 миллионами, чтобы обеспечить достаточную производительность и удобство использования. Более крупные триангулированные поверхности лучше использовать в виде набора данных terrain с несколькими разрешениями.
-
Задайте параметру среды Версия хранения TIN значение PRE_10.0, если создаваемая TIN будет использоваться в версиях ArcGIS Desktop до 10.0.
Синтаксис
arcpy.3d.CreateTin(out_tin, {spatial_reference}, {in_features}, {constrained_delaunay})
Parameter | Объяснение | Тип данных |
out_tin | Набор данных TIN, который будет создан. | TIN |
spatial_reference (Дополнительный) | Пространственная привязка выходной TIN должна быть задана в системе координат проекции. Применение географической системы координат не рекомендуется, поскольку триангуляция Делоне может работать неправильно, если координаты XY выражены в угловых единицах, что может неблагоприятно воздействовать на точность вычислений, основанных на измерении расстояний, как, например, уклон, объем и линия взгляда. | Coordinate System |
in_features [[in_features, height_field, SF_type, tag_value],...] (Дополнительный) | Входные объекты и связанные с ними свойства, которые участвуют в определении TIN.
| Value Table |
constrained_delaunay (Дополнительный) | Определяет, какой метод триангуляции использовать вдоль линий перегиба TIN.
| Boolean |
Пример кода
В следующем примере показано использование этого инструмента в окне Python.
arcpy.env.workspace = "C:/data"
arcpy.CreateTin_3d("NewTIN", "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
# 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:
# Execute LASToMultipoint
lasMP = arcpy.CreateUniqueName('lasMultipoint', 'in_memory')
arcpy.ddd.LASToMultipoint(inLas, LasMP, ptSpacing, class_code,
"ANY_RETURNS", "", sr, inFormat, zfactor)
# Execute CreateTin
arcpy.ddd.CreateTin(outTin, sr, "{0} Shape.Z masspoints"\
.format(lasMP), "Delaunay")
# Execute CopyTin
arcpy.ddd.CopyTin(outTin, "{0}_copy".format(outTin))
# Execute DelineateTinDataArea
maxEdge = ptSpacing * 4
arcpy.ddd.DelineateTinDataArea(outTin, maxEdge, "PERIMETER_ONLY")
# Execute TinDomain
arcpy.ddd.TinDomain(outTin, outBoundary, "POLYGON")
except arcpy.ExecuteError:
print(arcpy.GetMessages())
except Exception as err:
print(err)
Environments
Информация о лицензиях
- Basic: Требуется 3D Analyst
- Standard: Требуется 3D Analyst
- Advanced: Требуется 3D Analyst