zoukankan      html  css  js  c++  java
  • ArcGIS 下的水文分析

    水文分析:根据DEM提取河流网络,计算流水累积量、流向、根据指定的流域面积大小自动划分流域

    水文分分析工具... 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上任意位置点击(表示这里有降雨),则显示一条路径表示此处的降水的最终流向

  • 相关阅读:
    派生类的构造函数
    继承和派生
    自增自减运算符的重载(强制类型转换运算符重载)
    流插入和流提取运算符的重载
    动态数组类的设计
    函数的返回值
    赋值运算符的重载
    运算符重载
    常量对象函数引用和参数传递
    理解ASP.NET MVC的路由系统
  • 原文地址:https://www.cnblogs.com/China3S/p/2486010.html
Copyright © 2011-2022 走看看