详解ArcGIS 水文分析模型构建

目录

前言

项目环境、条件

Dem 数据预览

ArcGIS模型构建器

模型搭建

填洼

流向

流量

河流长度

栅格计算器

河流链接

河网分级

栅格河网矢量化

绘制倾泻点

栅格流域提取

集水区

盆域分析

栅格转面

模型应用

导出 py 文件

完善脚本

最终效果

结束语


前言

在地理信息系统(GIS)领域,水文分析是一项至关重要的任务,它涉及到对地表水流动路径、河流网络、流域划分等关键水文特征分析。这些分析对于水资源管理、洪水预警、环境规划以及城市排水系统设计等众多领域都具有重要的应用价值。

本文旨在探讨ArcGIS中水文分析的全过程,并展示如何构建一个可复用的水文分析模型。通过本文的学习和实践,读者将能够深入了解ArcGIS在水文分析方面的应用,掌握从数据预处理到模型构建、从模型运行到结果输出的整个流程。此外,本文还将介绍如何将ArcGIS模型脚本化,以提高模型的复用性和自动化程度。

在接下来的章节中,我们将详细介绍水文分析的各个步骤,包括资料背景的准备、操作中可能出现的问题及注意事项、分析框架的梳理、水文模型的搭建、模型思维和图形化界面的构建等。通过这些内容的学习,读者将能够全面掌握 ArcGIS 水文分析的相关知识和技能。

项目环境、条件

  • ArcGIS 10.8 中文包
  • 已开启 Spatial Analyst Tools 分析工具
  • Win 10 数据集 30 m dem 栅格数据集 

 ArcGIS 10.2 也几乎一样,部分工具可能由翻译问题,建议初学者完全按照本文的文档结构进行。

Dem 数据预览

DEM(Digital Elevation Model,数字高程模型)是一种用于表示地表地形起伏的数字模型。它通过规则格网的矩阵形式,记录每个格网单元的高程值,从而在计算机中构建出地形的三维模型。DEM 是地理信息系统(GIS)中重要的空间数据类型之一,广泛应用于地形分析、水文模拟、城市规划、地质灾害评估等多个领域。 Dem 可以通过地理空间数据云、QGIS 插件、CAD 地形文件生产等多种方式获取。此前有介绍,本文不多赘述。

image.png

ArcGIS模型构建器

ArcGIS模型构建器是Esri公司开发的ArcGIS软件中的一个强大工具,它允许用户通过图形化界面来创建、编辑和运行一系列自动化的GIS分析模型。模型构建器的核心优势在于能够将复杂的GIS分析流程简化为一系列可视化的步骤,使得用户无需编写代码即可完成复杂的空间分析任务。 可以在空白文件夹下,点击按钮打开,也可以在文件夹内,右键打开。 

image.png

 建议像笔者一样,建立好文件夹框架,依次新建文件数据库-工具集-模型。 

image.png

 在模型构建器中,数据类型如下,本文将用到项目数据、工具、派生数据和值等类型。 

image.png

 将数据、工具等可以直接拖入模型界面中,非常方便。

模型搭建

填洼

dem-填洼-fill 

填洼(Fill)是去除 dem 中的洼地(sinks)或凹陷(depressions)。这些洼地在地形分析中可能会导致错误的水流方向和流域划分,需要通过填洼操作来纠正。 

image.png

image.png

流向

fill-流向-FlowDirection

注意选着 fill 时需要选择蓝色循环的那个,为变量值。 

image.png

image.png

image.png

流量

FlowDirection-流量-fillacc 

image.png

image.png

 根据栅格数值大小隐约能看出河流的线条。 

image.png

 点击栅格可以查询该处的数值,通过这种方法判断最小径流的值,后面有用。 

image.png

河流长度

FlowDirection-河流长度-flowlength 测量方向选择 upstream。

水流长度工具的主要用途是计算给定盆地内最长水流的长度。该度量值常用于计算盆地的聚集时间。这可使用 UPSTREAM 选项来完成。该工具也可通过将权重栅格用作下坡运动的阻抗,来创建假设降雨和径流事件的距离-面积图。 

image.png

image.png

栅格计算器

栅格计算器 或者条件函数 栅格计算器(Raster Calculator) 条件函数 Con(FlowAccu>R,1) 目的是将流量栅格数据中提取河流的部分,公式为"flowacc" >= 1000。 在模型构建器中使用左右%代表变量。新增一个变量,作为流量限值 R,建议通过流量栅格 (flowacc), 点击查询河流的最小栅格,我这里根据实际情况,选择输入 1000。 

image.png

具体公式以自己实验为准,添加变量后,修改为"%fillacc%" >= "%任意值%" 

image.png

 记得点击任意值,添加 1000,这样以后只需要修改这个值,就可以调整河流长度了。 Acc 1000 结果,可见满足条件的,也就是河流为 1,不满足的为 0. 

image.png

河流链接

acc1000+FlowDirection=Streamlink by 河流链接

河流链接的作用有:构建连续的河流网络:河流链接工具能够识别并连接相邻的河流段,确保河流网络在空间上是连贯和正确的。分配唯一标识符:给河流网络中的每个部分分配唯一的 ID,便于管理和进一步分析。这有助于区分不同的河流分支和主流,以及分析它们各自的属性(如流量、长度等)。优化数据结构,减少在模型中处理大量独立线段时的复杂性。

image.png

image.png

河网分级

acc1000+FlowDirection=StreamOrder by 河网分级

河网结构用于识别河流上下级,常见的河网分级方法有斯特拉勒(Strahler)、希科特(Horton)和谢内(Shreve)等。斯特拉勒法是最常用的,它基于河流交汇规则来分配等级,即每次支流汇入时,如果两支流的等级相同,则合并后的河段等级加1;如果不同,则高等级保持不变。 

image.png

image.png

栅格河网矢量化

StreamOrder+FlowDirection=StreamOrder1000 by 栅格河网矢量化

顾名思义,栅格河网矢量化就是将河流网络的栅格数据转换成矢量数据格式,便于分析、可视化及水文建模应用。注意如果要增加河流长度等字段,需要在投影坐标系下进行。 

image.png

image.png

绘制倾泻点

StreamOrder 1000+end=FeatureVert_1000 By要素折点转点 

倾泻点是指汇流区域中具有最低高程的边界象元。它标志着水从一个流域流向另一个流域的出口点,或者是水流离开一个封闭流域(如盆地)的地点。 可以通过要素折点转点生成,也可以根据自己手工增加,形式是一些离散的点。 要素折点转点,顾名思义,指通过矢量线的折点或转点然后生成点,有 all、mindle、end、start、both_ends、dangle(悬挂点,指离散点) 等类型,绘制倾泻选择 end 。

image.png

 倾泻点非常关键,是汇水区分析的重要参数,除了自动生成的点外,可以根据实际需要,添加、删除点。 

河流与倾泻点

栅格流域提取

集水区

FlowDirection+FeatureVert_1000=倾泻点字段为空=watersh

集水区也就是分水岭,根据流向和倾泻点一起做的汇水范围。有倾泻点的会比盆域分析更细,他与倾泻点的点位有很大关系。

image.png

image.png

盆域分析

流向 FlowDirection 盆域分析= basin 盆域分析,也就是流域分析,可以理解为没有倾泻点的大范围流域分析。 

image.png

image.png

栅格转面

RasterT_basin /RasterT_watersh

上述流域栅格,转为矢量图层。用于可视化和计算,作用与栅格河网矢量化类似。 basin/watersh 栅格转面

image.png

子流域范围.png

至此,水文分析基本结束。 调试模型,运行成功。 

image.png

调整模型架构,让连接线不交叉。 

image.png

模型应用

导出 py 文件

可以导出 py 文件,进行模型复用。在 ArcGIS 环境中导入脚本,注意导入前修改绝对地址注意保持一致。另外它基于 ArcPy 模块,一个专为 ArcGIS 设计的空间分析和数据处理库。因此,它的运行环境依赖于 ArcGIS,使用 ArcGIS Python 2.X 环境编写的。不能用于 python 3 中。 经过测试,代码并不能直接使用,需要重新编译后才能使用,后续会出一期 python 水文分析的文章。

完善脚本

  1. 将 dem 输入变为变量,方法为新增变量-栅格数据集,然后选择对应的 dem 位置。
  2. 重命名,将 dem 命名为输入 dem。双精度命名为输入流量下限值。
  3. 完善模型参数,模型-模型属性-参数将输入 dem、输入流量下限值作为必填项

image.png

最终效果

点击模型打开,输入 dem 和下限值,点击运行。 

1716431898456.png

image.png

 运行成功,结果输出在模型内指定的文件夹。 

image.png

 重新运行将会替换结果文件,运行一次后,结果移动出来,再次使用。总之,非常方便。

结束语

本文通过详细探讨ArcGIS水文分析的全过程,不仅展示了如何利用ArcGIS模型构建器来创建一个高效、可复用的水文分析模型,还深入介绍了模型构建器的图形化界面和强大功能。通过本文的学习,读者可以清晰地看到,即使是GIS编程新手,也能通过模型构建器实现复杂的空间分析任务,而无需深入代码层面。

最近,我新开了微信公众号(环境猫 er),坚持发布 python 环境业务解决方案,python 办公自动化,GIS 作图经验,学习笔记,办公技巧,工具分享等内容。 坚持 Bulid in public ,希望与你一起加油,一同成长。 

还可以关注我的博客 wallflowers (maoyu92.github.io)

  

  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/13525.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【时间复杂度和空间复杂度之间的故事】

【时间复杂度和空间复杂度之间的故事】 一.前言 二.时间复杂度定义时间复杂度的计算规则习题 三.空间复杂度定义计算方法习题空间复杂度 O(1)空间复杂度 O(n) 本文主要讲解关于时间复杂度与空间复杂度 😀😃😁😁😇&…

FastAPI单元测试:使用TestClient轻松测试你的API

当使用FastAPI进行单元测试时,一个重要的工具是TestClient类。TestClient类允许我们模拟对FastAPI应用程序的HTTP请求,并测试应用程序的响应。这使我们能够在不启动服务器的情况下对API进行全面的测试。 下面我将详细讲解TestClient的使用方法和常见操作…

10大桌面软件前端框架,那个是您的最爱呢?

桌面端前端框架是用于构建桌面应用程序的前端框架,以下是一些常用的桌面端前端框架: 1. Electron: Electron是一个开源的桌面应用程序开发框架,可以使用HTML、CSS和JavaScript构建跨平台的桌面应用程序,例如VS Code、…

2024 年第四届长三角高校数学建模竞赛赛题B题超详细解题思路+代码分享

B题 人工智能范式的物理化学家 问题一问题二问题三问题四问题五完整代码与文档获取 B题思路详细解析分享给大家,还会继续更新完成具体的求解过程,以及全部的代码与技术文档,都会直接给大家分享的哦~需要完整代码直接看到最后哦 问题一 针对问…

谈谈【软件测试的基础知识,基础模型】

关于软件测试的基本概念和基本模型 前言一个优秀的测试人员具备的素质关于需求测试用例软件错误(BUG)概念开发模型瀑布模型(Waterfall Model)螺旋模型(Spiral Model) 前言 首先,什么是软件测试? 通俗来讲:软件测试就是找BUG&…

【配置】雷池WAF社区版安装

官方文档点击跳转 什么是雷池 雷池(SafeLine)是长亭科技耗时近 10 年倾情打造的 WAF,核心检测能力由智能语义分析算法驱动。 什么是 WAF WAF 是 Web Application Firewall 的缩写,也被称为 Web 应用防火墙。 区别于传统防火墙…

记某src通过越权拿下高危漏洞

在挖掘某SRC时,遇到了一个社区网站,社区站点是我在挖掘SRC时比较愿意遇到的,因为它们可探索的内容是较多的,幸运地,通过两个接口构造参数可进行越权,从而获得整个网站用户的信息。 图片以进行脱敏处理。在…

单词可交互的弧形文本

在一个项目中,要求把少儿读本做成电子教材呈现出来,电子书的排版要求跟纸质书一致。其中,英语书有个需求:书中有些不规则排版的文本(如下图所示),当随书音频播放时,被读到的文本要求…

gin框架学习笔记(四) ——参数绑定与参数验证

参数绑定 前言 在Gin框架中我们可以利用bind来将前段传递过来的参数与结构体进行参数绑定与参数校验,而这bind的方式主要有以下两种: Mustbind:一般使用较少,因为参数校验失败会改变状态码Shouldbind:主要使用上的校验方法,校验…

Elasticsearch - HTTP

文章目录 安装基本语法索引创建索引查看索引删除索引 文档创建文档更新文档匹配查询多条件查询聚合查询映射 安装 https://www.elastic.co/downloads/past-releases/elasticsearch-7-17-0 下载完成启动bin/elasticsearch服务,可以在Postman调试各种请求。 基本语法…

高稳定LED驱动IC防干扰数显驱动控制器热水器LED驱动芯片VK1650 SOP16/DIP16 原厂FAE支持

产品型号:VK1650 产品品牌:永嘉微电/VINKA 封装形式:SOP16/DIP16 工程服务,技术支持! 概述 VK1650是一种带键盘扫描电路接口的 LED 驱动控制专用芯片,内部集成有数据锁存器、LED 驱动、键盘扫描等电路。…

2024年职称评审流程大揭秘,顺利拿下职称

上半年时间不急,中旬太忙,没有时间,下半年干着急。评职称一定要趁早,不然卡住一个流程,今年就不需要评职称了。中级副高级职称评职称就像挤公交你不努力挤一把,就只能等下一趟下一趟。所以评职称一定要看准…

[Cocos Creator 3.5赛车游戏] 第4节 创建汽车节点

在实现汽车节点之前,我们要先熟悉一下少量的基本概念,这样才能让您更快的实现第一个汽车节点。 一、基本概念 1.什么是节点: 在Cocos中,场景是由一系列节点组成的,每个节点下面又可以有子节点,而每个节点都…

Axure RP 9 for Mac:强大的原型设计利器

Axure RP 9 for Mac是一款功能强大的原型设计工具,专为Mac用户打造。它支持高保真度的应用程序和网站原型设计,帮助用户快速创建高质量的产品原型。软件内置丰富的交互效果和动画设计选项,设计师可以通过简单的操作,为原型添加各种…

记录计全支付切换到RabbitMQ时启动报错的问题

记录计全支付切换到RabbitMQ时启动报错的问题 首先在application.yml中切换到RabbitMQ配置安装RabbitMQ、Erlang、延时插件 rabbitmq_delayed_message_exchange,延迟插件必装 首先在application.yml中切换到RabbitMQ配置 # 第一处rabbitmq:addresses: 127.0.0.1:56…

Winform自定义控件 —— 开关

在开始阅读本文之前,如果您有学习创建自定义控件库并在其他项目中引用的需求,请参考:在Visual Studio中创建自定义Winform控件库并在其他解决方案中引用https://blog.csdn.net/YMGogre/article/details/126508042 0、引言 由于 Winform 框架并…

深入探索Jetpack Compose:大前端式客户端开发实战

💂 个人网站:【 摸鱼游戏】【神级代码资源网站】【工具大全】🤟 一站式轻松构建小程序、Web网站、移动应用:👉注册地址🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交…

(二)Jetpack Compose 布局模型

前文回顾 (一)Jetpack Compose 从入门到会写-CSDN博客 首先让我们回顾一下上一篇文章中里提到过几个问题: ComposeView的层级关系,互相嵌套存在的问题? 为什么Compose可以实现只测量一次? ComposeView和…

还拿B端设计经验,设计政务类系统,驴唇不对马嘴啦。

一、什么是政务类系统,涉及哪些领域 政务类系统是指用于政府机构或政府部门进行管理和运营的信息化系统。政务类系统的目的是提高政府工作效率、优化公共服务、加强政府与公民之间的互动和沟通。 政务类系统通常涵盖了各个方面的政府工作,包括但不限于以…

Media Encoder 2024 for Mac:专业的音视频编码神器

Media Encoder 2024 for Mac,作为Mac用户的专业音视频编码工具,凭借其强大的功能和用户友好的界面,深受专业人士的喜爱。它支持将各种格式的音视频素材转换为多种流行格式,如MP4、MOV、AVI等,满足不同的播放和发布需求…