当前位置: 首页 > news >正文

【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中&#xff0c;线程函数和线程启动可以通过多种形式实现。以下是几种常见的形式&#xff0c;并附有相应的示例代码。 1. 使用函数指针启动线程 最基本的方式是使用函数指针来启动线程。 示例代码&#xff1a; #include <iostream&g…...

数组排序简介-基数排序(Radix Sort)

基本思想 将整数按位数切割成不同的数字&#xff0c;然后从低位开始&#xff0c;依次到高位&#xff0c;逐位进行排序&#xff0c;从而达到排序的目的。 算法步骤 基数排序算法可以采用「最低位优先法&#xff08;Least Significant Digit First&#xff09;」或者「最高位优先…...

进程间通信(命名管道 共享内存)

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

Python 网络爬虫教程:从入门到高级的全面指南

Python 网络爬虫教程&#xff1a;从入门到高级的全面指南 引言 在信息爆炸的时代&#xff0c;网络爬虫&#xff08;Web Scraping&#xff09;成为了获取数据的重要工具。Python 以其简单易用的特性&#xff0c;成为了网络爬虫开发的首选语言。本文将详细介绍如何使用 Python …...

深度学习:正则化(Regularization)详细解释

正则化&#xff08;Regularization&#xff09;详细解释 正则化&#xff08;Regularization&#xff09;是机器学习和统计建模领域中用以防止模型过拟合同时增强模型泛化能力的一种技术。通过引入额外的约束或惩罚项到模型的损失函数中&#xff0c;正则化能够有效地限制模型的…...

Freertos学习日志(1)-基础知识

目录 1.什么是Freertos&#xff1f; 2.为什么要学习RTOS&#xff1f; 3.Freertos多任务处理的原理 1.什么是Freertos&#xff1f; RTOS&#xff0c;即&#xff08;Real Time Operating System 实时操作系统&#xff09;&#xff0c;是一种体积小巧、确定性强的计算机操作系统…...

CentOS9 Stream 支持输入中文

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

基于向量检索的RAG大模型

一、什么是向量 向量是一种有大小和方向的数学对象。它可以表示为从一个点到另一个点的有向线段。例如&#xff0c;二维空间中的向量可以表示为 (&#x1d465;,&#x1d466;) &#xff0c;表示从原点 (0,0)到点 (&#x1d465;,&#x1d466;)的有向线段。 1.1、文本向量 1…...

【力扣 + 牛客 | SQL题 | 每日5题】牛客SQL热题216,217,223

也在牛客力扣写了一百来题了&#xff0c;个人感觉力扣的SQL题要比牛客的高三档的难度。&#xff08;普遍来说&#xff09; 1. 牛客SQL热题216&#xff1a;统计各个部门的工资记录数 1.1 题目&#xff1a; 描述 有一个部门表departments简况如下: dept_nodept_named001Marke…...

Unity humanoid 模型头发动画失效问题

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

最全Kafka知识宝典之Kafka的基本使用

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

机器学习中的数据可视化:常用库、单变量图与多变量图绘制方法

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…...

CodeQL学习笔记(3)-QL语法(模块、变量、表达式、公式和注解)

最近在学习CodeQL&#xff0c;对于CodeQL就不介绍了&#xff0c;目前网上一搜一大把。本系列是学习CodeQL的个人学习笔记&#xff0c;根据个人知识库笔记修改整理而来的&#xff0c;分享出来共同学习。个人觉得QL的语法比较反人类&#xff0c;至少与目前主流的这些OOP语言相比&…...

代码随想录训练营Day11 | 226.翻转二叉树 - 101. 对称二叉树 - 104.二叉树的最大深度 - 111.二叉树的最小深度

226.翻转二叉树 题目链接&#xff1a;226.翻转二叉树思路&#xff1a;遍历二叉树&#xff0c;遍历的时候交换左右节点即可代码&#xff1a; TreeNode* invertTree(TreeNode* root) {reverse(root);return root;}// 迭代法&#xff0c;层序遍历void f2(TreeNode* root) {queue…...

“死鱼眼”,不存在的,一个提词小技巧,拯救的眼神——将内容说给用户,而非读给用户!

视频录制时&#xff0c;死鱼眼问题常见 即便内容再好&#xff0c;眼神死板也会减分 痛点真痛&#xff1a;拍视频时容易紧张 面对镜头&#xff0c;许多人难免紧张 神情僵硬&#xff0c;眼神无光&#xff0c;甚至忘词 这不仅影响表现&#xff0c;还让人难以专注 忘我场景&#x…...

深度学习在复杂系统中的应用

引言 复杂系统由多个相互作用的组成部分构成&#xff0c;这些部分之间的关系往往是非线性的&#xff0c;整体行为难以通过简单的线性组合来预测。这类系统广泛存在于生态学、气象学、经济学和社会科学等多个领域&#xff0c;具有动态演变、自组织、涌现现象以及多尺度与异质性…...

vue3图片懒加载

背景 界面很长&#xff0c;屏幕不能一下装下所有内容&#xff0c;如果以进入首页就把所有内容都加载完的话所需时间较长&#xff0c;会影响用户体验&#xff0c;所以可以当用户浏览到时再去加载。 代码 新建index.ts文件 src下新建directives文件夹&#xff0c;并新建Index…...

总结一些高级的SQL技巧

1. 窗口函数 窗函数允许在查询结果的每一行上进行计算&#xff0c;而不需要将数据分组。这使得我们可以计算累积总和、排名等。 SELECT employee_id,salary,RANK() OVER (ORDER BY salary DESC) AS salary_rank FROM employees;2. 公用表表达式 (CTE) CTE 提供了一种更清晰的…...

GPT-SoVITS应用场景解析:为视频配音、做有声书,简单又实用

GPT-SoVITS应用场景解析&#xff1a;为视频配音、做有声书&#xff0c;简单又实用 1. 引言&#xff1a;声音克隆技术带来的变革 想象一下&#xff0c;你正在制作一个短视频&#xff0c;需要为不同角色配音。传统方式要么自己录制&#xff08;效果可能不专业&#xff09;&…...

如何借助Kilo Code提升开发效率:从入门到专家的资源指南

如何借助Kilo Code提升开发效率&#xff1a;从入门到专家的资源指南 【免费下载链接】kilocode Kilo Code (forked from Roo Code) gives you a whole dev team of AI agents in your code editor. 项目地址: https://gitcode.com/GitHub_Trending/ki/kilocode 开篇价值…...

OpenClaw多模态扩展:Qwen3.5-4B-Claude分析截图内容

OpenClaw多模态扩展&#xff1a;Qwen3.5-4B-Claude分析截图内容 1. 为什么需要截图分析能力 上周我在整理项目文档时遇到了一个典型问题&#xff1a;客户发来的需求变更截图散落在十几个微信对话中&#xff0c;我需要手动对照图片内容更新PRD文档。这种机械操作不仅耗时&…...

离散裂隙注浆与COMSOL的应用

离散裂隙注浆 comsol裂隙注浆模拟这件事&#xff0c;搞过岩土工程的都懂——看着像往裂缝里灌水泥&#xff0c;实际操作起来比煮一锅意大利面还容易翻车。COMSOL在这块儿的优势就像给工程师开了透视挂&#xff0c;尤其是处理随机分布的离散裂隙时&#xff0c;能直接把三维地质结…...

科研党必备:PSCAD+MATLAB联合仿真环境搭建全流程(从软件下载到Example测试成功)

科研党必备&#xff1a;PSCADMATLAB联合仿真环境搭建全流程&#xff08;从软件下载到Example测试成功&#xff09; 当一台崭新的Win11系统电脑摆在面前&#xff0c;电力电子与新能源领域的研究者往往面临第一个挑战&#xff1a;如何快速搭建可靠的PSCAD与MATLAB联合仿真环境&a…...

OpenClaw技能商店:分享自定义nanobot模块开发经验

OpenClaw技能商店&#xff1a;分享自定义nanobot模块开发经验 1. 为什么需要自定义技能模块 去年夏天&#xff0c;当我第一次接触OpenClaw时&#xff0c;就被它的自动化能力所吸引。但很快我发现&#xff0c;官方提供的标准技能虽然强大&#xff0c;却无法完全满足我的个性化…...

SmolVLA长序列建模效果剖析:对比LSTM在时序预测任务中的表现

SmolVLA长序列建模效果剖析&#xff1a;对比LSTM在时序预测任务中的表现 最近在时间序列预测这个老生常谈的领域里&#xff0c;总有人问我&#xff1a;现在各种基于Transformer的新模型层出不穷&#xff0c;它们真的比LSTM这种“老将”强很多吗&#xff1f;尤其是在处理长序列…...

3分钟免费制作AI视频:零基础也能成为数字导演

3分钟免费制作AI视频&#xff1a;零基础也能成为数字导演 【免费下载链接】auto-video-generateor 自动视频生成器&#xff0c;给定主题&#xff0c;自动生成解说视频。用户输入主题文字&#xff0c;系统调用大语言模型生成故事或解说的文字&#xff0c;然后进一步调用语音合成…...

Python多解释器不是“未来技术”——它已在金融高频交易系统稳定运行417天(附完整监控看板截图)

第一章&#xff1a;Python多解释器的核心机制与历史演进Python长期以来以全局解释器锁&#xff08;GIL&#xff09;为标志性设计&#xff0c;单解释器模型主导了其执行范式。然而&#xff0c;随着多核硬件普及与异步编程兴起&#xff0c;对真正并行执行、内存隔离及轻量级运行时…...

告别数据迷宫:手把手教你用DataHub搭建企业级元数据搜索中心(支持MySQL/Airflow/Superset)

告别数据迷宫&#xff1a;手把手教你用DataHub搭建企业级元数据搜索中心&#xff08;支持MySQL/Airflow/Superset&#xff09; 当数据资产像野草一样在组织内疯长时&#xff0c;工程师们常常发现自己被困在由数百个数据表、数十个BI看板和错综复杂的调度任务构成的迷宫中。上周…...