在得到区域较大比例尺DEM
数据后,通过各格网单元的领域高程差等运算,可生成此区域的三维场景下的坡度与坡向图。其用途较广,如坡度图一般用于退耕还林、土地适宜性评价等方面,坡向图为辐照度等进一步的计算提供基础。另外,坡度、坡向图也应用于自然条件下的水流分布、滑坡等地质灾害监测等方面。以下给出基本公式与程序代码参考。
此图引自:Tarboton, D.G. (1997): A new method for the determination of flow directions and upslope areas in grid digital elevation models, Water Resources Research, Vol.33, No.2, p.309-319
参考上图,将这个简单的三角形看成一坡度,则将坡度用矢量(S1,S2
)的形式表示,有
S1 = (e0– e1)/d1
;
S2 = (e1 – e2)/d2
;
其中,e0
,e1
,e2
代表格网单元上的高程数值,d1
,d2
代表单元之间的距离(有时就是1
),
则此坡度的方向r
与大小(模)s
是:
r = tan-1(S2 / S1)
;
s = sqrt(S1*S1+ S2*S2)
;
参考代码如下:
作为第一步的入口函数:
bool
SlopeCreate::
SlopeStart(
void)
//
以DEM为基本数据计算地形坡度、坡向
{
long
gridNum =
m_iRows*
m_iColumns;
double*
pSurfaceSlope =
new
double[
gridNum];
long
lIndex = 0;
double
dSlopeMin = 3.14;
//90