ArcGIS for Desktop

  • 文档
  • 合约
  • 支持

  • My Profile
  • 帮助
  • Sign Out
ArcGIS for Desktop

ArcGIS Online

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

ArcGIS for Desktop

全面的专业性 GIS

ArcGIS for Server

面向企业的 GIS

ArcGIS for Developers

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

ArcGIS Solutions

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

ArcGIS Marketplace

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

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

帮助

  • 主页
  • 入门
  • 制图
  • 分析
  • 管理数据
  • 工具
  • 更多...

创建 TIN

需要 3D Analyst 许可。

  • 摘要
  • 用法
  • 语法
  • 代码实例
  • 环境
  • 许可信息

摘要

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

用法

  • 用于表面建模的 TIN 应使用投影坐标系构造。不建议使用地理坐标系,因为当以角度单位表达 XY 坐标时无法确保 Delaunay 三角测量,并且基于距离的计算(如坡度、体积和视线分析),可能会产生令人误解或不正确的结果。

  • 如果输入要素类参数没有清楚的显示出来,则可以考虑重新调整工具对话框的大小。

  • 考虑将从输入要素加载至 TIN 的结点数量限制为几百万以保持足够的可用性和显示性能。TIN 支持的最大结点数视系统中连续的可用内存资源而定。对于 32 位 Windows 平台而言,正常操作条件下,可达到的最大大小通常为 1000 到 1500 万个结点。更大的数据集最好使用 terrain 表示。

语法

CreateTin_3d (out_tin, {spatial_reference}, {in_features}, {constrained_delaunay})
参数说明数据类型
out_tin

将要生成的 TIN 数据集。

TIN
spatial_reference
(可选)

输出 TIN 的空间参考。

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

将引用添加到要在 TIN 中包含的一个或多个要素类中。对于每个要素类,您都需要设置相应的属性以指明如何使用该要素来定义表面。

in_feature_class:要将其要素导入 TIN 的要素类。

height_field:字段,为要素指定高程值的源。可以使用要素属性表中的任何数值字段。如果要素支持 Z 值,可通过选择 Shape.Z 选项读取要素几何。如果没有所需高度,则指定关键字 <无> 来创建 Z-less 要素,其高程将从表面进行内插。

SF_type:表面要素类型定义从要素导入的几何如何合并到表面的三角测量中。当三角化网格面转换为栅格时,具有硬或软标识的选项表示是否要素边表示坡度中或平缓变化中的明显中断。可用的关键字如下:

  • 离散多点 —将导入为结点的高程点。
  • 硬断线或软断线 —强制高度值的隔断线
  • 硬裁剪或软裁剪 —定义 TIN 边界的面数据集
  • 硬擦除或软擦除 — 在 TIN 外部部分中定义多个孔的面数据集
  • 硬替换或软替换 —定义高度恒定的区域的面数据集
  • 硬值填充或软值填充 —根据 tag_value 列中指定的整型字段定义三角形的标签值的面数据集。

tag_value:在表面要素类型设置为值填充选项时使用的来自要素类属性表的整型字段。标签填充用作三角形属性的基本形式,其边界在三角测量中强制为隔断线。默认选项设置为 <无>。

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)

环境

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

相关主题

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

ArcGIS for Desktop

  • 主页
  • 文档
  • 合约
  • 支持

ArcGIS 平台

  • ArcGIS Online
  • ArcGIS for Desktop
  • ArcGIS for Server
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • 内部人员博客
  • 用户大会
  • 开发者峰会
Esri
© Copyright 2016 Environmental Systems Research Institute, Inc. | 隐私政策 | 法律声明