TIN 范围 (3D Analyst)

摘要

可创建表示不规则三角网 (TIN) 数据集插值区的线或面要素类。

插图

TIN 范围图示
TIN 范围

使用情况

  • 该工具可用于在一组点周围生成凸包(最小边界多边形)。 如果没有用于定义 TIN 的任何裁剪多边形或擦除多边形,则该范围与凸包等效。

  • 输出几何将被放置在一个要素记录中,可以是单个几何,也可以是多部分 (multipart) 几何,具体取决于内插区的特性。 例如,如果内插区由岛组成或者包含孔洞,生成的几何将为多部分 (multipart)。

    注:

    由于面的内部部分不会包含任何折点,所以 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)

相关主题