黔西县野济河流域面积计算实验
ARCGIS 实验报告
——关于水文分析
原始数据为:栅格数据hlx 、hlw 、毕节行政区(xzq )矢量数据:bjb54dem.img 。 第一步:黔西县行政区的提取
打开arcgis 的工作界面加载毕节行政区(xzq )、hlx 、hlw 、
bjb54dem.img
选择菜单栏上的selection ,单击打开下拉菜单选择select by Attributes,在图层(layer )中选择xzq 图层,
然后选择行政辖区双击鼠标左键
如下图中点击等号,然后单击Get Unique Values 并选择黔西县双击鼠标, 可以得到“行政辖区”=“黔西县”
然后单击OK 。(如下图)
返回layers 显示框,选择行政区右击鼠标,选择Data →Export data 弹出export data 界面 如右图
在output shapefile or feature Class :
选择图层存储位置并更改图层名 保存为qxxzq ,点击OK 。 完成图层的提取。
第二步:数据矢量化和qxxzq 缓冲计算
由于原始数据是栅格数据,水文分析是需要矢量数据,因此需要把栅格数据进行转换。同时,栅格数据转换成矢量时有三种方法,下面使用的是其中相对简单的一种。同时,在数据多次进行栅格转矢量、矢量转栅格以后,原始数据会相对发生变化,为了防止变化带来的误差,因此,在qxxzq 进行矢量转换之前,可以利用buffer 来减小误差。
1、buffer 设置
选择菜单栏上的tools 右击鼠标, 在弹出的下拉菜单中选择customize 工具,打开customize 界面(右图), 选择Commands ,在下面的左显示框中选择tools ,右图框里面选择buffer wizard... 并且把该工具拖放到空间分析(Spatial Analys)工具条中。
如下图
单击buffer wizard工具,弹出buffer wizard工具界面,
(如下图)
在buffer wizard工具中,点击 features of a layer以及下面的白空里面选择qxxzq ,单击下一步,设置如下图(单位可以换成kilometers ,前面数值输入1
)
完成上一步设置之后,单击下一步得下图,单击outside polygon(s )and include insic, 选择图层存储位置且存储为qxxzqbuffer ,单击完成,以及完成qxxzq 的缓冲计算。(注:在这一步中选择outside polygon(s )and include insic最为重要,选择其他上面三个可以进行缓冲,但是会增加误差)
2、qxxzqbuffer 数据矢量化
打开空间分析()工具,(方法:点击V iew 弹出下拉菜单选择toolbars 其中显示工具类型选择Spatial Analys打钩,空间分析工具就显示在窗口里面)
然后点击Spatial Analys弹出下拉菜单,选择属性(option )打开属性界面框(如右图),在working 中选择所需图层的保存位置,在Analysis mask:选择qxxzqbuffer ,最后单击确定。
在单击Spatial Analys弹出下拉菜单选择raster calculator,弹出raster calculator 对话框,双击bjb54dem.img 然后单击符号*在单击1,这样下框中会显示[bjb54dem.img] *1。然后单击Evluate 计算结果会显示为Calculation ,右击calculation 图层选择属性更改名称为qxxzqdem ,完成数据矢量化。
第三步:河流方向提取
单击上图中红色的Show/Hide ArcToolbox Window 调出ArcToolbox 显示框(右图)
单击ArcToolbox 中的Spatial Analyst Tools 然后选择Hydrology (下图)
单击Hydrology 选择Flow Direction(下图)
然后单击Flow Direction,弹出Flow Direction对话框(下图),Input surface raster中选择Qxxzqdem ,在output flow direction raster中选择文件存储位置,在force all edge cells to
Flow outward (optional)前面的框内打勾。保存为qxflowdir ,点击OK ,完成河流方向提取。
第三步:洼地提取
选择Hydrology 中的sink 工具,弹出sink 对话框(如下图),在Input flow direction raster 中选择qxflowdir ,在output raster中选择存储位置,保存为sink 。点击OK ,完成洼地提取。
第四步:洼地深度计算
选择Hydrology 工具集中的watershed 工具,弹出对话框(下图),分别在水流方向和输入图层中选择qxflowdir 和sink ,选择存储位置命名为watershqx ,单击OK 完成。
第五步:计算洼地的贡献区域的最低高程
打开Spatial Analyst Tools 工具箱中Zonal 工具集,选择Zonal Statistic 工具,并弹出Zonal statistic 对话框(如下图)。在输入要素图层选择sink ,在Input value raster中选择qxxzqdem ,在Output raster中选择存储位置并命名为qxzonalmin ,在Statistics type(optional )中选择
MINIMUM 属性,单击OK 完成洼地贡献区域的最低高程计算。
第六步:计算出水口的最低高程
打开Zonal 工具集中的zonal fill工具,弹出该工具对话框(如下图)。在Input zone raster中选择watershqx ,在Input weight raster中选择qxxzqdem ,在Output raster中选择存储位置并命名为qxzonalmax ,单击OK 完成出水口最低高程的计算。
第七步:计算洼地填充阈值
点击Spatial Analyst 工具在下拉菜单中找到Raster Calculator并弹出对话框(下图)。在对话中选择qxzonalmax 双击,然后点击 “—” 符号,最后点击qxzonalmin 双击,下面的白色框内显示[qxZonalmax] - [qxzonalmin],最后在[qxZonalmax] - [qxzonalmin]前面输入“sinkdep=”得sinkdep=[qxZonalmax] - [qxzonalmin],然后单击Evaluate ,计算出洼地深度的阈值范围。
第八步:填充洼地
打开Hydrology 工具集选择fill 工具并弹出对话框(如下图)。在Input surface raster中选择qxxzqdem ,在Output surface raster 中选择存储位置保存为权限qxfilldem ,在Z limit(optional )中输入250,然后单击OK ,完成洼地的填充,在洼地填充完成以后,也及是说已经完成了无洼地的生成。(注:填充这个阶段输入的数值越接近最大值,填充得越完整,但是所需时间就越长,需要耐心等待,一般而言一个县的数据大约十几分钟。)
基于无洼地的黔西县野济河流域面积的计算
在完成无洼地生成的基础之上,就以上面完成的数据为基础,然后进行黔西县野济河流域面积的计算,不论是河网的提取,盆地生成,流域生成,以及流域面积的计算,都需要在无洼地dem 的基础上提取河流方向,换句话说,河流方向是水文分析处理中的基础之基础。
第九步:基于无洼地dem 的河流方向提取
打开Hydrology 工具集选择flow direction双击,弹出flow direction对话框(如下图)。 在Input surface raster中选择qxfilldem ,在Output flow direction raster中选择存储位置并保存为flowdir2,在force all edge cells to flow outward(optional )前面的框内打勾。然后单击OK ,完成无洼地dem 河流方向的提取。
第十步:汇流累积量计算 打开Hydrology 工具集选择flow Accumulation,并弹出对话框(如右图)。在Input flow direction raster中选择Flowdir2,在Output accumulation raster中选择存储位置,保存为qxFlowAcc ,然后单击OK ,完成汇流累积量计算。
第十步:河网提取
打开ArcToolbox 工具集,选择Spatial Analyst Tools 并打开,然后选择Map Algebra 打开,选择Single Output Map ,双击打开其对话框(如下图)。在对话框Map Algebra expression 中输入con ([qxflowacc]>10000,1),在Output raster 选择存储位置并命名为streamnet 。然后单击ok ,完成
河网提取。这一步当中,最重要的是函数表达式的输入很重要也很容易出错,并且一定要在英文输入状态,如果是中文输入就会出错。(注:绝对路径情况下:表达式为con ([路径\累积量文件名]>10000,1),相对路径情况下:表达式为con([累积量文件名]>10000,1)。以上两种情况一定要分清楚,同时,河网提取的方法不是唯一的,还有利用栅格计算器进行提取。)
第十一步:河网矢量化
点击空间分析(Spatial Analyst)工具,在下拉菜单中选择raster to feature,弹出其对话框(如下图)。在Input raster中选择streamnetslh 所在位置文件,在Output aeometrv tvae中选择polyline 位置命名为然后点击矢量化。
并且选择保存streamnetslh ,OK ,完成河网
第十二步:河网连接
打开Hydrology 工具集选择Stream link工具,弹出其对话框(如下图)。在Input strenm raster 中选择streamnet ,在Input flow direction raster中选择flowdir2,在Output raster中选择存储位置并命名为stream link,然后点击OK ,完成河网连接。
第十三步:watershed 的生成
打开Hydrology 工具集选择Watershed 工具,并弹出其对话框(如下图)。在河流方向和输入要素中选择flowdir2和streamlink ,同时在输出框中选择存储位置并命名为qxWatershed ,然后点击OK ,完成Watershed 生成。
第十四步:watershed 矢量化
单击空间分析(spatial analyst)工具,在下拉菜单中选择raster to feature并弹出其对话框(如下图)。在Input raster中选qxwatershed 所在文件夹文件,在Output aeometrv tvae中选择polygon ,然后选择图层存储位置命名为qxwatershedslh ,然后单击OK ,完成流域矢量化。
第十五步:数据裁切
由于在提取黔西县行政区之后进行数据的buffer 增加范围,因此在计算面积时,要不多余的部分去掉,所以在这里需要进行裁切,以报最终计算的结果误差更小。
打开ArcToolbox 工具集中的Analyst tools工具(如下图),选择其中的Extract 工具,然后再选择Clip 。
在上面的基础上,双击Clip ,弹出clip 对话框(如下图)。在Input Features中选择qxwatershedslh ,在Clip Features中选择qxxzq (黔西行政区),在Output Feature Class中选择存储位置并命名为clip ,然后单击OK ,完成裁切工作。
第十六步:野济河的提取
在layers 显示框中右击hlx ,选择Open Attribute Table,弹出Attribute of hlx对话框,然后选择野济河这样就选择野济河,再选择hlx 右击Data 然后选择Export data弹出对话框(如下图)。在Output shapefile or feature class中选择存储位置并命名为野济河。
第十七步:
流域并计算其面积
在下图中,红线为野济河,浅绿色线为矢量化后的河网,
而蓝色线区域内为野济河的流选择野济河
域范围。
在上图的基础上,选择clip 图层右击鼠标,然后导出蓝色线部分,即命名为野济河流域。(如下图)。
然后选择野济河流域图层,右击鼠标选择Open Attribute Table,并打开Attributes of 野济河流域对话框(如下图)。
然后选择对话框中的option ,选择Add filed且命名为lymj ,同时选择双精度。在Attribute of 野济河流域中选择lymj 右击鼠标,选择Calculate Geometry 弹出对话框(如下图)。在Units 中选择Square Kilometers [sq km],然后点击OK ,得出面积1423.259302平方千米。也即是野济河流域的面积为1423.259302平方千米。
2012年11月19日 王继