资源描述
利用ArcGIS水文分析工具提取河网的操作
DEM包含有多种信息,ArcToolBox提供了利用DEM提取河网的方法,但是操作比较烦琐(帮助可参看Hydrologic analysis sample applications),今天结合我自己的使用将心得写出来与大家分享。提取河网首先要有栅格DEM,可以利用等高线数据转换获得。在此基础上,要经过洼地填平、水流方向计算、水流积聚计算和河网矢量转化这几个不步骤。
1.洼地填平
DEM洼地(水流积聚地)有真是洼地和数据精度不够高所造成的洼地。洼地填平的主要作用是避免DEM的精度不够高所产生的(假的)水流积聚地。洼地填平使用ArctoolBox->Spatial Analysis Tools->Hydrology->Fill工具。
2.水流方向计算
水流方向计算就可以使用上一步所生成的DEM为源数据了(如果使用未经洼地填平处理的数据,可能会造成精度下降)。这里主要使用ArctoolBox->Spatial Analysis Tools->Flow Direction 工具。输入的DEM采用第一步的Fill1_exam1
3.水流积聚计算
这里主要使用ArctoolBox->Spatial Analysis Tools->Flow Accumulation工具流向。栅格数据就是第二步所获得的数据(FlowDir_fill1)。可以看到,生成的水流积聚栅格已经可以看到所产生的河网了。现在所需要做的就是把这些河网栅格提取出来。可以把产生的河网的支流的象素值作为阀值来提取河网栅格。
4.提取河网栅格
使用spatial analyst中的栅格计算器,将所有大于河网栅格阀值的象素全部提取出来。至于这个阀值是多少因具体情况而定。通常是要大于积聚计算后得到栅格的最低河流象素值。这里采用的是500这个值。最后生成只有0、1值的栅格数据。其中1表示是河网,0是非河网。
5.生成河网矢量
这里主要使用ArctoolBox->Spatial Analysis Tools->Stream to Feature工具.Input Stream raster 为第四步只有0、1值的河网栅格。流向栅格使用第二步所生成的栅格数据。
6.矢量河网处理
由于Stream to Feature工具.将所有栅格象素均转为矢量线段。所以要进行处理,方法是利用属性查询的方法把所有GRID_CODE为1的全部选择出来。导出就得到了由dem所生成的河网矢量。
7.处理结果
最后,得到的河网如下图所示。但是由于是栅格转换而来。生成的河网并不是连续的矢量。可以根据需要做简单的处理。
水文分分析工具... 1
1. 数据基础:无洼地的DEM.. 3
2. 关键步骤:流向分析... 4
3. 计算流水累积量... 5
4. 提取河流网络... 6
5.流域分析... 9
6. 其它应用--降水分析(选做) 11
水文分分析工具
有两种途径使用水文分析功能:
(1) 通过Arctoolbox:水文分析工具位于[Spatial Analyst Tools]>>[Hydrology]之下
如果Hydrology 工具集没有出现,可以选中某个工具箱后新建一个工具集[Hydrology],然后右键点新建的工具集,在出现的菜单中执行[添加]>>[工具]
会出现如右图所示的对话框,将需要的水文分析工具添加到上面新建的工具集中。
(2) 另一种方法是添加[Hydrology]工具栏到ArcMap中。
在ArcMap中执行菜单命令:[工具]>>[定制] 命令
点击 [从文件添加]按钮
找到esrihydrology_v2.dll 文件
注意:这个文件通常是在ArcGIS的安装路径下,默认的情况是[C:\Program Files\ArcGIS\DeveloperKit\samples\SpatialAnalyst\HydrologicModeling\Visual_Basic]
[Hydrology Modeling]工具条就被加载到ArcMap,在其前面的检查框上打上勾,如下图所示。
[Hydrology Modeling]工具条就可以显示在ArcMap中
注意:以下的练习基于 Hydrology Modeling 工具
1. 数据基础:无洼地的DEM
在ArcMap中加载 DEM数据,执行工具条 [Hydrology Modeling]中的菜单命令 [ Hydrology ]>>[ Fill Sinks],在出现的对话框中将 [Input Surface]参数指定为 “DEM”
确定后得到无洼地的DEM数据:[ Filled Sink1 ]
2. 关键步骤:流向分析
在上一步的基础上进行,执行工具条 [Hydrology Modeling]中的菜单命令 [ Hydrology ]>>[ Flow Direction ],在出现的对话框中将 [Input Surface]参数指定为 “Filled Sink1”
确定后得到流向栅格 [ Flow Direction1],了解流向栅格单元的数值表示的含义是什么
3. 计算流水累积量
在上一步的基础上进行,执行工具条 [Hydrology Modeling]中的菜单命令 [ Hydrology ]>>[ Flow Accumulation ],在出现的对话框中将 [Direction Raster]参数指定为 “Flow Direction1”
确定后得到流水累积量栅格[Flow Accumulation1]
4. 提取河流网络
(1) 提取河流网络栅格:
在上一步的基础上进行,打开Arctoolbox,运行工具[Spatial Analyst Tools]>>[Map Algebra]>>[单输出地图代数]
在 [地图代数表达式]中输入公式:con (Flow Accumulation1>800,1)
[输出栅格]指定为:StreamNet
说明:通过此操作将流水累积量栅格[Flow Accumulation1]中栅格单元值(流水累积量)大于800的栅格赋值为1,从而得到河流网络栅格[StreamNet]
1 setnull
2 con
3 pick up
这三个命令很有用。setnull,将栅格图像中满足条件的栅格值设置为null,即nodata,这样很便于在栅格图像中删除不需要的部分。其对应Grid模块命令为setnull,格式:outgrid = setnull <ingrid > 5, ingrid>,表示,如果ingrid》5,则变为nodata,否则返回为原值。
con表示条件,如果满足条件,返回为指定值1,否者返回为指定值2,Grid命令:
outgrid = con < ingrid > 5, 10 ,100>,表示,如果ingrid值>5,则对应栅格值改为10,否者改为100。若100不指定,则返回为nodata。这里可以指定多个条件。
pick up,我还没看到呢。。。。
ps。发现toolbox有个特点,右击命令的话可以批处理哦。
得到的的河流网络栅格:StreamNet
关闭除[Streamnet]之外的其它图层
(2) 提取河流网络矢量数据
在上一步的基础上进行,执行工具条 [Hydrology Modeling]中的菜单命令 [ Hydrology ]>>[ Stream Network As Feature ],在出现的对话框中将 [Direction Raster]参数指定为 “Flow Direction1”,[Accumulation Raster]参数指定为 “Flow Accumulation1”,[Minimum Number of Cells for a Stream]参数指定为 1000
确定后得到河流网络矢量数据
(3) 平滑处理河流网络
打开[编辑器]工具栏,执行工具栏中的命令[编辑器]>>[开始编辑],确保目标图层为河流网络图层[Shape1],
通过打开[Shape1属性表,并选择属性表的所有行选择图层[Shape1]中的所有要素,也可以通过要素选择按钮 选择图层中所有要素
执行[编辑器]工具栏中的命令[编辑器]>>[更多的编辑工具]>>[高级编辑]打开工具条:[高级编辑],点击其上的[平滑]按钮(下图中前头所指):
在[平滑]处理对话框中输入参数[允许最大偏移]:3
得到平滑后的河流网络矢量图层,执行命令: [编辑器]>>[停止编辑],保存所做修改。
比较平滑处理后的数据与没有进行处理过的数据
5.流域分析
在上一步的基础上进行,执行工具条 [Hydrology Modeling]中的菜单命令 [ Hydrology ]>>[ Watershed ],在出现的对话框中将 [Direction Raster]参数指定为 “Flow Direction1”,[Accumulation Raster]参数指定为 “Flow Accumulation1”,[Minimum Number of Cells for a Stream]参数指定为 2000
确定后得到流域栅格 [Watershed1]
打开[空间分析] 工具栏,执行命令:[空间分析]>>[转换]>>[栅格到要素] 将流域栅格转换成为矢量图层,按下图所示指定参数:
得到矢量数据:[WaterShed.shp]
设置图层[Watershed]属性[符号]后得到类似上图的效果
重复以上操作步骤并将[Minimum Number of Cells for a Stream]参数指定为 10000,看看结果是否有所不同。
6. 其它应用--降水分析(选做)
执行命令 [Hydrology]>>[Interactive Properties]
选中“Rain Drop”按钮,(如下图红色前头所指),在DEM上任意位置点击(表示这里有降雨),则显示一条路径表示此处的降水的最终流向
展开阅读全文