ArcGIS水文分析提取河网及流域

news2024/11/24 12:02:00

在进行某些研究或者一些论文插图显示的时候,有时我们会碰到在部分资料中找不到一些小的河流或者流域的数据的情况,这里讲述通过DEM数据生成河网及流域。

一、数据来源

四川省高程数据来源于中国科学院资源环境科学与数据中心(中国科学院资源环境科学与数据中心 (resdc.cn))。

可以看到该影像覆盖区域海拔高度在97m~6511m之间。

二、数据处理

1. 填洼

利用填洼工具填充四川省数字高程数据中的凹陷点来移除数据中的小缺陷。

工具位置: Spatia Analyst 工具 -> 水文分析 -> 填洼

由下图亦可看出最低点由97变为了109,说明一些凹陷点得到填充。

2. 流向分析

流向分析即确定水流方向,在ArcGIS中是采用的D8算法进行,D8算法就是假设有无限的降水,雨水不断的在地表形成径流,假设单个栅格中的水流只能流入与之相邻的8 个栅格中。它用最陡坡度法来确定水流的方向,即在3×3 的DEM 栅格上,计算中心栅格与各相邻栅格间的距离权落差(即栅格中心点落差除以栅格中心点之间的距离),取距离权落差最大的栅格为中心栅格的流出栅格。

工具位置:Spatial Analyst 工具 -> 水文分析 -> 流向

在得到的图层中像元值的值被分为8个固定的值,很多人并不了解其所代表的含义,其实是以数值表示每个单元的流向。一般数字变化范围是1~255。其中1:东;2:东南;4南;8:西南;16:西;32:西北;64:北;128:东北。除上述数值之外的其它值代表流向不确定,这是由DEM中“洼地”和“平地”现象所造成的。

所谓“洼地”即某个单元的高程值小于任何其所有相邻单元的高程。这种现象是由于当河谷的宽度小于单元的宽度时,由于单元的高程值是其所覆盖地区的平均高程,较低的河谷高度拉低了该单元的高程。这种现象往往出现在流域的上游。“平地”指相邻的8个单元具有相同的高程,与测量精度、DEM单元尺寸或该地区地形有关。这两种现象在DEM 中相当普遍。

3. 流量统计

通过流量工具统计累计每个流向栅格的总数。在ArcGIS软件中,这个流量栅格并不是水文学意义上的河流流量,与水文站实测的数据是两个完全不同意义的名词。这里的流量指的是有多少个格子的水流汇流到某一点上,是一个空间范围概念。如果要转换为水文学上的术语,以水文站为例,那就是该水文站对应的上游集水区面积。

ArcGIS的流量统计是需要流向栅格进行参考的,其统计原理如下图

工具位置:Spatial Analyst 工具 -> 水文分析 -> 流量

4. 确定最小径流

这部分是根据自己的需要来确定想要输出的最小径流量的河流,这里采用栅格计算器工具计算,本例中设定的最小流量为5000。

工具位置:Spatial Analyst 工具 -> 地图代数 -> 栅格计算器

5. 河流链接

为了将像元点串起来并做了不同线段的划分,反应河流之间的关系,这里进行河流链接操作。

工具位置:Spatial Analyst 工具 -> 水文分析 -> 河流链接

从分析结果可以看到,链接之后离散的像元会被串联起来,形成独立的河流。如下图所示,河网已经被串联成10713条河流,但仍然使用栅格的形式表示。

6. 河网分级

利用河网分级工具对支流干流进行划分。在水文学上,河流链接不是为了提取矢量河流,而是为河流分级做准备。水文学更多的是关注河流之间的关系、河流与流域的关系,而非河流本身的图形;即便关注的是单个河流的几何图形,但一般也会跟高程带上关系,例如河流比降。所以,河流链接之后,一般就是对河流进行分级了。

工具位置:Spatial Analyst 工具 -> 水文分析 -> 河网分级

7. 河网矢量化

利用栅格河网矢量化工具将河网栅格转化为栅格矢量,方便我们后续进行矢量化。

工具位置:Spatial Analyst 工具 -> 水文分析 -> 栅格河网矢量化

当然也可以使用栅格转折线工具。

工具位置:转换工具 -> 由栅格转出 -> 栅格转折线

相对来说栅格河网矢量化工具更专业一点,因为除了转化为矢量河流之外,还会自动的创建了河流链接。下图(左边)可以通过属性表看到生成的10713条河流,跟前面所说的河流链接工具的结果(右边)是一样的。

8. 流域提取

首先打开属性表,利用按属性选择工具选取3、4、5、6级的河流,再利用融合工具提取这部分河流,并融合同级别河流,取消勾选创建多部件要素,不将同级别但不接触的河流融合在一起。

工具位置:数据管理工具 -> 制图综合 -> 融合

利用要素折点转点工具从矢量河网数据中提取分水岭工具所需要的要素倾泻点(河流出水口),将点类型设置为END,即河流终点为出水口。

工具位置:数据管理工具 -> 要素 -> 要素折点转点

利用捕捉倾泻点工具进行校正。其目的是要找到这个点附近的区域流量栅格中的最大值,确保这个流量值是由上游区域贡献的流量。否则,实际输出的倾泻点数据有可能与之叠加的流量栅格不是该区域的最大值,导致出现非常细小的流域面。

工具位置:Spatial Analyst 工具 -> 水文分析 -> 捕捉倾泻点

由于上面已经得到河流链接的数据,这里通过分水岭工具进行计算获取流域范围。

工具位置:Spatial Analyst 工具 -> 水文分析 -> 分水岭

三、符号化制图

1. 河网符号化显示

右键河网矢量图层,选择属性 -> 符号系统 -> 类别 -> 唯一值,值字段设置为grid_code,选择蓝色渐变,设置河网级别由大到小的线段宽度分别为3、2.5、2、1.5、1、0.5,在标题标注栏填入河流分级。

2. 裁剪

右键数据框,选择属性 -> 数据框,在裁剪选项中选择裁剪至形状。

点击指定形状,选择要素的轮廓为四川省行政边界。

3. 更改布局

在布局工具栏中选择更改布局 -> ISO(A)Page Sizes -> ISO AO Landscape.mxd,当然也可以挑选个人喜欢的布局。

4. 添加地图必要元素

在地图中插入标题、图例、指北针、比例尺等地图必要元素准备出图。

添加比例尺时点击属性可以设置单位,这里我们选择为千米。

5. 添加经纬网

右键数据框选择属性,在格网选项卡中点击新建格网。

在弹出的对话框第二页选择仅标注,第三页每个长轴主刻度数设置为9,其它页均为默认。

设置完成后在格网选项卡中选择属性,在弹出的对话框中,轴页长轴主刻度和分刻度的刻度大小分别设置为20磅和8磅;标注页将文字大小设置为48,垂直标注勾选左和右。

四、成果展示

来源:GIS前沿

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

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

相关文章

Vue3学习之深度剖析CSS Modules和Scope

Css Modules 是通过对标签类名进行加装成一个独一无二的类名,比如.class 转换成.class_abc_123,类似于symbol,独一无二的键名 Css Scope 是通过为元素增加一个自定义属性,这个属性加上独一无二的编号,而实现作用域隔离。 原理 …

爬虫必备抓包工具——Fiddler【认识使用】

目录:1.fiddler (抓包工具)1.1 引入:HTTP/https代理(正向代理)1.2 拓展:反向代理:1.2 初识Fiddler①什么是抓包?抓包有什么用?②浅谈fiddler:③fi…

Unity_Skybox自定义插件可实现日夜更替Polyverse Skies | Low Poly

又又一个天空盒,不过这个做的还是比较完善的。。。不会出现买家秀和买家秀差别大问题 此Skybox插件特色提供: 可扩展,自定义很多的Skybox Shader预制体几个,虽然都是夜晚样式(缺白天)若干预设值</

对NIO和BIO的进一步理解

疑问 在之前的学习中&#xff0c;只提到BIO是阻塞IO&#xff0c;在建立连接和读写事件时会阻塞线程。NIO是非阻塞IO&#xff0c;基于事件注册&#xff0c;通过Selector进行切换Channel&#xff0c;不会阻塞线程。对于这种解释&#xff0c;还是带有一些疑问的。Selector进行Cha…

#define 实现快捷模板类实例在eigen::Maxtrix中的应用

欢迎关注更多精彩 关注我&#xff0c;学习常用算法与数据结构&#xff0c;一题多解&#xff0c;降维打击。 背景 在eigen库中&#xff0c;矩阵类原来的用法是 Matrix<Type, row, col>。 为了方便用户&#xff0c;库中还提供了用户常用的快捷类型&#xff0c;比如Matrix…

Java-String的API

一、length()package 做题; import java.lang.reflect.Array; import java.security.PublicKey; import java.util.Arrays; import java.util.Scanner;import javax.naming.StringRefAddr;public class Main {public static void main(String[] args) {Scanner sc new Scanne…

ZeroTierr的moon云服务器搭建和使用

搭建moon 问题是ZeroTier One本身的服务器都在国外访问速度很慢。可以通过搭建国内Moon服务加速解决连接慢的问题。 1、 进入云服务器在线安装zerotier curl -s https://install.zerotier.com/ | sudo bash查看安装zerotier版本 sudo zerotier-cli status安装完成后生成moon…

从0到1完成一个Vue后台管理项目(二十二、列表拖拽排序SortableJS)

往期 从0到1完成一个Vue后台管理项目&#xff08;一、创建项目&#xff09; 从0到1完成一个Vue后台管理项目&#xff08;二、使用element-ui&#xff09; 从0到1完成一个Vue后台管理项目&#xff08;三、使用SCSS/LESS&#xff0c;安装图标库&#xff09; 从0到1完成一个Vu…

Python WebGL 3D应用开发快速入门

在本文中&#xff0c;我们将学习如何在Python中使用three.js库&#xff0c;而无需编写任何一行 JavaScript。我们将使用PyWeb3D&#xff0c;这是一个额外的层&#xff0c;旨在与Brython的three.js轻松交互。 1、什么是PyWeb3D&#xff1f; 简单地说&#xff0c;PyWeb3D是一个…

现代JavaScript,你应该使用的10件事

javascripttip&#xff08;3 部分系列&#xff09;1现代 JavaScript&#xff0c;你应该使用的 10 件事&#xff0c;从今天开始2了解如何在 JavaScript 中使用循环3如何在 JavaScript 中学习足够多的 RegEx 才能变得危险您可能对 JavaScript 完全陌生&#xff0c;也可能多年来只…

文件学习笔记

删除线格式 ## 文件描述符 1.文件文件内容文件属性。 2.文件操作文件内容的操作文件属性的操作。 3.所谓的“打开”文件&#xff0c;是指将文件的属性或内容加载到内存中—这是由冯诺依曼决定。 4.所以文件不全打开&#xff0c;不打开的文件放在磁盘存储。 5.内存文件&#xff…

在线教育-谷粒学院学习笔记(三)

文章目录1 搭建前端项目环境2 前端页面框架介绍3 讲师管理前端开发4 后台系统登录功能改造到本地5 前端框架开发过程6 讲师列表前端实现7 讲师分页前端实现8 讲师条件查询前端实现9 讲师删除功能前端实现10 讲师添加前端实现11 讲师修改前端实现12 前端路由切换问题解决1 搭建前…

Linux工具学习之【gdb】

✨个人主页&#xff1a; Yohifo &#x1f389;所属专栏&#xff1a; Linux学习之旅 &#x1f38a;每篇一句&#xff1a; 图片来源 &#x1f383;操作环境&#xff1a; CentOS 7.6 阿里云远程服务器 Whatever is worth doing is worth doing well. 任何值得去做的事情&#xff0…

【HTML】一款可交互的响应式登陆注册表单,你确定不来看看嘛(附源码)

&#x1f482;作者简介&#xff1a; THUNDER王&#xff0c;一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读&#xff0c;同时任汉硕云&#xff08;广东&#xff09;科技有限公司ABAP开发顾问。在学习工作中&#xff0c;我通常使用偏后…

2022年五一杯数学建模C题火灾报警系统问题求解全过程论文及程序

2022年五一杯数学建模 C题 火灾报警系统问题 原题再现&#xff1a; 二十世纪90年代以来&#xff0c;我国火灾探测报警产业化发展非常迅猛&#xff0c;从事火灾探测报警产品生产的企业已超过100家&#xff0c;年产值达几十亿元&#xff0c;已经成为我国高新技术产业的一个组成…

Docker之Nginx部署前端项目

目录 创建nginx容器 nginx.conf讲解 ①所有配置必须以“;”结尾 ②nginx发布java项目 nginx发布静态vue项目 nginxtomcat实现反向代理及均衡 nginxhtml静态服务器 创建nginx容器 docker run –name mynginx -d -p 80:80 -v /data/nginx/conf/nginx.conf:/etc/nginx/ngin…

6款强烈推荐的 SD卡/内存卡数据恢复软件

SD卡/内存卡在 21 世纪的作用比以往任何时候都更加重要。众所周知&#xff0c;SD卡/内存卡具有高数据传输率并且是便携式设备&#xff0c;大多数摄影师甚至智能手机用户主要依靠它们来保存所有个人或项目照片和视频。此外&#xff0c;SD 卡还因其与各种设备的兼容性而广受欢迎。…

JUC并发编程学习笔记——AQS个人理解

1. AQS引出 1.1 前置知识&#xff1a; 线程创建的四种方式&#xff1a;Thread、Runnable、callable、线程池 LockSupport的使用&#xff1a;park()和unpark()方法 LockSupport是一个工具类&#xff0c; 提供了基本的线程阻塞和唤醒功能&#xff0c;它是创建锁和其他同步组件的…

使用 NVIDIA NeuralVDB优化大规模稀疏

使用 NVIDIA NeuralVDB优化大规模稀疏 基于 OpenVDB 过去十年的发展&#xff0c;NVIDIA NeuralVDB 的推出对于处理极其庞大和复杂的数据集的开发人员和研究人员来说是一个游戏规则的改变者。 NVIDIA NeuralVDB 的预发布版本为 OpenVDB 带来了 AI 和 GPU 优化&#xff0c;将烟雾…

【OpenCV】:OpenCV人脸识别项目杂记

项目目标&#xff1a; 1.图片人脸识别 2.视频人脸识别 3.ESP32Cam摄像头网页视频人脸识别 项目效果视频&#xff1a; ESP32Cam摄像头人脸识别OpenCV本地视频人脸识别ESP32Cam摄像头人脸检测项目基础代码内容&#xff1a; 一、读取图片 # 导入cv模块 import cv2 as cv# 读取图…