【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 提供了一种更清晰的…...

无人机飞手考证热,装调检修技术详解
随着无人机技术的飞速发展和广泛应用,无人机飞手考证热正在持续升温。无人机飞手不仅需要掌握飞行技能,还需要具备装调检修技术,以确保无人机的安全、稳定和高效运行。以下是对无人机飞手考证及装调检修技术的详细解析: 一、无人机…...

AI资讯快报(2024.10.27-11.01)
1.<国家超级计算济南中心发布系列大模型> 10月28日,以“人才引领创新 开放赋能发展”为主题的第三届山东人才创新发展大会暨第十三届“海洽会”集中展示大会在山东济南举行。本次大会发布了国家超级计算济南中心大模型,包括“智匠工业大模型、知风…...

范式的简单理解
第二范式 消除非键属性对键的部分依赖 第三范式 消除一个非键属性对另一个非键属性的依赖 表中的每个非键属性都应该依赖于键,整个键,而且只有键(键可能为两个属性) 第四范式 多值依赖于主键...
活着就好20241103
🌞 早晨问候:亲爱的朋友们,大家早上好!今天是2024年11月3日,第44周的第七天,也是本周的最后一天,农历甲辰[龙]年十月初三。在这金秋十一月的第三天,愿清晨的第一缕阳光如同活力的源泉…...

《华为工作法》读书摘记
无论做什么事情,首先要明确的就是做事的目标。目标是引导行动的关键,也是证明行动所具备的价值的前提,所以目标管理成了企业与个人管理的重要组成部分。 很多时候,勤奋、努力并不意味着就一定能把工作做好,也并不意味…...

【Unity基础】初识UI Toolkit - 运行时UI
Unity中的UI工具包(UI Toolkit)不但可以用于创建编辑器UI,同样可以来创建运行时UI。 关于Unity中的UI系统以及使用UI工具包创建编辑器UI可以参见: 1. Unity中的UI系统 2. 初识UI Toolkit - 编辑器UI 本文将通过一个简单示例来…...

20.体育馆使用预约系统(基于springboot和vue的Java项目)
目录 1.系统的受众说明 2.开发环境与技术 2.1 Java语言 2.2 MYSQL数据库 2.3 IDEA开发工具 2.4 Spring Boot框架 3.需求分析 3.1 可行性分析 3.1.1 技术可行性 3.1.2 经济可行性 3.1.3 操作可行性 3.2 系统流程分析 3.3 系统性能需求 3.4 系统功能需求 4.系…...
unity3d————三角函数练习题
先上代码: public class SinCos : MonoBehaviour {public float moveSpeed 10f; //前进的速度public float changValue 5f; //左右的速度public float changeSize 5f; //左右的幅度float time 0;void Update(){this.transform.Translate(Vector3.forwa…...
如何在Linux系统中使用Git进行版本控制
如何在Linux系统中使用Git进行版本控制 Git简介 安装Git 在Debian/Ubuntu系统中安装 在CentOS/RHEL系统中安装 初始化Git仓库 配置全局用户信息 基本的Git命令 添加文件到暂存区 查看状态 提交更改 查看提交历史 工作流 分支管理 切换分支 合并分支 远程仓库 添加远程仓库 推…...
Ubuntu编译linux内核指南(适用阿里云、腾讯云等远程服务器;包括添加Android支持)
在 Ubuntu 上编译内核的步骤如下: 1、安装必要的依赖包: 这里和你chatgpt的略有不同 sudo apt-get update sudo apt-get install build-essential libncurses-dev bison flex libssl-dev libelf-dev dwarves 后续如果遇到“FAILED: load BTF from vmlinux: Invalid argum…...