不规则三角网(TIN)(转)
来自:http://blog.csdn.net/kikitamoon/article/details/8217641
Ⅰ 数字高程模型(DEM)
地球表面高低起伏,呈现一种连续变化的曲面,这种曲面无法用平面地图来确切表示。于是我们就利用一种全新的数字地球表面的方法—— 数字高程模型 的方法,这种方法已被普遍广泛采用。数字高程模型即DEM(Digital Elevation Model),是以数字形式按一定结构组织在一起,表示实际地形特征空间分布的模型,也是地形形状大小和起伏的数字描述。
DEM有三种主要的表示模型:规则格网模型,等高线模型和不规则三角网。
格网(即GRID)DEM在地形平坦的地方,存在大量的数据冗余,在不改变格网大小情况下,难以表达复杂地形的突变现象,在某些计算,如通视问题,过分强调网格的轴方向。不规则三角网(简称TIN,即Triangulated Irregular Network)是另外一种表示数字高程模型的的方法(Peuker等,1978),它既减少了规则格网带来的数据冗余,同时在计算(如坡度)效率方面又优于纯粹基于等高线的方法。不规则三角网能随地形起伏变化的复杂性而改变采样点的密度和决定采样点的位置,因而它能够避免地形起伏平坦时的数据冗余,又能按地形特征点如山脊,山谷线,地形变化线等表示数字高程特征。
Ⅱ TIN的基本知识
在TIN中,满足最佳三角形的条件为:尽可能的保证三角形的三个角都是锐角,三角形的三条边近似相等,最小角最大化。
TIN 是基于矢量的数字地理数据的一种形式,通过将一系列折点(点)组成三角形来构建。形成这些三角形的插值方法有很多种,例如 Delaunay 三角测量法或距离排序法。ArcGIS 支持 Delaunay 三角测量方法。
TIN 的单位是英尺或米等长度单位,而不是度分秒。当使用地理坐标系的角度坐标进行构建时,Delaunay 三角测量无效。创建 TIN 时,应使用投影坐标系(PCS)。
TIN 模型的适用范围不及栅格表面模型那么广泛,且构建和处理所需的开销更大。获得优良源数据的成本可能会很高,并且,由于数据结构非常复杂,处理 TIN 的效率要比处理栅格数据低。
TIN 通常用于较小区域的高精度建模(如在工程应用中),此时 TIN 非常有用,因为它们允许计算平面面积、表面积和体积。
Ⅲ TIN在ArcGIS中的存储
TIN 表面数据模型由结点(Node)、边(Edge)、三角形(Triangle)、包面(Hull)和拓扑(Topology)组成。
与 coverage 类似,TIN 以文件目录形式存储。但TIN没有关联的 INFO 文件。TIN 目录由七个包含 TIN 表面信息的文件组成。这些文件以二进制格式编码,因此无法通过标准文本显示或编辑程序读取。
TIN 的最大允许大小视连续可用内存资源而定。对于 Win32 系统而言,正常操作条件下,可达到的最大大小为 1000 到 1500 万个结点。出于可用性和性能的考虑,强烈建议始终将此大小限制在几百万。如果超出这一大小,则最好使用 terrain 数据集来表示。
ArcGIS 10 中采用了约束性 Delaunay 三角测量,也就是除了沿隔断线的位置,其他地方都遵守Delaunay准则。
Ⅳ 如何创建TIN
在ArcGIS中,TIN 主要是通过矢量数据、栅格数据、Terrain数据集来创建。
这是最常用的一种方法。可以通过点、线、面来构建TIN,不同的几何类型可以提供不同的表面要素类型(SF_Type),我们一起来了解下不同的 SF_Type。
(1) 离散多点(Mass Point)
离散多点是 TIN 中的主要输入要素,由它们来决定表面的总体形状。
(2) 隔断线(Breakline)
隔断线通常用于呈现自然要素(如山脊线或河流)或建筑要素(如道路)。隔断线有以下两种:硬隔断线与软隔断线。
隔断线可以有高程信息,也可以没有高程信息。
硬隔断线:硬隔断线用于表示表面坡度的不连续性。河流和道路断面可作为硬隔断线包括在 TIN 中。硬隔断线能够捕获表面的突变并能改进 TIN 的显示和分析质量。
软隔断线:软隔断线是不会改变表面局部坡度的线状要素,例如表示研究区范围边界的线等。
(3) 多边形(Polygon)
裁剪多边形:用于定义 TIN 表面的边界。位于裁剪多边形之外的输入数据将从插值和分析操作(例如,等值线或体积计算)中排除。
擦除多边形:位于擦除多边形之内的输入数据,将从插值和分析操作(例如,等值线或体积计算)中排除。
替换多边形:用于将边界及所有内部高度设置为相同的值。可用于对湖泊或者坡度挖掘到水平面以下的区域进行建模。
填充多边形:用于将一个整数属性值分配给位于此填充多边形内部的所有三角形。表面高度不受影响,并且不发生裁剪或擦除操作。
以上多边形也有软硬之分,类似于软硬隔断线用法。
创建 TIN 使用的的工具是Creat TIN,在输入要素列表中,可以为每种要素的角色进行指定。
如果是更新、修改TIN,可以使用工具Edit TIN 工具。
2. 从栅格数据创建
栅格数据可以转换为 TIN,并且可以用于简化地表模型。在ArcGIS中主要是通过 Raster to TIN 工具进行显示。
栅格转 TIN 工作过程:首先根据足量的输入栅格点(像元中心)生成候选 TIN,以便完全覆盖栅格表面的边缘。然后,该工具会逐步改进 TIN 表面,直到符合指定的 Z 容差。这个工具的使用主要有两个参数需要注意:Z Tolerance,Max point。
Z Tolerance :输入栅格与输出 TIN 之间所允许的最大高度差(z 单位)。默认情况下,z 容差是输入栅格 z 范围的 1/10。
Max point :用于控制将在处理过程终止前添加到 TIN 的最大点数。默认情况下,该过程将一直持续到所有点被添加完。
对比如下设置了默认 Z 容差和 500 的Z容差的TIN 效果:
3. 从其他数据创建
(1)将 ArcGIS terrain dataset 数据转成 TIN。使用工具 terrain to TIN。
可使用 terrain 金字塔等级的 z 容差或窗口大小分辨率来决定TIN的精细程度。默认值为 0(z 容差),或全分辨率(窗口大小)。
(2)将 LAS Dataset 转成 TIN,使用工具 LAS Dataset to TIN。可通过一定得细化类型和细化方法生成TIN。
(3)使用工具 LandXML to TIN,将 LandXML 数据转为TIN。什么是 LandXML?在网上找了个连接:点击。
有关 LAS Dataset 和 Terrain Dataset 后面会再整理总结。
Ⅴ 编辑已有 TIN
如果使用矢量数据批量编辑TIN,可以使用工具 Edit TIN,位于ArcToolbox中的3D分析工具箱。
如果需要进行交互式的TIN编辑,可以使用ArcMap中提供的 TIN Editing 工具条。
TIPS :
如果调出TIN Editing工具条后,工具都是灰色的,那是因为没有设置编辑对象。
要编辑的 TIN 必须是 3D Analyst 工具条的下拉菜单中的选定图层。
可见,TIN编辑的功能是依赖于3D分析扩展许可的。
交互式的TIN编辑中有个GP工具没有的功能:
从中心线分级(Grade from centralline ……),可用于向 TIN 表面添加道路、堤坝和类似护堤的要素。需要事先选中某一矢量线要素。
Ⅵ 从TIN中输出几何信息
使用ArcToolbox中的工具可以将TIN中的信息提取为矢量要素。位于3D分析工具箱中的转换工具集下:
1) TIN Domain:获得TIN的范围,可以选择生成线或者面。
2) TIN Edge:生成表示 TIN 边的矢量线要素。0 — A regular edge;1 — A soft edge;2 — A hard edge
3) TIN line: 生成TIN的隔断线。1—Soft breakline 2— Hard breakline
4) TIN Node: 将TIN的节点导出成点要素类,2D、3D要素可选。
5) TIN Polygon Tag: 使用 TIN 中的标签值创建面要素。标签是指:分配给三角形的简单形式的整数属性值。其边界在三角测量中将强化为隔断线。标签以有符号长整型数据形式存储。
6) TIN Triangle: 生成构成TIN的三角形面。并为每个三角形提供山体阴影的坡度、坡向和可选属性以及标签值。
7) TIN to Raster: 将TIN生成栅格数据。可选插值方法、数据类型、数据格式等。
Ⅶ 其他仅适用于TIN的工具
(1)如果使用的10.0之后的版本,TIN的存储版本有区别,可以使用Copy TIN 工具将 TIN 数据转成低版本(10.0之前)的 TIN 数据。
(2)如果需要裁剪TIN的边界,可以使用工具 Delineate TIN Data Area 工具,设置最长边参数,删除 TIN 中的长边。
(3) 如果需要比较两个TIN的差异,使用工具 Compare TIN。
O了,至此有关TIN的一个概况结束喽。
不规则三角网(TIN)(转)的更多相关文章
- 不规则三角网 Delaunay——TIN
http://blog.csdn.net/u010025211/article/details/25032209 知识点一:平面中判断一个点是否在三角形内部. #include <stdio.h ...
- ArcGIS空间分析工具
1. 3D分析 1.1. 3D Features toolset 工具 工具 描述 3D Features toolset (3D 要素工具集) Add Z Information 添加 Z 信息 添 ...
- Geodatabase介绍
一.概述 (1)Geodatabase是什么? ArcGIS操作基于GIS文件格式和存储于地理数据库(Geodatabase)中的地理信息.Geodatabase是ArcGIS的本地数据结构,是用于编 ...
- 3D分析之Functional Surface工具箱(转)
来自:http://blog.csdn.net/kikitamoon/article/details/8195797 1. Add Surface Information(添加表面信息) 向点.线或面 ...
- AE开发概念辨析
樱木 原文 AE开发之概念辨析2,AE开发涉及相关概念,AE开发相关概念 1 AE中的类库 AE总共包括了21个子库,分别是SYSTEM,SYSTEMUI,GEOMETRY,DISPLAY,SERVE ...
- 盘点十大GIS相关算法
1.道格拉斯-普克算法(Douglas–Peucker) 道格拉斯-普克算法(Douglas–Peucker algorithm,亦称为拉默-道格拉斯-普克算法.迭代适应点算法.分裂与合并算法)是将曲 ...
- Matlab绘图基础——散点生成三角网(TIN)
%例一:二维三角网TIN模型的生成 X=rand(10,2)*5; dt=DelaunayTri(X(:,1),X(:,2)); %生成三角网 triplot(dt);hold on; ...
- MATLAB绘制三角网及三维网线
今天博主给大家介绍一些比较常见的可视化操作,绘制三角网及三维网线. 三角网是由一系列连续三角形构成的网状的平面控制图形,是三角测量中布设连续三角形的两种主要扩展形式,同时向各方向扩展而构成网状,优点为 ...
- Visualize Surface by Delaunay Triangulator
Visualize Surface by Delaunay Triangulator eryar@163.com Abstract. Delaunay Triangulation is the cor ...
随机推荐
- (二)GameMaker:Studio ——使用等高图生成3D地形
上一篇,我们讲解了GM中导入模型的方法,这节我们来讲地形. 源文件地址:http://pan.baidu.com/share/link?shareid=685772423&uk=2466343 ...
- 使用C语言实现二维,三维绘图算法(3)-简单的二维分形
使用C语言实现二维,三维绘图算法(3)-简单的二维分形 ---- 引言---- 每次使用OpenGL或DirectX写三维程序的时候, 都有一种隔靴搔痒的感觉, 对于内部的三维算法的实现不甚了解. 其 ...
- 【原】理解Storm拓扑的并行
Storm入门教程 1. Storm基础 Storm Storm主要特点 Storm基本概念 Storm调度器 Storm配置 Guaranteeing Message Processing(消息处理 ...
- eventlet的学习
转自:http://bingotree.cn/?p=281 官方网站:http://eventlet.net/ 之前小秦我写了篇python中协程和yield的文章,这里小秦我再总结一下eventle ...
- NOIP2011 计算系数
1计算系数 给定一个多项式 (ax + by)k ,请求出多项式展开后 x n y m 项的系数. [输入] 输入文件名为 factor.in. 共一行,包含 5 个整数,分别为 a,b,k,n,m, ...
- html中a标签中的onclick和href的使用
1. 链接的 onclick 事件被先执行,其次是 href 属性下的动作(页面跳转,或 javascript 伪链接): 假设链接中同时存在 href 与 onclick,如果想让 href 属性下 ...
- 解决adb问题的方法
The connection to adb is down,and a server error has occured. 在网上找的那个高端方法根本不管用,来,试试我的方法.. 先装个360手机助手 ...
- hive 中出现struct 结构化的问题
如果你使用udf,udaf,udtf中的某一个并且查询日志中出现如下之类的struct错误 java.lang.RuntimeException: Error in configuring objec ...
- Failed to install apk on device timeout
安装应用时遇到下面的错误 Failed to install *.apk on device timeout 在eclipse中,window->prefreences->DDMS-& ...
- iOS多线程拾贝------操作巨人编程
iOS多线程拾贝------操作巨人编程 多线程 基本 实现方案:pthread - NSThread - GCD - NSOperation Pthread 多平台,可移植 c语言,要程序员管理生命 ...