关于在ArcGIS中地形指数的计算,网上能找到不少的文章,但是不容易找到具有的方法。这是一个自己摸索的方法,不知道对不对,欢迎讨论指正。基本公式:
原始数据:DEM栅格
过程数据:洼地填充后的洼地流向flowdirfill和汇流累积量flowacc。二者计算过程参考汤国安地理信息系统空间分析实验教程第十一章.
1计算SCA(specific catchment area)
SCA=CA/flow width
CA=(flowacc+1)*单位栅格的面积(分辨率^2)(+1很重要,在修正这个之前,忽略加1导致最后结果出现负值。)
(1)计算汇水面积CA。
通过hydrology模块,计算出填充洼地后的flowacc*分辨率平方得到汇水面积CA
(2)确定流向宽度flow width。
对于D8算法而言,当流向为格网对角线方向时,流向宽度为sqrt(2)*格网间距L;东西南北四方向的,流向宽度为格网间距L。
经洼地填充后生成的Flowdirfill即8个流向,用con条件语句进行计算,指定东西南北方向的格网间距为L,对角线方向的为sqrt(2)*L。得到流向宽度。
Example
指定分辨率为25米,条件语句如下:
con([flowdirfill] == 1,25,[flowdirfill] == 4,25,[flowdirfill] == 16,25,[flowdirfill] == 64,25,[flowdirfill] == 2,25*Sqrt(2),[flowdirfill] == 8,25*Sqrt(2),[flowdirfill] == 32,25*Sqrt(2),[flowdirfill] == 128,25*Sqrt(2))
(3)计算SCA。
将汇水面积除以流向宽度得到单位汇水面积。
2计算slope
用arctoolbox里面的slope功能直接对原始数据进行坡度的求取。注意得到的坡度单位是°degree
3计算地形指数
用spatial analysis tools里面的raster calculator工具进行计算
在这里说明一下。生产坡度的时候单位是度。但是在栅格计算器中的tan函数默认值为弧度。所以直接tan("slope")会出现问题,需要将角度的坡度转化成弧度进行计算。公式如上图。
得到地形指数值,从porperties中可以得到地形指数的最小值最大值平均值等统计指标。
http://blog.renren.com/share/287659543/15831977387