ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

ArcMap

  • 主页
  • 入门
  • 地图
  • 分析
  • 管理数据
  • 工具
  • 扩展模块

创建 TIN

  • 描述
  • 使用方法
  • 语法
  • 代码示例
  • 环境
  • 许可信息

描述

创建一个不规则三角网 (TIN) 数据集。

使用方法

  • 避免使用地理坐标系创建 TIN,因为以球面坐标表示 XY 单位时,无法有效实施 Delaunay 三角测量规则。

  • 表面要素类型用于定义输入要素将如何构成表面三角化的定义。

    • 可将点要素指定为离散多点,而这些点所提供的数据结点的 Z 值用于表面的三角测量。
    • 可将线要素指定为离散多点和隔断线,表示沿某一表面的位置,该表面的坡度线性不连续,如山脊线、海岸线、路面边缘、建筑物轮廓等。
    • 此外,也可将面要素,以及用于定义数据区的裁剪要素、通过常量 Z 值定义区域的替换要素(如水体)和表示不存在数据的内部区域的擦除要素指定为离散多点和隔断线。
  • TIN 支持的最大结点数主要取决于计算机上连续的可用内存资源。考虑将结点总数限制到 6 百万以下,以保持响应显示性能和总体可用性。三角化网格面越大,越适合使用多分辨率 terrain 数据集进行管理。

  • 如果待创建的 TIN 将用于 ArcGIS Desktop 10.0 之前的版本,可将 TIN 存储版本环境设置设为 PRE_10.0。

语法

arcpy.ddd.CreateTin(out_tin, {spatial_reference}, {in_features}, {constrained_delaunay})
参数说明数据类型
out_tin

将要生成的 TIN 数据集。

TIN
spatial_reference
(可选)

应将输出 TIN 的空间参考设为投影坐标系。不建议使用地理坐标系,因为当以角度单位表示 XY 坐标时无法确保 Delaunay 三角测量,这可能会对基于距离的计算(如坡度、体积和视线)的准确性产生负面影响。

Coordinate System
in_features
[[in_features, height_field, SF_type, tag_value],...]
(可选)

将构成 TIN 定义的输入要素及其相关属性。

  • in_features - 其几何将被导入至 TIN 的要素。
  • height_field - 输入要素的高程源。可以指定输入要素属性表中的任何数值字段以及 Shape.Z(用于 3D 要素的 Z 值)和 Shape.M(用于随几何一同存储的 M 值)。选择 <None> 关键字将导致要素的高程通过周围表面进行插值处理。
  • sf_type - 定义 TIN 表面中输入要素的角色。有效选项取决于输入要素的几何。可将点和多点要素定义为 Mass_Points,用于构成以 TIN 数据结点形式存储的高程值。通过指定 Hard_Line 或 Soft_Line 可将线要素指定为 Mass_Points 或隔断线。通过指定 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 隔断线一同使用的三角测量技术。

  • DELAUNAY —TIN 将使用符合 Delaunay 的三角测量,这可能增密每条隔断线线段以生成多条三角形边。这是默认设置。
  • CONSTRAINED_DELAUNAY —TIN 将使用约束型 Delaunay 三角测量,这会将各线段作为单独的边添加。所有位置均支持 Delaunay 三角测量规则,但沿隔断线处除外,因为它无法增密。
Boolean

代码示例

CreateTin 示例 1(Python 窗口)

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

import arcpy
from arcpy import env

arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.CreateTin_3d("NewTIN", "Coordinate Systems/Projected Coordinate Systems/State Plane/NAD 1983 (Feet)/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
import exceptions, sys, traceback

# 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:
    arcpy.CheckOutExtension("3D")
    # Execute LASToMultipoint
    arcpy.AddMessage("Creating multipoint features from LAS...")
    lasMP = arcpy.CreateUniqueName('lasMultipoint', 'in_memory')
    arcpy.ddd.LASToMultipoint(inLas, LasMP, ptSpacing, class_code, 
                             "ANY_RETURNS", "", sr, inFormat, zfactor)
    # Execute CreateTin
    arcpy.AddMessage("Creating TIN dataset...")
    arcpy.ddd.CreateTin(outTin, sr, "{0} Shape.Z masspoints"\
                       .format(lasMP), "Delaunay")
    # Execute CopyTin
    arcpy.AddMessage("Copying TIN to delineate data boundary...")
    arcpy.ddd.CopyTin(outTin, "{0}_copy".format(outTin))
    # Execute DelineateTinDataArea
    arcpy.AddMessage("Delineating TIN boundary...")
    maxEdge = ptSpacing * 4
    arcpy.ddd.DelineateTinDataArea(outTin, maxEdge, "PERIMETER_ONLY")
    # Execute TinDomain
    arcpy.AddMessage("Exporting data area to polygon boundary...")
    arcpy.ddd.TinDomain(outTin, outBoundary, "POLYGON")
    arcpy.AddMessage("Finished")
    arcpy.CheckInExtension("3D")
        
except arcpy.ExecuteError:
    print arcpy.GetMessages()
except:
    # Get the traceback object
    tb = sys.exc_info()[2]
    tbinfo = traceback.format_tb(tb)[0]
    # Concatenate error information into message string
    pymsg = 'PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}'\
          .format(tbinfo, str(sys.exc_info()[1]))
    msgs = 'ArcPy ERRORS:\n {0}\n'.format(arcpy.GetMessages(2))
    # Return python error messages for script tool or Python Window
    arcpy.AddError(pymsg)
    arcpy.AddError(msgs)

环境

  • 当前工作空间
  • 输出坐标系
  • 范围
  • 地理变换
  • 版本

许可信息

  • Basic: 需要 3D Analyst
  • Standard: 需要 3D Analyst
  • Advanced: 需要 3D Analyst

相关主题

  • 数据管理工具集概览
  • 有关表面的基础知识
  • 表面格式
  • 基于 TIN 的表面概念
  • 什么是 TIN 表面?
  • 有关创建 TIN 表面的基础知识
  • 有关编辑 TIN 表面的基础知识
  • 使用地理处理工具编辑 TIN 要素
  • TIN 表面的地理处理工具

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • Esri 博客
  • 用户大会
  • 开发者峰会
Esri
分享您的想法。
Copyright © 2021 Esri. | 隐私政策 | 法律声明