Создать TIN (3D Analyst)

Сводка

Создает набор данных, содержащий триангуляционную нерегулярную сеть (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.

  • in_features – объект, геометрия которого будет импортирована в TIN.
  • height_field – источник высот для входных объектов. Может быть указано любое числовое поле из таблицы атрибутов входных объектов, а также Shape.Z в качестве Z-значений 3D-объектов и Shape.M в качестве M-значений, сохраненных с геометрией. Если выбрать ключевое слово <None>, то высота объекта будет интерполирована из окружающей поверхности.
  • sf_type – роль входного объекта в определении поверхности TIN. Доступные опции зависят от геометрии входных объектов. Точечные и мультиточечные объекты могут задаваться как Mass_Points, которые вносят значения высот, сохраняемые как узлы TIN-данных. Линейные объекты могут обозначаться как Mass_Points или линии перегиба, путем определения Hard_Line или Soft_Line. Полигональные объекты могут представлять границу интерполяции, если указать Hard_Clip или Soft_Clip, внутренние области с отсутствующими данными, если выбрать Hard_Erase или Soft_Erase, или области постоянной высоты, если задать Hard_Replace или Soft_Replace. Дополнительно, полигоны также могут использоваться для назначения целочисленных атрибутивных значений, если указать Hardvalue_Fill или Softvalue_Fill.
  • tag_field – числовой атрибут, полученный из целочисленного поля атрибутивной таблицы входного объекта, значения которого могут использоваться для ввода базовой формы атрибутов для элементов данных TIN. Определение <None> приведет к тому, что значения тегов задаваться не будут.
Value Table
constrained_delaunay
(Дополнительный)

Определяет, какой метод триангуляции использовать вдоль линий перегиба TIN.

  • DELAUNAYTIN будет использовать соответствующую триангуляцию Делоне, которая позволяет уплотнять каждый сегмент линий перегиба, чтобы создать множество ребер триангуляции. Используется по умолчанию.
  • CONSTRAINED_DELAUNAYTIN будет использовать триангуляцию Делоне с ограничениями, которая будет добавлять каждый сегмент как отдельное ребро. Правила триангуляции Делоне не соблюдаются только вдоль линий перегиба, которые не будут уплотняться.
Boolean

Пример кода

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

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

Информация о лицензиях

  • Basic: Требуется 3D Analyst
  • Standard: Требуется 3D Analyst
  • Advanced: Требуется 3D Analyst

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