[ArcGIS] 空间分析(四) 三维分析
目录
创建表面
表面模型通过对区域内不同位置的点进行采样,并对采样点插值生成表面,以实现对真实表面的近似模拟
数据格式:规则空间格网(栅格模型)、不规则三角网(TIN模型)
创建表面模型主要有两种方法:插值法、三角测量法
栅格表面
插值:利用有限数目的样本来估计未知样本点值的一种方法
操作:[3D Analyst 工具]–>[栅格插值]–>插值方法选择
方法 | 介绍 | 优缺点 |
---|---|---|
反距离权重插值(Inverse distance weighted) | 假设每个采样点都有局部影响,并且这种影响与距离大小成反比 | 适用于变量影响随距离增大而减少的情况 |
克里金法(Kriging) | 假设采样点间的距离和方向可反映一定的空间关联,并用它们来解释空间变异(使用一定的数学函数) | 适用于已知数据含距离和方向上的偏差 |
自然邻域法(Natural Neighborhood) | 类似于反距离权重法,是一种权平均算法。对每个样本点做Delauney(泰森)三角形,选择最近的点形成一个凸集,然后利用所占面积的比率来计算权重 | 适用于样本点分布不均的情况 |
样条函数法(Spline) | 将样本点拟合光滑曲面,且其曲率最小。通过一定的数学函数对采样点周围的特定点进行拟合,且结果通过所有采样点 | 适用于渐变的表面属性,如高程、水深、污染聚集度等 不适合在短距离内属性值有较大变化的地区,那样估值结果往往会偏大 |
地形转栅格 | 使用输入的点、线、面要素插值成栅格表面,并保证:①地形结构连续②准确呈现输入等值线数据中的山脊和河流 | 专门用于创建水文地貌关系正确的数学高程模型(DEM) |
TIN表面
TIN通常是从多种矢量数据源中创建。不要求所有要素都具有Z值,但有一些要素必须有Z值。
同时,这些用以创建TIN的输入要素还可以包含整数属性值,并且这些属性值也将在输出的TIN要素中保留。
名称 | 介绍 | 操作 | |
---|---|---|---|
要素 转 TIN |
点集 | TIN基本输入要素,决定TIN表面的基本形状 | [3D Analyst 工具]–>[TIN管理]–>[创建TIN] ①in feature class:用于构造TIN的输入要素名称 ②height field:选择则具有高程值的字段 ③SF type:定义要素以何种类型参加构TIN,包括离散多点、阻断线或多边形 ④Tag field:标签字段。若使用该字段,则面的边界将被强化为隔断线,且这些内部的三角形会将标签值作为属性 ⑤约束型Delaunay(可选):不选,三角测量将完全遵循Delaunay规则,即隔断线将由软件进行增密,导致一条输入个隔断线线段将形成多条三角形边;若选中,Delaunay三角测量将被约束,不会对隔断线进行增密,并且每条隔断线线段都作为一条单边添加 |
隔断线 | ①硬隔断线:表面上突然变换的特征线,如山脊线、悬崖及河道 ②软隔断线:添加在TIN表面上用以表示线性要素但并不改变表面形状的线,如当前分析区域的边界 |
||
多边形 | ①裁剪多边形:定义插值边界,处于裁切多边形之外的输入数据将不参与插值与分析操作 ②删除多边形:与裁剪多边形不同之处在于多边形之内的输入数据将不参与插值与分析操作 ③替换多边形:对边界与内部高度设置相同值,可用来对湖泊或斜坡上地面为平面的开挖洞建模 ④填充多边形:对落在填充多边形内所有的三角形赋予整数属性值。表面的高度不受影响,也不进行裁切或删除 |
||
TIN 转 TIN |
编辑TIN,再添加要素实现对已有模型的改进 | [3D Analyst 工具]–>[TIN管理]–>[编辑TIN] 需要设置相应的属性指明如何使用该要素来定义表面 属性如上①-⑤ |
|
栅格 转 TIN |
创建表面偏移输入栅格不超过指定Z容差的不规则三角网 |
[3D Analyst 工具]–>[转换]–>[由栅格转出]–>[栅格转TIN] ①Z容差(可选):栅格与TIN之间所允许的最大高度差,默认为输入栅格的z范围的1/10 ②最大点数(可选):处理过程终止前添加到TIN的最大点数。默认为所有点被添加完 ③Z因子:转换过程中高程需要乘以的系数 |
|
TIN 转 栅格 |
有时需要将TIN转换成栅格表面,或者需要从TIN中提取坡度、坡向等地形因子 | [3D Analyst 工具]–>[转换]–>[由TIN转出]–>[TIN转栅格] ①方法(可选):LINEAR线性插值法;NATURAL_NEIGHBORS自然领域插值法 ②采样距离:OBSERVATIONS输出栅格的最长尺寸上的像元数;CELLSIZE输出栅格的像元数 ③Z因子(可选):输出时高度需要乘以的系数,用于统一x,y,z单位 |
地形数据集(Terrain)
是什么
Terrain数据集是一种多分辨率的基于TIN的表面数据结构,它是基于作为要素存储在地理数据库中的测量值构建而成的。
与拓扑相似,Terrain具有参与要素类和规则:
- 通过数据源(激光雷达或声呐)创建的3D离散多点的多点要素类
- 在摄影测量工作站使用立体影像创建的3D点和线要素类;
- 用于定义Terrain数据集界限的研究区域边界
工作机制
地理数据库中的Terrain数据集使用原始要素类,而不是实际地将表面存储为栅格或TIN。相反,它会对数据进行组织以获得较快的检索速度,并会动态生成TIN表面。
在组织过程中,会创建Terrain“金字塔”,用于只从数据库中快速检索构建具有所需细节层次(LOD)的给定感兴趣区域(AOI)表面所需的数据。可以相对于当前显示比例使用适当的金字塔等级,也可以在分析功能中由用户进行选择,以便使用适当的分辨率等级来满足精度要求。
意义
- Terrain数据集及其支持的工具集合
使得基于矢量的表面测量值的存储和维护变得容易,而且还能够使用从这些测量值生成的表面。 - 所提供的地理处理功能
用于将数据从外部源加载到地理数据库要素类中 - 编辑工具和地理数据库工具
用于维护和更新随时间变换的数据 - 交互显示和查询工具
可以浏览和使用Terrain表面。可以基于感兴趣区域(AOI)和细节层次(LOD)从Terrain中提取TIN和栅格
构建Terrain数据集
- 使用要素数据集创建Terrain
[3D Analyst 工具]–>[Terrain管理]–>[创建Terrain] - 添加Terrain金字塔等级
[3D Analyst 工具]–>[Terrain管理]–>[添加Terrain金字塔等级] -
向Terrain添加要素类
[3D Analyst 工具]–>[Terrain管理]–>[向Terrain添加要素类]。添加的要素类必须与Terrain数据集位于同一个要素数据集中设置的属性名 介绍 in_feature_class 添加至Terrain数据集的输入要素类的名称 height_field 高度值所在的字段 SF_type 表面要素类型 组 是主题相似的数据,表示相同的地理要素,但细节层次程度不同 min_resolution、max_resolution 以折线或多边形等形式添加的要素类,用于界定在表面中实施各要素时所处的金字塔等级的范围 概貌 缩放到能够显示Terrain数据集整个范围时所绘制的内容。适用于线和面类型的数据,一般情况下仅将那些必须在概貌中呈现的要素设置为True 嵌入式 只能嵌入多点要素集,它们包含在Terrain数据集中,在Catalog中看不见,可通过Terrain数据集的相关工具访问和修改它 embedded_fields 如果嵌入了多点要素类,并通过“LAS转多点”工具为该类创建了LAS(激光雷达)属性,在此处可以指定这些属性 锚点 为点要素指定了锚点后,这些要素在Terrain数据集的所有金字塔等级中不会被过滤或者细化掉,这些点将保持不变 -
构建Terrain
[3D Analyst 工具]–>[Terrain管理]–>[构建Terrain]
更新范围:NO_UPDATE_EXTENT原先的范围;UPDATE_EXTENT重新计算Terrain数据集的空间范围
表面分析
表面模型有:栅格、TIN、Terrain数据集表面
分析方法 | 操作 | 介绍 |
---|---|---|
计算表面积与体积 | [3D Analyst 工具]–>[功能性表面]–>[表面体积] | 得到:表面最大值、平面面积、表面面积、体积 (比较表面积与其二维底面积可获得表面糙率指数或表面的坡度,两者的差异越大,意味着表面越粗糙) |
坡度与坡向的计算 | [3D Analyst 工具]–>[Terrain和TIN表面]–>[表面坡度] | TIN表面上的坡度与栅格表面有所不同,构成三角网的每一个三角形构成一个平面,表面上某一点必处于某一三角形 |
坡向的计算 | [3D Analyst 工具]–>[Terrain和TIN表面]–>[表面坡向] | TIN表面上某点的坡向即指该点所处的三角形面的坡向 |
提取断面 | 主菜单空白处–>[3D Analyst 工具条]–>[线插值工具]创建线–>创建剖面图 | 剖面图表示了沿表面上某条线前进时表面高程变化的情况 |
表面阴影 | [3D Analyst 工具]–>[栅格表面]–>[山体阴影] | 计算表面阴影。通过阴影建模工具(工具参数中选中“模拟阴影”),阴影区的DN值被赋值为0,根据此数据可做阴影二值图 |
3D集合运算
3D集合运算符是一组地理处理工具,能够在ArcGIS中对3D要素进行几何比较。它可以用于研究和确定各3D要素之间的关系。
分析方法 | 操作 | 介绍 |
---|---|---|
3D邻近 | [3D Analyst 工具]–>[3D要素]–>[3D邻近] | 在搜索半径范围内,确定输入要素中的每个要素与邻近要素中的最近与要素之间的距离 |
3D内部 | [3D Analyst 工具]–>[3D要素]–>[3D内部] | 对每个要素进行判定来确定它是否落在多面体的内部 |
3D差异 | [3D Analyst 工具]–>[3D要素]–>[3D差异] | A-A∩B 首先计算两个多面体的几何交集,然后从一个要素类中剪除另一个要素类的所有体积 |
3D相交 | [3D Analyst 工具]–>[3D要素]–>[3D相交] | A∩B 计算出由这些要素定义的两个体积的几何交集 |
3D线与多面体相交 | [3D Analyst 工具]–>[3D要素]–>[3D线与多面体相交] | 计算输入线及多面体要素的几何交集,并返回交点数 |
3D联合 | [3D Analyst 工具]–>[3D联合] | A∪B 计算重叠多面积的几何交集,然后将多面体聚合在一起,并将结果生成新的要素和表 |
可视性分析
分析方法 | 操作 | 介绍 |
---|---|---|
通视分析 | 主菜单空白处–>[3D Analyst 工具条]–>[视线瞄准线对话框] 红色不可视、绿色可视 |
表面上两点间的一条直线,沿直线的表面时可见的还是遮挡 |
视点分析 | [3D Analyst 工具]–>[栅格表面]–>[视点分析] | 指定观察点,分析每个像元是否对观察点可见 |
视域分析 | [3D Analyst 工具]–>[栅格表面]–>[视域] | 计算地形表面上单点视域或者多个观测点(点或线)的公共视域 |
其他:
视线分析:http://blog.csdn.net/summer_dew/article/details/78492226
天际线分析:http://blog.csdn.net/summer_dew/article/details/78500775
ArcScene三维可视化
要素的立体显示
三种显示方式:
- 使用属性设置图层的基准高程
点击要素图层–>属性–>图层属性–>基本高程–>使用常量值或表达式–>选择高程的字段 - 在表面上叠加要素图层设置基准高程
如果有地形表面或其他栅格表面,[基本高度]–>[从表面获取的高程]–>[浮动在自定义表面上]–>选择表面 - 要素拉伸显示(房子的楼层)
[图层属性]–>[拉伸]–>[拉伸图层中的要素]–>字段
设置场景属性
可设置的属性
- 场景坐标系统
- 垂直夸大
- 使用动画旋转
- 设置场景背景颜色
- 改变场景的光照
- 改变场景范围
飞行动画
[工具栏右键]–>[动画]
数据转换
二维要素三维化
由某一表面获取要素的高程属性值
[3D Analyst 工具]–>[功能性表面]–>[插值shape]
由要素的某一属性值作为高程值
[3D Analyst 工具]–>[3D 要素]–>[依据属性实现要素转3D]
3D图层转要素类
例子:由2D面要素创建建筑物多面体
链接:http://blog.csdn.net/summer_dew/article/details/78500775#建筑物数据准备
步骤:
1. 2D面要素,一个”Height”字段表示该面的高程
2. 这时候Building即为一个3D的图层,使用工具将3D图层转换为要素类
表面数据的矢量转换
栅格数据的矢量转换
可以将表面转化为点、线或多边形要素以供要素选择、叠加分析或编辑之用。
步骤:
- 将栅格表面数据转换成某种特定类型的数据,如高程、坡度、坡向
- 将各类别转换成多边形
- 将多边形数据与其他矢量数据一起使用,选用符合某个标准的区域
例子:可由某一栅格高程数据中得出海拔高度大于2500m的地区并转换为矢量多边形要素以用于某项分析
- 栅格数据通常是一个连续表面,在转换前,必须先将其进行重新分类。例:将坡度或高程值转换为分级数据
- [转换工具]–>[由栅格转出]–>[栅格转面]
- [输入栅格] 必须是整型
- [面简化] 确定输出的面将平滑为简单的形状还是与输入栅格的单元边缘保持一致
TIN数据的矢量转换
例如,可以从TIN表面上直接提取坡度与坡向多边形,或将TIN的节点高程值提取为点要素类
- [3D Analyst 工具]–>[转换]–>[由TIN转出]–>[TIN节点]
- [点子段]:设置输出要素类的高程属性字段的名称。如果指定名称,要素类将是2D的;否则,要素将是3D的。默认情况下,要素时3D的
- [标签值字段]:输出要素类的标签属性字段的名称
转载自:https://blog.csdn.net/summer_dew/article/details/78553713