在DEM中做水流方向分析主要用到D8算法。
关于D8算法
A、如果最大落差值小于0,则赋以负值以表明此格网方向未定;
B、如果最大落差值大于或等于0,且最大值只有一个,则将对应此最大值的方向值作为中心格网处的方向值;
C、如果最大落差等于0,且有一个以上的0值,则以这些0值所对应的方向值相加。在极端情况下,如果8个邻域高程值都与中心格网高程值相同,则中心格网方向值赋以255;
D、如果最大落差值大于0,且有一个以上的最大值,则任选一个方向作为水流方向。
被处理栅格单元同相邻8个栅格单元之间坡降的算法为:
[Slope=D_{Z}/D_{i}]
式中:
Slope为两个栅格之间的坡降;
Dz为两个栅格单元之间的高程差;
Di为两个栅格单元中心之间的距离。
————————————————————————————————
在实际中计算水流方向的方法是采用九宫格来计算,即将中心单元的高程值与邻近八个单元的高程值进行对比。即使是最外围那一圈不足九个单元,也可以就邻近的单元来算,假装成九宫格。可以下图为例。
(1)最外围的例子。如左上角第一个单元格,值为78,其邻近单元格中高程值最低的是右下角的高程值为67的单元格,再根据流向的值可推断出该单元的流向是2。以此类推得出最外围的流向值
(2)非最外围的例子。如第二行第二列的单元格,高程值为67,在其邻近的8个单元格中,高程值最小的是44。也就是相对于高程值为67的单元格而言,它在其东南方向,再根据流向的值可推断出该单元的流向是2。
(!!怀疑下图的个别单元格流向有误)