Определить области данных TIN (3D Analyst)

Сводка

Переопределяет область данных (зону интерполяции) поверхности TIN (Triangulated Irregular Network), на основании длины ребер ее треугольника.

Иллюстрация

Иллюстрация инструмента Ограничить области данных TIN

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

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

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

  • Максимальные/минимальные значения длин ребер, полученные на основе характеристик вогнутости в исходных измерениях TIN, можно удалить из области корректных данных TIN с помощью данного инструмента. Треугольники, у которых хотя бы одно ребро больше, чем Максимальная длина ребра, маскируются как области NoData.

    Примечание:

    Значение Максимальная длина ребра (Maximum Edge Length) лучше всего определять исходя из среднего интервала между узлами TIN в пределах областей, считающихся зонами допустимых данных. Используйте значение, которое больше среднего интервала. Для успешного применения данного инструмента следует хорошо знать природу данных, использующихся для построения TIN.

  • Параметр Метод задает треугольники, которые будут обрабатываться.

    Примечание:

    Используйте Ребра периметра (method = "PERIMETER_ONLY" в Python), если вогнутые части данных направлены к внешним конечностям TIN.

Синтаксис

arcpy.3d.DelineateTinDataArea(in_tin, max_edge_length, {method})
ParameterОбъяснениеТип данных
in_tin

Обрабатываемый набор данных TIN.

TIN Layer
max_edge_length

Двухмерное расстояние, определяющее максимальную длину ребра треугольника TIN в области данных TIN. Треугольники, для которых длина одного или нескольких ребер превышает указанное значение, будут считаться не входящими в зону интерполяции TIN, не будут отображаться на картах и не будут использоваться при анализе поверхности.

Double
method
(Дополнительный)

Ребра TIN, оценка которых будет проведена при установке границ области данных TIN.

  • PERIMETER_ONLYВыполняет циклический проход по треугольникам от внешнего экстента TIN вовнутрь и прекращает процесс в случае, если текущая итерация граничных ребер треугольника больше не превышает параметр Максимальная длина ребра. Используется по умолчанию.
  • ALLКлассифицирует весь ряд треугольников TIN по длине ребра.
String

Производные выходные данные

NameОбъяснениеТип данных
derived_out_tin

Обновленная TIN.

Слой TIN

Пример кода

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

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

arcpy.env.workspace = "C:/data"
arcpy.DelineateTinDataArea_3d("elevation", 10, "PERIMETER_ONLY")
DelineateTinDataArea, пример 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

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