所需数据:emidalat,一个高程栅格;emidastream.shp,一个流域shapefile。

用高程栅格数据集勾绘整个流域的操作流程。数据源是高程栅格。emidastream.shp作为参照图层。

除非特别说明,所有工具都驻留在空间分析工具/水文工具集。

  1. 打开 emidalat和emidastream.shp。
  2. 检查中emidalat是否存在小洼地。双击流向工具。选择emidalat作为输入地面栅格网,键入temp_flowd作为输出的水流方向栅格,点击确定。


3. 在temp_flowd建立后,双击汇工具,选择temp_flowd作为输入的水流方向栅格,将sinks设置为输出栅格,点击确定。

4. 填平emidalat中的小洼地。双击填洼工具,选择emidalat作为输出地面栅格,设定emidafill为输出地面栅格,点击确定。
5. 用emidafill继续上述操作。双击流向工具,选择emidatfill作为输入地面栅格,设定flowdirection为输出的水流方向栅格,运行命令。
6. 接着创建一个流量累积栅格。双击流量工具,选择flowdirection为输入的水流方向栅格,键入flowaccumu为输出累积栅格,点击确定。

  1. 选择(或设定临界值)flowaccumu中流入值超过500个像元的单元,双击空间分析工具/条件分析工具集的条件函数工具,选择flowaccumu作为输入的条件栅格,键入表达式Value > 500,键入1作为常数值,设定net 为输出栅格,并点击确定运行命令。在接下来的分析中将用到net作为输入河流栅格。


8.为net中的交汇点(或交叉点)间的每个河段指定一个唯一值,返回到Hydrology工具集,双击河流链接工具,选择net作为输入的河流栅格,flowdirection为输入的流向栅格,source为输出栅格。点击确定。

9.至此,准备了勾绘流域所需的所有数据。双击分水岭工具,选择flowdirection作为输入的流向栅格,source为输入的栅格,watershed指定为输出格网,点击OK。将watershed的符号改变成唯一值,以便可以看出每一个流域。
ArcMap中的Python脚本完成以上操作,用这个选项,首先在ArcMap的标准工具条中打开Python窗口。假设工作空间是d:/chap(“/”用来指定路径),其中包含emidalat,你需要在“>>>”后输入一下预计,以完成:

inport arcpy

from arcpy import env

from arcpy.sa import *

env.workspace = “ d:/chap14”

arcpy.CheckExtension(“ Spatial ”)

outflowdirection = FlowDirection (“ emidalat”)

outsink = Sink (“ outflowdirection”)

outfill = Fill (“ emidalat”)

outfd = FloeDirection (“ outfill”)

outflowac = FlowAccumulation (“ outfd”)

outnet = Con (“ outflowac”, 1, 0,”VALUE>500”)

outstreamlink = StreamLink (“ outnet”,” outfd”)

outwatershed = Watershed (“ outfd”,” outstreamlink”)

outwatershed.Save (“ outwatershed”)

脚本的前5行输入了arcpy和Spatial Analyst 工具,定义了工作空间。接下来是使用FlowDirection、Sink、Fill、Flowdirection(已填洼DEM)、FlowAccumulation、Con、StreamLink和Watershed这些工具的语句。每输入一条语句,你会在ArcMap中看到输出结果。

  • END -

在ArcGIS中勾绘全流域方法相关推荐

  1. 【从零开始学GIS再到精通GIS】ArcGIS中的绘图基操作(一)

    (收藏的同时麻烦点赞啊亲!) 大家好 最近和几个刚入行的小朋友们聊天,发现小朋友们现在很关注热点,并且有着一个共性的担忧: "国土空间规划是规划行业的未来,可是我们学校还不教我们GIS,好慌 ...

  2. ArcGIS中的Datepart函数使用方法

    ArcGIS中系统提供的Datepart()函数 功能:返回一个包含已知日期的指定时间部分 用法:DatePart(interval, date)

  3. VB中半角转全角方法

    StrConv(string, conversion, LCID) 半角转全角:vbWide 全角转半角:vbNarrow TT=StrConv("abcd123",vbWide) ...

  4. 在matplotlib中关闭绘图轴的方法

    我正在为随机游走模型编写代码,我使用plt.axes().get_xaxis().set_visible(False)来隐藏轴,但是当我运行程序时,绘图仍然显示两个轴.以下是我写的: import m ...

  5. gis里创建要素面板怎么打开_【从零开始学GIS】ArcGIS中的绘图基本操作(二)

    大家好,我是肝教程肝到熊猫眼的三三. 本系列教程的发布,受到了很多同学的鼓励,大家在后台或微信上表达出对教程的喜爱,这便是更新教程的最大动力. 上回教程讲解了"GIS基本操作".& ...

  6. 手持gps坐标转换参数求解方法及在excel中的实现_分享∣Arcgis中62个常用技巧系列二(21-40技巧)...

    二十一.融合后全部打散 ArcToolbox-> 数据管理 -> 属性 ->mergemultipart to singlepart 二十二.图层 关系处理 ArcToolbox-& ...

  7. arcgis分隔图层重复出文件_已知坐标点txt文件在ArcGIS中转换成shp数据的两种方法...

    在平时工作中,经常会遇到只有txt坐标的勘测定界图等数据,通过以下操作步骤可将txt数据转换成shp数据. 方法一 1.打开txt数据,如下图所示,该数据为面数据,坐标系为西安80,投影方式是3度分带 ...

  8. python生成shell脚本_Python设置在shell脚本中自动补全功能的方法

    本篇博客将会简短的介绍,如何在ubuntu中设置python自动补全功能. 需求:由于python中的内建函数较多,我们在百纳乘时,可能记不清函数的名字,同时自动补全功能,加快了我们开发的效率. 方法 ...

  9. Eclipse中 Junit 正常运行完了 可是方法覆盖率全红 解决办法 (附带②EclEmma插件安装方法④覆盖率抽出与合并)

    ■前言 今天修改完代码之后,修改对应的Junit. 对于目前这个工程,之前有一次案件对于,在整个工程中,使用Junit4 + JMockit方式,来实现Junit. 之前修改的测试类,都是通过以下方式 ...

最新文章

  1. java 数值区间_java 各数据类型数值范围
  2. 【03-14】日常资源访问备份
  3. 160个Crackme022之故布疑阵
  4. 网络的网络——当今的互联网
  5. arm下如何烧写指定分区大小的内核和文件系统
  6. python中的逻辑关系
  7. 面试让你手撕红黑树?30张图带你彻底理解红黑树~
  8. Linux工程师新法宝:在Visual Studio上用C++ 写Linux
  9. 牛客练习赛 63 F-牛牛的树行棋
  10. Spring MVC学习总结(9)——Spring MVC整合swagger自动生成api接口文档
  11. 【Ubuntu】Ubuntu16.04+VMware+Win10安装及配置教程
  12. jpa内网mysql_mysql+jpa简单实现步骤
  13. 【Unity3D应用案例系列】Unity3D中实现《3D照片墙》
  14. 使用idea 把项目上传到 svn
  15. 计算机技术 安防 工程师考试,2020年上半年信息安全工程师考试报考指南
  16. 蚂蚁金服测试开发实习面经
  17. 创造力/创新思维的阻碍
  18. JS原生实现照片抽奖
  19. 关于C语言编程中include的用法
  20. Categorical类型

热门文章

  1. 如何在WordPress中使用Distraction Free全屏编辑器
  2. 专业治疗选择困难症----帮你做选择
  3. 无与伦比的工业设计 iPhone 4详细评测
  4. 【工具】复制别人的CSDN博客文章到本地
  5. 第7次版本迭代的微信答题小程序完美上线
  6. [推荐] 经典健康谚语100句
  7. 今日睡眠质量记录70
  8. Oracle基础包之DBMS_STATS(二十)
  9. Steam教育在新时代中综合学习论
  10. 距离全球边缘计算大会还有1400小时!