【ARCGIS实验】地形特征线的提取
目录
一、提取不同位置的地形剖面线
二、将DEM转化为TIN
三、进行可视分析
四、进行山脊、山谷等特征线的提取
1、正负地形提取(用于校正)
2、山脊线提取
3、山谷线的提取
4、河网的提取
5、流域的分割
五、鞍部点的提取
1、背景
2、目的
3、要求
4、数据
5、算法思想
6、操作步骤
(1)正地形、等高线和晕染图的提取
(2)山脊线的提取
(3)反地形山脊(即山谷线)的提取
(4)鞍部点的提取
六、参考链接
一、提取不同位置的地形剖面线
(1)在菜单栏单击【Customize】-【Toolbars】-【3D Analyst】,在3D Analyst工具条中选择“插入线”。
(2)在dem图中画线。
(3)在3D Analyst工具中点击选择“剖面图”。
(4)生成的上述所画线段的剖面图。
二、将DEM转化为TIN
选择【3D Analyst Tools】-【Conversion】-【From Raster】-【Raster to TIN】,打开Raster to TIN对话框,选择dem图层,设置输出TIN路径和文件名,点击OK按钮,即可得到由dem转换的tin图层。
三、进行可视分析
(1)通视分析
I、在菜单栏单击【Customize】-【Toolbars】-【3D Analyst】,在3D Analys工具条中单击“视现瞄准线工具”,打开视现瞄准线对话框,在地形表面上分别点击确定观测点和目标点位置。出现通视线,红色表示不可视,绿色表示可视。
II、3D Analys工具条
III、视现瞄准线对话框
IV、通视线
(2)视点分析
I、选择【3D Analyst Tools】-【Raster Surface】-【Curvature】,在打开的Curvature对话框中选择输入dem数据,点击OK按钮即可得到输出的栅格图层。
II、输出栅格
四、进行山脊、山谷等特征线的提取
1、正负地形提取(用于校正)
(1)在ArcToolbox中选择【Spatial Analyst Tools】-【Neighborhood(领域分析)】-【Focal Statistics(焦点统计)】,在打开的Focal Statistics对话框中选择输入dem数据,利用领域分析方法以11*11的窗口计算平均值,计算结果命名为meandem。
(2)点击【Spatial Analyst Tools】-【Map Algebra(地图代数)】-【Raster Calculator(栅格计算器)】,在打开的Raster Calculator对话框中对dem数据和meandem做减法运算。计算结果命名为xin。
(3)选择【Spatial Analyst Tools】-【Reclass(重分类)】-【Reclassify(重分类)】,对运算结果重分类。在弹出的Reclassify对话框中选择xin图层,分级界限为0,将大于0的区域属性值赋为1,小于0的区域赋值为0,命名为“zhengdixing”。另一次将小于0的区域属性值赋值为1,大于0的区域赋值为0,命名为fudixing。
2、山脊线提取
(1)填充洼地。点击【Spatial Analyst Tools】-【Hydrlogy(水文分析)】-【Fill(填洼)】,在打开的Fill对话框中选择输入dem数据,输出栅格数据文件名为Fill_dem。
(2)计算水流方向。选择【Spatial Analyst Tools】-【Hydrology(水文分析)】-【Flow Direction(流向)】,在打开的Flow Direction对话框中选择输入Fill_dem数据,输出栅格数据文件名为flowdirfill。
(3)计算汇流累积量。点击【Spatial Analyst Tools】-【Hydrology(水文分析)】-【Flow Accumulation(流量)】,在弹出的Flow Accumulation对话框中选择输入flowdirfill数据,输出栅格数据文件名为flowacc1。
(4)汇流累积量为零值的提取。打开【Spatial Analyst Tools】-【Map Algebra】-【Raster Calculator】,在打开的Raster Calculator对话框中输入公式:"flowacc1" == 0,输出栅格数据文件名为facc0。
(5)对facc0进行领域分析。点击【Spatial Analyst Tools】-【Neighborhood】-【Focal Statistics】,在打开的Focal Statistics对话框中选择输入facc0数据,输出栅格数据文件名为neiborfacc0。 (3*3 mean)
(6)打开【Spatial Analyst Tools】-【Surface(表面分析)】-【Contour(等值线)】,生成dem的等值线图,命名为Contour_dem;
打开【Spatial Analyst Tools】-【Surface(表面分析)】-【Hillshade(山体阴影)】,生成dem的山体阴影晕渲图,命名为Hillshade_dem。
(7)在neiborfacc0图层上右键选择属性,进行重新分级,分为2级,这时不断调整分级临界点,并以等值线图和晕渲图作为辅助判断,属性值越接近1的栅格越有可能是山脊线的位置,最终确定的分界阈值为0.5541。
(8)将进行过二值化的neiborfacc0进行重分类为Reclass_neiborfacc0,将属性值接近1的那一类的属性值赋值为1,其余赋值为0。【Spatial Analyst——重分类——重分类】
(9)打开栅格计算器,输入命令: "Reclass_neiborfacc0" * "zhengdixing",以消除那些存在于负地形区域中的错误的山脊线。输出栅格数据文件名为:shanjixiannoworry。
(10)对shanjixiannoworry图层重分类,所有属性不为1的栅格属性赋值NO DATA,这样就得到了山脊线,命名为Shanjixian。【Spatial Analyst——重分类——重分类】
3、山谷线的提取
打开栅格计算器,输入公式:Abs(“dem”-5000),得到与dem地形完全相反的反地形数据。剩下提取山谷线的步骤就和提取山脊线完全相同。
计算过程中的数据名称分别为:水流方向数据flowdirfan,汇流累积量数据flowacc2,零值汇流累积量nbfaccfan,对flowaccfan进行3*3领域分析求均值后的结果数据为flowacc0fan,并将其分级改为2级,分级阈值为0.65677。
4、河网的提取
(1)填充洼地
打开【ArcToolbox】-【Spatial Analyst Tools】-【Hydrology】-【Fill】,在打开的Fill对话框中选择输入dem数据,输出栅格数据文件名为filldem。
(2)生成水流方向
点击【Hydrology】-【Flow Direction】,在打开的Flow Direction对话框中选择输入filldem数据,输出栅格数据文件名fdirfill。
(3)计算汇流累积量
打开【Hydrology】-【Flow Accumulation】,在打开的Flow Accumulation对话框中选择输入fdirfill数据,输出上数据文件名flowacc。
(4)提取河网
I、提取河网栅格数据
打开栅格计算器,输入公式:Con(“flowacc”>800,1),输出栅格数据文件名streamnet。
II、提取河网矢量数据
打开【Hydrology】-【Stream to Feature】,在打开的Stream to Feature对话框中选择输入streamnet数据和fdirfill数据,输出矢量数据文件名StreamT_streamn3。
5、流域的分割
(1)提取流域盆地
打开【Hydrology】-【Basin】,在打开的Basin对话框中选择输入fdirfill数据,输出栅格数据文件名basin。
(2)生成集水流域
I、提取Streamlink
打开【Hydrology】-【Stream Link】,在打开的Stream Link对话框中输入streamnet和fdirfill数据,输出栅格数据文件名streamlink。
II、集水流域的生成
打开【Hydrology】-【Watershed】,在打开的Watershed对话框中输入fdirfill和streamlink数据,输出栅格数据文件名watershed。
五、鞍部点的提取
1. Spatial Analyst——地图代数——栅格计算器(输出:anbuqu)
"flowacc0" * "facc0fan"
2. Spatial Analyst——地图代数——栅格计算器(输出:rasteranbu)
"zhengdixing" * "anbuqu"
3. Spatial Analyst——重分类——重分类(输出:rasteranbu2)
=0→NO DATA
4. 转换工具——由栅格转出——栅格转点(输出:anbudian)
5. 对照等高线和山体阴影人工剔除伪鞍部点
具体步骤如下:
1、背景
相邻两山头之间呈马鞍形的低凹部分称为鞍部。鞍部点是重要的地形控制点,它和山顶点、山谷点及山脊线、山谷线等构成地形特征点线,对地形具有很强的控制作用。因此,因此,对这些地形特征点、线的分析研究在数字地形分析中具有很重要的意义。同时,由于鞍部点的特殊地貌形态,是的鞍部点的提取方法较山顶点低谷底点更难,目前都还存在一定的技术局限性。
2、目的
利用水文分析的方法提取地形鞍部点;
通过多种GIS空间分析方法的应用,提高对知识的综合运用能力。
3、要求
利用水文分析模块和空间分析模块相应功能提取样区地形鞍部点。
4、数据
25m分辨率的DEM数据。
5、算法思想
鞍部具有独特的形态特征,可被认为是原始地形中的山脊和反地形中的山脊回合的地方,因此可通过提取正反地形的山脊线并求其交点,获得鞍部点,鞍部点的提取流程如下图所示。
6、操作步骤
(1)正地形、等高线和晕染图的提取
同山脊线和山谷线的提取一样,由于鞍部点的整体位置是处于山脊上的,需要提取正地形以过滤那些在负地形上的错误的点。正地形的提取方法为:先用焦点统计算出DEM的平均meandem,再使用栅格计算器计算平均meandem和dem的差值,使用重分类将其分为两级,分级界线为 0,将大于 0 的区域赋值为1(即为正地形),小于 0 的区域赋值为0,命名为zhengdixing;另一次将小于0的区域赋值为1(即为负地形),大于0的赋值为0,命名负地形。利用【Spatial Analyst】|【表面分析】|【等值线】和【Spatial Analyst】|【表面分析】|【山体阴影】分别提取样区等高距为40m的等高线数据ctour和样区的晕染图hillshade。
(2)山脊线的提取
山脊的提取与上述山脊线的提取一样。分别是进行洼地填充、水流方向提取、汇流累积量的计算、汇流累积量等于0的提取。
(3)反地形山脊(即山谷线)的提取
反地形山脊的提取与上述山谷线的提取过程完全相同。分别是基于原始DEM计算出反地形DEM数据(计算中是利用原始DEM减去3000);基于反地形DEM数据提取水流方向数据;基于水流方向数据进行汇流累积量的计算;提取汇流累积量为0的栅格。
(4)鞍部点的提取
I、利用【Spatial Analyst 工具】|【地图代数】|【栅格计算器】工具将提取出的山脊线数据和山谷线数据相乘,结果为鞍部区。
II、利用同样的方法将鞍部区和正地形相乘,就得到了鞍部点的栅格数据anbudian。
III、重分类鞍部点栅格数据,将所有0值赋为NODATA数据,属性为一的保持不变,得到Reanbudian。
IV、将栅格数据Reanbudian转换成矢量数据鞍部点,配合等高线和晕染图对矢量形式的鞍部点数据进行编辑,剔除那些处于样区边缘以及内部的伪鞍部点。
注意:这里山脊和反山脊的提取只需要提取到流量等于0的地方。
六、参考链接
(1)【GIS实验】山脊山谷鞍部提取
https://blog.csdn.net/rodericklr/article/details/140178675
(2)Arcgis中山脊线,山谷线的提取,以及流域的分割
https://blog.csdn.net/qq_40323256/article/details/90320180?spm=1001.2014.3001.5506
(3)用ArcGIS进行地形鞍部的提取方法
https://mp.weixin.qq.com/s?src=11×tamp=1728376536&ver=5553&signature=OXfhwKOoxl9PPfsQhgTvdB39LKuiILBcn4j*V36aHphQpssZJqxSB5hkZVKP9Jp0HkNULAa5X5Ms*YIvw9gK0laiUC7vgk8ahkurLAVtUVhf75fGU0XNpLjzkDhwV-Kg&new=1
相关文章:

【ARCGIS实验】地形特征线的提取
目录 一、提取不同位置的地形剖面线 二、将DEM转化为TIN 三、进行可视分析 四、进行山脊、山谷等特征线的提取 1、正负地形提取(用于校正) 2、山脊线提取 3、山谷线的提取 4、河网的提取 5、流域的分割 五、鞍部点的提取 1、背景 2、目的 3…...

HTML 基础标签——表格标签<table>
文章目录 1. `<table>` 标签:定义表格2. `<tr>` 标签:定义表格行3. `<th>` 标签:定义表头单元格4. `<td>` 标签:定义表格单元格5. `<caption>` 标签:为表格添加标题6. `<thead>` 标签:定义表格头部7. `<tbody>` 标签:定义表格…...

线程函数和线程启动的几种不同形式
线程函数和线程启动的几种不同形式 在C中,线程函数和线程启动可以通过多种形式实现。以下是几种常见的形式,并附有相应的示例代码。 1. 使用函数指针启动线程 最基本的方式是使用函数指针来启动线程。 示例代码: #include <iostream&g…...

数组排序简介-基数排序(Radix Sort)
基本思想 将整数按位数切割成不同的数字,然后从低位开始,依次到高位,逐位进行排序,从而达到排序的目的。 算法步骤 基数排序算法可以采用「最低位优先法(Least Significant Digit First)」或者「最高位优先…...

进程间通信(命名管道 共享内存)
文章目录 命名管道原理命令创建命名管道函数创建命名管道 共享内存原理shmgetFIOK 代码应用:premsnattch 命名管道 用于两个毫无关系的进程间的通信。 原理 Linux文件的路径是多叉树,故文件的路径是唯一的。 让内核缓冲区不用刷新到磁盘中,…...

Python 网络爬虫教程:从入门到高级的全面指南
Python 网络爬虫教程:从入门到高级的全面指南 引言 在信息爆炸的时代,网络爬虫(Web Scraping)成为了获取数据的重要工具。Python 以其简单易用的特性,成为了网络爬虫开发的首选语言。本文将详细介绍如何使用 Python …...
深度学习:正则化(Regularization)详细解释
正则化(Regularization)详细解释 正则化(Regularization)是机器学习和统计建模领域中用以防止模型过拟合同时增强模型泛化能力的一种技术。通过引入额外的约束或惩罚项到模型的损失函数中,正则化能够有效地限制模型的…...

Freertos学习日志(1)-基础知识
目录 1.什么是Freertos? 2.为什么要学习RTOS? 3.Freertos多任务处理的原理 1.什么是Freertos? RTOS,即(Real Time Operating System 实时操作系统),是一种体积小巧、确定性强的计算机操作系统…...

CentOS9 Stream 支持输入中文
CentOS9 Stream 支持输入中文 方法一:确保 gnome-control-center 和相关组件已更新方法二:手动添加输入法源配置方法三:配置 .xinputrc 文件方法四:检查语言包 进入centos9 stream后,点击右上角电源键,点击…...

基于向量检索的RAG大模型
一、什么是向量 向量是一种有大小和方向的数学对象。它可以表示为从一个点到另一个点的有向线段。例如,二维空间中的向量可以表示为 (𝑥,𝑦) ,表示从原点 (0,0)到点 (𝑥,𝑦)的有向线段。 1.1、文本向量 1…...
【力扣 + 牛客 | SQL题 | 每日5题】牛客SQL热题216,217,223
也在牛客力扣写了一百来题了,个人感觉力扣的SQL题要比牛客的高三档的难度。(普遍来说) 1. 牛客SQL热题216:统计各个部门的工资记录数 1.1 题目: 描述 有一个部门表departments简况如下: dept_nodept_named001Marke…...

Unity humanoid 模型头发动画失效问题
在上一篇【Unity实战笔记】第二十二 提到humanoid 模型会使原先的头发动画失效,如下图所示: 头发摆动的是generic模型和动画,不动的是humanoid模型和动画 一开始我是尝试过在模型Optimize Game objects手动添加缺失的头发骨骼的,奈…...

最全Kafka知识宝典之Kafka的基本使用
一、基本概念 传统上定义是一个分布式的基于发布/订阅模式的消息队列,主要应用在大数据实时处理场景,现在Kafka已经定义为一个分布式流平台,用于数据通道处理,数据流分析,数据集成和关键任务应用 必须了解的四个特性…...

机器学习中的数据可视化:常用库、单变量图与多变量图绘制方法
《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…...

CodeQL学习笔记(3)-QL语法(模块、变量、表达式、公式和注解)
最近在学习CodeQL,对于CodeQL就不介绍了,目前网上一搜一大把。本系列是学习CodeQL的个人学习笔记,根据个人知识库笔记修改整理而来的,分享出来共同学习。个人觉得QL的语法比较反人类,至少与目前主流的这些OOP语言相比&…...
代码随想录训练营Day11 | 226.翻转二叉树 - 101. 对称二叉树 - 104.二叉树的最大深度 - 111.二叉树的最小深度
226.翻转二叉树 题目链接:226.翻转二叉树思路:遍历二叉树,遍历的时候交换左右节点即可代码: TreeNode* invertTree(TreeNode* root) {reverse(root);return root;}// 迭代法,层序遍历void f2(TreeNode* root) {queue…...

“死鱼眼”,不存在的,一个提词小技巧,拯救的眼神——将内容说给用户,而非读给用户!
视频录制时,死鱼眼问题常见 即便内容再好,眼神死板也会减分 痛点真痛:拍视频时容易紧张 面对镜头,许多人难免紧张 神情僵硬,眼神无光,甚至忘词 这不仅影响表现,还让人难以专注 忘我场景&#x…...

深度学习在复杂系统中的应用
引言 复杂系统由多个相互作用的组成部分构成,这些部分之间的关系往往是非线性的,整体行为难以通过简单的线性组合来预测。这类系统广泛存在于生态学、气象学、经济学和社会科学等多个领域,具有动态演变、自组织、涌现现象以及多尺度与异质性…...
vue3图片懒加载
背景 界面很长,屏幕不能一下装下所有内容,如果以进入首页就把所有内容都加载完的话所需时间较长,会影响用户体验,所以可以当用户浏览到时再去加载。 代码 新建index.ts文件 src下新建directives文件夹,并新建Index…...
总结一些高级的SQL技巧
1. 窗口函数 窗函数允许在查询结果的每一行上进行计算,而不需要将数据分组。这使得我们可以计算累积总和、排名等。 SELECT employee_id,salary,RANK() OVER (ORDER BY salary DESC) AS salary_rank FROM employees;2. 公用表表达式 (CTE) CTE 提供了一种更清晰的…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...
蓝桥杯 冶炼金属
原题目链接 🔧 冶炼金属转换率推测题解 📜 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V,是一个正整数,表示每 V V V 个普通金属 O O O 可以冶炼出 …...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解
在 C/C 编程的编译和链接过程中,附加包含目录、附加库目录和附加依赖项是三个至关重要的设置,它们相互配合,确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中,这些概念容易让人混淆,但深入理解它们的作用和联…...
【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案
目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后,迭代器会失效,因为顺序迭代器在内存中是连续存储的,元素删除后,后续元素会前移。 但一些场景中,我们又需要在执行删除操作…...

Unity UGUI Button事件流程
场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...
Linux系统部署KES
1、安装准备 1.版本说明V008R006C009B0014 V008:是version产品的大版本。 R006:是release产品特性版本。 C009:是通用版 B0014:是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存:1GB 以上 硬盘…...