Домен TIN (3D Analyst)

Краткая информация

Создает линейный или полигональный класс пространственных объектов, представляющий зону интерполяции набора данных триангуляционной нерегулярной сети (TIN).

Иллюстрация

Иллюстрация Домен TIN
Домен TIN

Использование

  • Этот инструмент можно использовать для создания выпуклой оболочки (минимального ограничивающего полигона) вокруг набора точек. Если для определения TIN нет вырезающих или стирающих полигонов, то домен эквивалентен выпуклой оболочке.

  • Выходная геометрия размещается в записи одного объекта и может быть цельной либо составной геометрией в зависимости от природы интерполяции. Например, если зона интерполяции состоит из островов или включает отверстия, итоговая геометрия будет составной.

    Примечание:

    3D полигоны могут содержать значения высоты только по периметру объектов, так как внутренние части полигона не будут содержать вершины. При отображении в 3D режиме с заливкой вершины границ произвольно соединяются для построения треугольников, которые используются для отображения. Если полигон не плоский, неважно, расположен ли он горизонтально или с уклоном, заливка не сможет точно отобразить поверхность, находящуюся в его внутренней части. Поэтому рекомендуется рисовать неплоскостные 3D полигоны, не используя символ заливки.

Параметры

ПодписьОписаниеТип данных
Входная TIN

Набор данных TIN, который будет обрабатываться.

TIN Layer
Выходной класс объектов

Класс объектов, который будет создан.

Feature Class
Тип выходного класса пространственных объектов

Тип геометрии выходного класса объектов.

  • LINEВыходными данными будет класс линейных объектов с поддержкой z-значений.
  • POLYGONВыходными данными будет класс полигональных объектов с поддержкой z-значений.
String

arcpy.ddd.TinDomain(in_tin, out_feature_class, out_geometry_type)
ИмяОписаниеТип данных
in_tin

Набор данных TIN, который будет обрабатываться.

TIN Layer
out_feature_class

Класс объектов, который будет создан.

Feature Class
out_geometry_type

Тип геометрии выходного класса объектов.

  • LINEВыходными данными будет класс линейных объектов с поддержкой z-значений.
  • POLYGONВыходными данными будет класс полигональных объектов с поддержкой z-значений.
String

Пример кода

TinDomain, пример 1 (окно Python)

В следующем примере показано использование этого инструмента в окне Python.

arcpy.env.workspace = 'C:/data'
arcpy.ddd.TinDomain('tin', 'tin_domain.shp', out_geometry_type='POLYGON')
TinDomain, пример 2 (автономный скрипт)

В следующем примере показано использование этого инструмента как автономного скрипта 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)

Связанные разделы