导图社区 9-数字地形分析
9-数字地形分析,内容有水文分析、可见性分析、地形因子计算、DEM的转换,希望这份脑图会对你有所帮助。
编辑于2023-09-03 21:11:42 陕西9-数字地形分析
水文分析
作用:根据地表的高低形态判断出水系可能的分布和流域的范围,即利用栅格形式的DEM最终生成可能的河道链路和集水流域
栅格主要数据集概念
没有洼地的DEM
流向栅格数据
流量累积数据
流向栅格数据
表达的是DEM中每个栅格单元表面的水在自然的情况下会流向该栅格单元周围8个相邻栅格单元中哪一个栅格
具体计算方法
分别计算栅格单元与周围8个相邻栅格单元的距离加权落差,也就是分别用中心栅格的高程减去周围8个相邻栅格单元的高程,然后再除以中心栅格单元到相邻栅格单元的平面距离。
对于上下左右方向的4个栅格单元距离为一个栅格单元的长度,而对于对角线方向的4个栅格单元距离为一个栅格单元长度的1.414倍(2的平方根)
最后,将8个计算结果做比较,找出落差最大的方向作为水流的流向
Arcgis ——结果乘100变成落差百分比,并可以把百分比栅格数据输出
D8算法思想和6步骤
对于栅格数据边界上的所有栅格单元,都设置,都设置其流向为栅格数据边界外;或者对于研究区域边界上的所有栅格单元,都设置其流向为区域边界外。
对上述步骤中没有计算流向的研究区域内的栅格单元,计算8个方向的距离加权落差数值。
几种情况决定中心栅格单元的流向:
最大落差小于0,则给中心栅格单元赋一个负的方向值,表示流向未定义,这种情况表现为单一栅格单元形成的小洼地,可以通过后续填充洼地的方法去除,没有洼地不会出现该情况!
若最大落差>=0,且只在8个相邻栅格单元中出现一次,则把相应方向的编码赋值给中心栅格单元,栅格DEM中绝大多数栅格单元应该都是属于这种情况
若最大落差>0,且在8个相邻栅格单元中不止出现一次,则通过查表的方式给中心栅格单元赋值一个方向编码
若最大落差=0,且出现在不止一个相邻栅格单元内,则把所有等于0的栅格单元的方向编码相加求和,并赋值给中心栅格单元
对于那些没有被赋值为负数、1、2、4、8、16、32、64、128的栅格单元,检查它最大落差的相邻栅格单元,如果该栅格单元被赋值为1、2、4、8、10、32、64、128中的一个,且该相邻栅格单元不流向中心栅格单元,就把该中心栅格单元赋值为流向该相邻栅格单元。
重复上述第四步骤,一直迭代到没有栅格单元可以再赋值为止。
把所有不等于1、2、4、8、16、32、64、128这8个方向的栅格单元全部赋值为负数,这种情况在没有洼地的DEM中不会出现
方向编码
流量累积栅格数据
每个栅格单元保存了所有流到该栅格单元的上游栅格单元的总个数
某个栅格单元数值为0——没有其他栅格单元的水流到该栅格单元
山脊所在地
流域分水岭
数值比较大
汇集了上游很多栅格单元的水量——非常可能是河道所在的位置
过程
首先在流向栅格数据中找出所有流量累积为0的栅格单元
然后将这些0流量累积栅格单元放入一个按照累积流量值从大到小的顺序形成的优先队列
从优先队列中逐个取出累积流量值最小的栅格单元,把流量累积到它流出的栅格单元中,并把其流出的栅格单元放入优先队列。
循环计算,最终得求
提取河道所在位置的栅格数据
流量累积阈值的不同设置会得到不同的河道栅格结果
河道链路栅格数据
按照流量累积栅格阈值提取河道栅格数据——生成包含拓扑关系的河道链路栅格数据
与河道栅格数据区别
河道链路栅格数据,每一条河段都被赋予了一个唯一的栅格属性值
算法
首先在河道栅格数据中找出各个支流源头的栅格单元(8个相邻栅格单元中只有一个非空值的栅格单元)
然后逐个栅格单元追踪并判断流向栅格的对应栅格单元
直到相邻栅格单元有其他相邻栅格单元流入位置,这样就形成了一条单独的河段
给这条单独的河段赋予一个从1开始递增的编码
重复上述过程,最终形成河道链路数据
生成流域
河道链路栅格数据——为其中每一条河段生成一个集水流域—全流域
用户给定一个泻流点的栅格位置(出水口/拦河坝)把该泻流点上游的集水流域计算出来
原理:注意判断所有的栅格单元,按照流向栅格数据的流向来追踪水流的路径,将路径暂存在一个动态数组中,一直追踪到某一条河段的河道链路栅格单元为止。把该河道链路栅格单元的数值赋值给上述追踪到的一系列栅格单元,从而形成流域范围。
河道链路栅格数据中的河段数
泻流点栅格数据
对应数量的流域范围
生成泻流点流域的算法
从各个泻流点栅格出发,通过流向栅格数据从下游栅格单元向上游栅格单元追踪,并设置一个栈来缓存某个栅格单元从上游来水的流向分支。追踪到流量累积为0的流域边界后,再从栈中取出缓存的栅格单元继续追踪,直到栈空为止
填充洼地
解决计算不出栅格流向的问题
通过流向栅格数据来判断洼地的存在
步骤过程
洼地提取
生成初始的流向栅格数据,把流向栅格数据作为提取洼地的输入数据——栅格单元都是负值或不能计算出流向数值的地方。
赋予唯一标识码
获取各个洼地的深度
把上述生成的洼地栅格数据作为泻流点栅格,生成泻流点流域栅格数据
使用栅格分析中的区域统计方法,统计出各个洼地泻流点流域栅格区域的最低高程值
使用栅格分析中的区域填充方法,得到各个洼地泻流点流域栅格区域边界上的最小值,并填充到各个洼地流域范围。
地图代数的减法计算,把得到的各个洼地流域边界出水口的高程值减去各个洼地流域最低高程值,就得到各个洼地的深度。
洼地填充
设定高度极限值
超过——属于自然洼地,不用填充
小于高度极限的洼地需要填充
不设置则表示所有洼地都需要填充
算法
先在DEM中找出所有由一个栅格单元形成的洼地,即该栅格单元周围的8个栅格单元都高于该栅格单元。把该栅格单元的高程值提升到周边8个栅格单元高程值最低的数值
计算上述填充了一个栅格单元洼地的DEM的流向栅格数据
对所有空间上相连的没有确定流向的洼地栅格单元,赋予一个唯一的标识码,然后以这些栅格单元为泻流点生成相应标识码的流域
对每一个流域,找到流域边界上的最低点,以该点的高程值对流域中所有低于该值的栅格单元都以该高程值代替,即实现了洼地填充。
重复2-4,直到没有洼地
可见性分析
用来判断地形是否会阻隔我们望见远方的事物
包括
视线分析
两点的视线分析——判断栅格DEM表面上的两个位置点之间的通视状况(栅格DEM表面上的两点之间形成的一条直线,起点为观察点,终点为目标点)
沿着两点确定的方向,分析在该方向上的所有地面点的可见性
障碍点
从观察点到目标点的直线段被中间地形阻隔的且离观察点最近的点
原理:(算法)
求观察点到目标点之间的连线与其平面上经过的所有栅格单元的交点,并分别用各个交点栅格单元作为临时的目标点,计算观察点和各个交点栅格单元的可见性。观察点与各个交点连线通过线性插值计算出观察点和交点之间的栅格单元处的高程,把插值高程值和栅格单元的高程值做比较。
所有插值高度都高于栅格单元的高程值——栅格单元可见
只要有一个插值高度低于栅格单元的高程值——不可见
点与线的视域分析
点视域分析
视域——站在一个或多个观察点上或沿着若干条线移动,可以看见的所有地表区域。
视域分析——提取视域的过程
一个表示观察点位置的数据
可以是一个观察点
可以是多个观察点
一个表示地形的栅格DEM或不规则三角网
结果(栅格数据)
只有一个观察点——包含两个数值(二值图)
该观察点的可见区域(1)
该观察点的不可见区域(0)
累积视域P189
组合累积视域
给每一区域分配数值,每一个观察点用1表示可见0表示不可见
个数累积视域
属性表中VALUE字段表示该区域一共有几个观察点可见
线视域分析
矢量要素转化成栅格形式,并用栅格DEM插值出每个线要素栅格单元的高程,再对线要素的每一个栅格单元进行点的视域分析
其他参数
观察点的高度参数
观察点水平视角范围参数
默认360
视域半径参数
从观察点可以看到的最近和最远水平距离
观察点垂直角范围参数
-90~90
树高参数
地形因子计算
包括
坡度
坡向
地表曲率
地形阴影
地形刨面
坡度*
可以表示为
斜率
百分比
垂直距离与水平距离的的比乘100(表明水平方向上变化100m,地形在垂直高度上相应变化多少米
度数
垂直距离与水平距离比的反正切角度
坡向
一般是以方位角来度量的
以正北为0度
顺时针旋转角度增加
正东为90度
正南为180度
360度又回到正北方
坡度和坡向的计算
用栅格DEM计算坡度和坡向
需要计算每个栅格单元的坡度和坡向
栅格单元的法矢量的倾向和倾量决定了每个栅格单元的坡度和坡向
法矢量:垂直于栅格单元局部表面的有向直线
S*100——坡度百分比、D——相对于x轴的弧度值表示的角度《计算结果还要转换成方位角的角度。
算法
通过3*3的栅格单元窗口在栅格DEM上移动——把窗口作为邻域范围,估算中心栅格单元的坡度和坡向
若邻域 栅格单元没有高程值,则使用中心栅格单元的高程值替代
方法
使用每个栅格单元的相邻四个单元的高程值来估算中心栅格单元的坡度和坡向
Horn算法——Arcgis
使用8个邻接栅格单元,4个直接邻接栅格单元的权重取2,4个对角邻接栅格单元的权重取1
Sharpnack和Akin算法
使用8个邻接栅格单元,每个栅格单元的权重相同
用TIN计算坡度和坡向
计算出每个三角平面的法矢量(AB和AC的叉积)——计算出该三角平面的坡度和坡向值
没有栅格数据坡度和坡向数据那么均匀
地表曲率——反映地面的弯曲情况
三种
剖面曲率Kv
坡度方向的表面曲率,沿着这个方向重力作用最大
剖面曲率>0——表明坡面上物质加速下移
坡面侵蚀
剖面曲率<0——表明物质减速下移
坡面沉积
平面曲率Kh
垂直于坡度方向的曲率
反映坡面上物质的流向
>0——表明物质在此处分流,该处接近山脊线的位置
<0——表明物质在此处汇聚,该处接近山谷线的位置
表面曲率
K=-2(D+E)*100
K>0表示地形是向上凸出的
K<0表是地形向上凹处的
等高线曲率Kc——沿着等高线的地表曲率
地形表面的二阶导数
坡度——地形表明的一阶导数
3*3栅格窗口,4次多项式拟合
Kv=-2(DG^2+EH^2+FGH)/G^2+H^2)
Kh=2(DH^2+EG^2-FGH)/(G^2+H^2)
地形阴影
是光源从某个特定角度照射地物表面时产生的现象,相对应的分析——阴影分析
获得地形表面某一时刻在特定光照下的明暗程度
使用栅格DEM计算每个栅格单元的地形阴影
考虑栅格单元与光源之间的位置关系
内在条件:坡度和坡向
外在条件:光源的位置(方位角和高度角)
方位角——平面坐标
以北为基准方向0度
0-360范围内按顺时针测量
高度角——垂直坐标
光源高出地平线的角度或坡度
0地平线-90天顶
天文方式
地球任意一点在一年中某个任意时刻太阳的方位角和高速角,算出太阳的位置,采取相对光照度即可求解
相对光照度
0~1
0——完全被峡谷光源而没有光照
1——完全正对光源且光照最强
默认使用315度的方位角,光源45度的高度角——即从西北方向斜射过来、符合人们的视觉习惯
方位角135度——反立体(伪立体)
地形剖面
假想的垂直于海平面的平面与地形相交的截面,剖面线是剖面与地表面的交线。根据剖面线可以获得沿着剖面线的地形变化信息。
算法
基于栅格DEM
基于TIN
将求剖面线转化为求剖面线与DEM网格交点或TIN的三角形边的交点的平面坐标,再根据交点的平面坐标,用线性插值或其他插值方法求出高程坐标
水平比例尺和垂直比例尺不一致
垂直比例进行夸张
DEM的转换
数字高程模型
采用规则的栅格DEM(Grid)形式表示
采用不规则三角网(TIN)形式表示
数字等高线——表示数字地形
栅格DEM转TIN
过程:在栅格DEM中选取一定数量的栅格单元作为TIN的节点,再运用Delaunay三角化算法连接这些选中的节点从而构建三角网
关建——如何选取?
选取栅格单元的算法——Z容差
二维平面的Douglas-Peucker算法
简化曲面要素
过程:由用户设置一个预定的高度差数值(Z容差),算法首先选取若干栅格单元(栅格的中心点)构建一个初步的候选TIN,该TIN覆盖了整个栅格DEM的平面范围。然后,进行迭代操作
每次从未被选取的栅格单元中选取距离候选TIN中的三角面高度差大于Z容差的高差最大的栅格单元加入候选TIN,形成新的候选TIN,直到所有未被选中的栅格单元到候选TIN的高度差都小于Z容差为止。
Z容差越大,生成的TIN与原始的栅格DEM之间高度误差就越大
TIN转栅格DEM
通过对每个栅格单元的位置进行空间插值来实现
输出栅格的每个单元插值出高度或空值,该高度值具体取决于栅格单元中心是否落在TIN的插值区
方法
线性插值
将TIN三角形显示为平面。通过查找栅格单元落在哪个三角形中,则计算栅格单元中心相对于该三角形平面的位置来为每个输出栅格单元指定高度
自然邻域插值法
产生比线性插值法更平滑的结果
每个输出栅格单元中心周围所有方向上找到的最近TIN节点使用基于Voronoi多边形区域面积比例的权重方案
TIN中硬隔断线会影响插值结果,因为自然邻域表面在跨越该硬隔断线时不是连续平滑的
栅格DEM转等高线
等高线——表示地形是一种比较传统的方式
天气图的——等压线
等温线
等雨量线
等值线
某一连续变化的现象其相等数值的点在空间中连接形成的线状要素
基准等高线高程
最低高程的起始,通常0米起算
等高距
任意两条相邻首曲线之间的高程差值
计曲线的高程差值——有利于生成加粗显示的计曲线
经过栅格边界的等高线通常不光滑
先使用Douglas——Peucker算法对其进行简化
再使用某种线要素的光滑算法生成光滑等高线
分段三次多项式插值法
等高线转栅格DEM
采用空间插值
把等高线数据先通过矢量转栅格的方式转成具有高程的栅格数据,再把具有高程数值的栅格单元当作点要素来看待。
TIN转等高线
符合高程要求的等高线穿过三角形的边(特殊情况下穿过某一个三角形的顶点)等高线与三角形边的交点可以采用线性插值的方法求得(因为把三角形看作空间的平面)。依次连接三角形边上的等高点,就可以形成等高线
等高线在穿过一个三角形的内部时是一段直线
只有越过三角形边界进入另一个三角形时,直线的方向才会变化。
栅格DEM转换成的等高线比TIN转换成的等高线更加圆滑
等高线转TIN
在相邻的两条等高线之间生成三角面
一般是把某一条等高线上的数据点与相邻的另一条等高线上的数据点用直线段连接起来
原则:采用相邻等高线间距离最短的方式
两条等高线之间生成一条三角形条带,等高线作为软隔断线成为TIN中的三角形的边
软隔断线——TIN中不显著改变局部地形的线状要素
硬隔断线——局部地形突变的地方(山脊线、山谷线、河流、道路)
TIN中三角形边的一部分
生成的TIN不是Delaunay三角网,不准确
把山峰等作为点要素
山脊山谷作为硬隔断线
湖泊作为多边形平面
加入TIN,能准确表达