基于ArcGis提取道路中心线

news/2025/2/20 6:24:18

基于ArcGis提取道路中心线

文章目录

  • 基于ArcGis提取道路中心线
  • 前言
  • 一、生成缓冲区
  • 二、导出栅格数据
  • 三、导入栅格数据
  • 四、新建中心线要素
  • 五、生成中心线
  • 总结


前言

最近遇到一个问题,根据道路SHP数据生成模型的时候由于下载的道路数据杂项数据很多,所以导致生成的道路数据非常奇怪,主要问题是道路数据很多是双向的还有各种分支道路,这个时候就在想有没有什么办法能提取道路的中心线,下面是如何ArcGis中对道路数据进行提取中心线


提示:以下是本篇文章正文内容,下面案例可供参考

一、生成缓冲区

1.首先打开需要生成的道路数据:
在这里插入图片描述
2.打开后利用工具箱的缓冲区工具生成一个缓冲区矢量数据:
在这里插入图片描述
在这里插入图片描述
调整参数后点击 确定:
在这里插入图片描述
这里处理完成后 会生成一个缓冲区的矢量数据

注:这里处理的对话框 这个是自己打开的 默认是不打开的,如果要打开的话 可与再上方工具栏中找到【地理处理】-【地理处理选项】->【后台处理】的勾去掉即可。

3.生成缓冲区后再图层中修改缓冲区的颜色
在这里插入图片描述
将颜色改成黑色,轮廓宽度改成0 后点击确定:
在这里插入图片描述

二、导出栅格数据

1.上面步骤将缓冲区颜色修改后 然后将元数据隐藏只留缓冲区图层:
在这里插入图片描述
然后选择缓冲区图层 右键->【缩放至图层】
在这里插入图片描述
2.执行【缩放至图层】操作后,再工具栏中选择【文件】->【导出地图】:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
再导出地图选项中 将上图的红框选项修改完毕后 选择保存按钮即可

三、导入栅格数据

1.上述步骤完毕后,将数据添加到图层中:
在这里插入图片描述
2.添加过程中会弹出一个对话框:
在这里插入图片描述
在这里插入图片描述
3.上图选项默认即可,导入后将缓冲区图层隐藏:
在这里插入图片描述
4.设置栅格图层的唯一值:
导入栅格图层后 双击删图层 操作如图:
在这里插入图片描述
选择应用后 点击确认即可

四、新建中心线要素

1…新建中心线图层
再默认的文件数据库中右键新建一个线要素
在这里插入图片描述
在这里插入图片描述
2.选择新建 要素类后 弹出如下弹窗:
在这里插入图片描述
3.然后选择对应的投影坐标系:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4.完成上方操作后 点击完成 会自动将新建的图层添加到地图中:
在这里插入图片描述

五、生成中心线

前面4个步骤操作完毕后,接下来就开始生成道路中心线了

1.保证图层中只有删格数据和线要素数据:
在这里插入图片描述
2.然后再道路数据 右键 选择编辑要素:
在这里插入图片描述
3.执行完开始编辑步骤后 在上方工具栏选择【自定义】->【扩展模块】选项
在这里插入图片描述
在这里插入图片描述

4.将【ArcScan】勾选上后 点击关闭选项,紧接着重新在工具栏中打开 ArcScan工具:
在这里插入图片描述
在这里插入图片描述
5.修改【栅格捕捉选项】参数:
在这里插入图片描述
5.上图中的 最大宽度根据自己的要求进行修改即可 修改数值后点击确定即可,然后点击【矢量化】打开显示预览:
在这里插入图片描述
如上图所示 道路的中心线已经生成了,接着保存中心线 点击【矢量化】->【生成要素】:
在这里插入图片描述
在这里插入图片描述
点击确定后 中心线就在新建的中心线图层创建了。

在这里插入图片描述

生成后记得停止编辑,然后把栅格图层隐藏就好了。

在这里插入图片描述
到这里基于ArcGis提取道路中心线的步骤就完成了。


总结

以上就是今天要讲的内容,本文仅仅简单基于ArcGis提取道路中心线,上面步骤还能再继续优化,相关的数值参数自行调整即可。


http://www.niftyadmin.cn/n/4944602.html

相关文章

python 自动化学习(四) pyppeteer 浏览器操作自动化

背景 之前我在工作中涉及到了很多地方都是重复性的页面点点点工作,又因为安全保密原则不开放接口和数据库,只有一个页面来提供点击进行操作,就想着用前面学的自动化来实现,但发现前面学的模拟操作对浏览器来说并没有那么友好&…

大数据:Numpy基础应用详解

Numpy基础应用 Numpy 是一个开源的 Python 科学计算库,用于快速处理任意维度的数组。Numpy 支持常见的数组和矩阵操作,对于同样的数值计算任务,使用 NumPy 不仅代码要简洁的多,而且 NumPy 的性能远远优于原生 Python,…

什么是React的上下文(Context)?如何使用和传递上下文信息?

1、什么是React的上下文(Context)?如何使用和传递上下文信息? React上下文(Context)是React提供的一种功能,允许你在组件之间传递数据和状态。通过使用上下文,你无需通过props一层一层地传递数据,从而减少了代码的复杂…

学习Vue:动态组件与异步组件

在Vue.js中,动态组件和异步组件加载是两个强大的高级特性,它们可以使您的应用程序更具动态性和性能。在本文中,我们将探讨这两个概念,以及如何在Vue应用程序中使用它们。 动态组件 动态组件是指可以根据不同情况在同一个位置切换…

[国产MCU]-W801开发实例-W801SDK介绍及启动过程解析

W801SDK介绍及启动过程解析 文章目录 W801SDK介绍及启动过程解析1、W801SDK目录结构解析2、W801SDK启动流程2.1 芯片级启动流程2.2 系统初始化2.3 板级初始化2.4 SDK级启动流程本文将详细介绍W801的SDK及启动过程,为后面的应用开发打下基础。 1、W801SDK目录结构解析 在前面…

KMP算法浅浅实现

简介 不用多说,KMP算法老经典了。秋招笔试很爱考,没办法,为了饭碗,学它! 以leecode某题为例:1408. 数组中的字符串匹配 可以参考这位up主的教程: 最浅显易懂的 KMP 算法讲解 代码 class So…

二刷LeetCode--148. 排序链表(C++版本),必会题,思维题

思路,本题其实考察了两个点:合并链表、链表切分。首先从1开始,将链表切成一段一段,因为需要使用归并,所以下一次的切分长度应该是当前切分长度的二倍,每次切分,我们拿出两段,然后将第…

23.8.16日总结

原先写的评论是每级评论用缩进来区分,所以最多设置的是九级评论,修改了排版和格式: 还有管理员页面,查看文章时可以进行点赞,收藏的操作,现在进行了修改,将相关操作隐藏。 还有点击查看未发布…