复制 TIN (3D Analyst)

摘要

创建不规则三角网 (TIN) 数据集的副本。

使用情况

  • 可考虑使用此工具来维护将用于后续编辑修改的 TIN 数据集的存档副本。

  • 如果使用当前版本规范创建的 TIN 需用于 10.0 之前发布的 ArcGIS 版本的向后兼容应用程序,可考虑使用此工具的 10.0 之前版本选项。

  • 如果希望将此工具的增强功能应用到向后兼容的 TIN 数据集中,可考虑使用此工具的当前选项。当前 TIN 版本支持以下对应于 10 之前版本的增强功能:

    • 附加空间参考信息
    • 约束型 Delaunay 三角测量,通过使三角形与隔断线边保持一致,强制三角仪以避免隔断线增密来节省存储空间
    • 结点源信息用于指示点是来自输入数据还是由三角仪引入的信息
    • 边标签值的持久性

参数

标注说明数据类型
输入 TIN

将要复制的 TIN。

TIN Layer
输出 TIN

将要生成的 TIN 数据集。

TIN
版本
(可选)

输出 TIN 的版本。

  • CURRENT当前 TIN 版本,支持约束型 Delaunay 三角测量、增强的空间参考信息以及结点源和边标签值的存储。生成的 TIN 不会向后兼容 10.0 之前的 ArcGIS 版本。这是默认设置。
  • PRE_10.0TIN 会向后兼容 10.0 之前的 ArcGIS 版本,且仅支持符合 Delaunay 的三角测量。
String

arcpy.ddd.CopyTin(in_tin, out_tin, {version})
名称说明数据类型
in_tin

将要复制的 TIN。

TIN Layer
out_tin

将要生成的 TIN 数据集。

TIN
version
(可选)

输出 TIN 的版本。

  • CURRENT当前 TIN 版本,支持约束型 Delaunay 三角测量、增强的空间参考信息以及结点源和边标签值的存储。生成的 TIN 不会向后兼容 10.0 之前的 ArcGIS 版本。这是默认设置。
  • PRE_10.0TIN 会向后兼容 10.0 之前的 ArcGIS 版本,且仅支持符合 Delaunay 的三角测量。
String

代码示例

CopyTin 示例 1(Python 窗口)

下面的示例演示了如何在 Python 窗口中使用此工具。

arcpy.env.workspace = "C:/data"
arcpy.ddd.CopyTin("elevation", "elevation_copy", "CURRENT")
CopyTin 示例 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)

相关主题