标注 | 说明 | 数据类型 |
输入 TIN | 待处理的 TIN 数据集。 | TIN Layer |
输出要素类 | 将生成的要素类。 | Feature Class |
输出要素类类型 | 输出要素类的几何。
| String |
摘要
可创建表示不规则三角网 (TIN) 数据集插值区的线或面要素类。
插图
使用情况
该工具可用于在一组点周围生成凸包(最小边界多边形)。 如果没有用于定义 TIN 的任何裁剪多边形或擦除多边形,则该范围与凸包等效。
输出几何将被放置在一个要素记录中,可以是单个几何,也可以是多部分 (multipart) 几何,具体取决于内插区的特性。 例如,如果内插区由岛组成或者包含孔洞,生成的几何将为多部分 (multipart)。
注:
由于面的内部部分不会包含任何折点,所以 3D 面仅包含沿要素周长的高程值。 在 3D 模式下使用区域填充绘制时,边界折点会随意连接到三角形中以进行渲染。 除非该面是平面(斜平面或水平平面),否则该填充可能不太会准确表示内部表面。 因此,建议不要使用填充符号绘制非平面 3D 面。
参数
arcpy.ddd.TinDomain(in_tin, out_feature_class, out_geometry_type)
名称 | 说明 | 数据类型 |
in_tin | 待处理的 TIN 数据集。 | TIN Layer |
out_feature_class | 将生成的要素类。 | Feature Class |
out_geometry_type | 输出要素类的几何。
| String |
代码示例
下面的示例演示了如何在 Python 窗口中使用此工具。
arcpy.env.workspace = 'C:/data'
arcpy.TinDomain_3d('tin', 'tin_domain.shp', out_geometry_type='POLYGON')
下面的示例演示了如何在独立 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