如何使用ArcGIS计算道路中心线

news2024/9/20 23:38:28

1.概述

在制图等应用的时候,有时需要将双线的面状道路提取中心线,转换为线状的道路。

由于道路多为不规则的图形,提取难度比较高,加上能提取中心线的软件有限,更加增加了提取的难度。

ArcGIS虽然提供了提取中心线的工具,但是要求是线状的道路,而且是不封闭的线状道路(即道路两边的边线),若直接面转线,得到的是封闭道路,再去去掉两端的线工作量也是比较大的。

综上所述,我们可以“另辟蹊径”,采取栅格的方式获取中心线,这里就介绍一下ArcGIS获取中心线的方法。

2.调整道路配色

为了方便后续ArcGIS对栅格的识别分类,建议将面文件配色为深色的纯色,在面文件图层上点击右键,选择属性。

选择属性

在显示的图层属性对话框内,选择符号系统选项卡,选择单一符号,点击一下符号选项内的带颜色的图案。

点击符号图案

在显示的符号选择器对话框内选择一个深色的颜色,如下图所示。

符号选择器设置

点击确定之后即可将颜色设置为深色,如下图所示。

设置面颜色为深色

3.导出栅格图

在菜单上点击“文件\导出地图”,将矢量导出为栅格,如下图所示。

选择导出地图

在显示的导出地图对话框内,选择好导出的目录,保存类型选择为tif,点击常规选项卡,设置适当的分辨率,勾选上写入坐标文件。

导出地图常规设置

还是在导出地图对话框,选择格式选项卡,颜色模式选择1位单色阈值,如下图所示。

导出地图格式设置

点击保存,将数据导出,导出完成后将导出的栅格加载到ArcMap内,如下图所示。

导出的栅格

4.栅格重分类

在ArcToolbox中点击“Spatial Analyst工具\重分类\重分类”,调用重分类工具,如下图所示。

调用重分类工具

在显示的重分类对话框内,输入栅格为上一步导出的栅格图,重分类字段选择Value,旧值0赋值为0,旧值0-1赋值为1,如下图所示。

重分类设置

点击确定之后可以得到重分类结果,如下图所示。

重分类结果

5.获取中心线

在对应的目录下新建一个线文件,并加载进来,如下图所示。

新建线文件

在新建的线图层上点击右键,选择“编辑要素\开始编辑”,进入编辑状态。

选择开始编辑

在菜单空白处,点击右键,勾选上ArcScan,如下图所示。

勾选上ArcScan

在ArcScan工具条上,点击“矢量化\选项”,如下图所示。

选择选项

在显示的矢量化选项对话框内,矢量化方法选择中心线,如下图所示。

矢量化选项设置

在ArcScan工具条上,点击“矢量化\显示预览”,预览生成的中心线效果。

选择显示预览

在预览的效果中,可以看到有部分区域没有捕捉到,显示为蓝色,如下图所示。

蓝色区域

这就需要调整一下栅格捕捉线状要素的宽度,在ArcScan工具条上,点击“矢量化\矢量化设置”,如下图所示。

选择矢量化设置

在显示的矢量化设置对话框内,最大线宽度调整为50,如下图所示。

矢量化设置

点击应用之后可以看到蓝色的区域已经消失,如下图所示。

蓝色区域已经消失

在ArcScan工具条上,点击“矢量化\生成要素”,将栅格转为矢量数据。

选择生成要素

点击之后,在显示的生成要素对话框内,默认即可,如下图所示。

生成要素设置

点击确定之后可以得到矢量的中心线,如下图所示。

生成的中心线

最后记得保存并退出编辑状态,完成中心线的获取。

保存并退出编辑

6.结语

以上就是如何使用ArcGIS计算道路中心线的详细说明,主要包括了调整道路配色、导出栅格图、栅格重分类和获取中心线等功能。

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

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

相关文章

C语言文件操作(二)

文件的随机读写fseek函数#include <stdio.h>int main() {FILE* pf fopen("test.txt", "r");if (NULL pf){perror("fopen");return 1;}char ch fgetc(pf);printf("%c\n", ch);fseek(pf, 2, SEEK_SET);ch fgetc(pf);printf(&q…

Mysql第四期 运算符规则计算】

文章目录写在前面1.算数运算符2.比较运算符3.逻辑运算符4.位运算符5.运算符的优先级拓展&#xff1a;使用正则表达式查询写在前面 基本的运算符号在计算机编程领域都是相通的&#xff0c;会有自己的一些特定符号语言&#xff0c;就像是各地的普通话一样&#xff0c;尽管语音描…

C语言小题,又3个学生的信息,放在结构体数组中,要求输出全部学生的信息。(指向结构体数组的指针)

前言&#xff1a; 此篇是针对 指向结构体数组的指针 方面的练习。 解题思路&#xff1a; 用指向结构体变量的指针来处理&#xff1a; &#xff08;1&#xff09;声明结构体类型 struct Student &#xff0c;并定义结构体数组&#xff0c;同时使之初始化&#xff1b; &#xff…

SpringBoot项目如何引入外部jar及将外部jar打包到项目发布war包

1 Springboot项目如何打成war包 1.1 环境准备 打包成war整体思路就是排查web容器依赖&#xff0c;添加maven-war-plugin插件。接下来就使用Tomcat容器给大家做个示范&#xff0c;亲测有效。 在讲解下说明一下环境&#xff0c;避免因为环境的问题&#xff0c;给大家带来不必要…

设计师都在用的5个设计素材库

作为一名设计师推荐几个设计素材网站&#xff0c;建议收藏起来&#xff01; 1、菜鸟图库 https://www.sucai999.com/?vNTYxMjky 站内平面海报、UI设计、电商淘宝、高清图片、样机模板等素材非常齐全。还有在线抠图、CDR版本转换功能&#xff0c;能有效的为设计师节省找素材时…

嵌入式Linux-线程属性

1. 线程的属性 1.1 概念 如前所述&#xff0c;调用 pthread_create()创建线程&#xff0c;可对新建线程的各种属性进行设置。在 Linux 下&#xff0c;使用pthread_attr_t 数据类型定义线程的所有属性。 调用 pthread_create()创建线程时&#xff0c;参数 attr 设置为 NULL&a…

Three.js 初阶入门篇(一)

系列文章目录 文章目录系列文章目录学习背景一、什么是3D&#xff08;直接看作品吧&#xff09;&#xff1f;汽车作品欣赏鼠标可以随意转动角度打开机盖&#xff08;交互效果&#xff09;尾部3D链接&#x1f517;如下&#xff08;链接打开会有一些慢&#xff09;二、如何创建一…

零入门容器云网络实战-7->Mac环境下为虚拟机磁盘空间进行扩容

在Mac环境下&#xff0c;使用PD软件创建的虚拟机磁盘空间不够时&#xff0c;如何扩容呢&#xff1f; 主要分两大步骤&#xff1a; 先通过PD界面&#xff0c;设置增加多少空间进入虚拟机里&#xff0c;通过fdisk等相关命令&#xff0c;使其增加的空间生效 1、第一大步&#xf…

机器学习之线性模型

定义 线性模型非常常见&#xff0c;但详细了解其中原理是必要的。 一般将样本特征进行线性组合达到预测的目标&#xff0c;如表达式yf(X;W)byf(X;W)byf(X;W)b,其中XXX为输入的样本数据&#xff0c;WWW为权重系数&#xff0c;bbb为偏置系数。 如对于图片样本&#xff0c;一种…

兔年春晚一大怪像,影视演员变成了万能,专业歌手却被晾在一边

怪事年年有&#xff0c;今年特别多。谁也没有想到&#xff0c;兔年春节还没有过去&#xff0c;就出现了一种奇怪的现象。中央电视台春晚&#xff0c;曾经执全国春晚之牛耳&#xff0c;然而谁能想到&#xff0c;四十多年后的今天&#xff0c;曾经的扛把子却变成了鸡肋。 今年央视…

【C++初阶】七、STL---vector(总)|vector的介绍|vector的使用

目录 一、vector的介绍 二、vector的使用 2.1 Construct 2.2 operator 2.3 Iterators 2.4 Capacity 2.5 Element access 2.6 Modifiers 一、vector的介绍 前面学习了 string类&#xff0c;所以 vector 的学习成本很低&#xff0c;因为接口都大致相同&#xff0c;功能也…

【促进开发】上海道宁与DHTMLX为您提供易于使用且功能丰富的JavaScript组件

DHTMLX提供 有效且专业设计的 JavaScript/HTML5工具 使开发人员 能够以更少的时间和精力 创建具有丰富界面和快速性能的 复杂Web和移动应用程序 DHTMLX使用 JavaScript UI 库促进开发 易于使用且功能丰富的 JavaScript组件 非常适合您在任何领域和 任何复杂性中的解…

SpringCloud微服务项目实战 - 7.kafka及文章上下架

一步一步地苦熬苦掖&#xff0c;终于我们也看见了花团锦簇&#xff0c;我们也知道了彩灯佳话。那一夜&#xff0c;我也曾梦见百万雄兵。 系列文章目录 项目搭建App登录及网关App文章自媒体平台&#xff08;博主后台&#xff09;内容审核(自动)延迟任务 文章目录系列文章目录一…

并查集应用

一、并查集模板 int find(int x) {if(p[x]!x) p[x]find(p[x]);return p[x]; }并查集高效率的核心是一旦更新过一次后&#xff0c;就会将路径压缩掉&#xff0c;避免后续重复遍历路径。 二、并查集应用 1、格子游戏 分析&#xff1a;每构成一个方框&#xff0c;当最后两个点连…

RA4M2开发(2)----基于IIC驱动OLED

概述 在e2studio中创建新的工程并导入必要的文件&#xff0c;包括I2C驱动代码和SSD1306 OLED显示驱动代码。配置RA4M2的I2C接口&#xff0c;使其作为I2C master进行通信。初始化SSD1306 OLED显示驱动代码&#xff0c;并配置显示屏的物理地址和分辨率。通过I2C驱动代码将数据写…

【Linux】初识环境变量

文章目录环境变量引入初见环境变量和环境变量有关的指令如何通过代码获取环境变量getenv()main函数的命令行参数第三方变量environ程序变量可以继承给子进程环境变量引入 Linux中有各种指令&#xff0c; 每个指令其实都是一个可执行程序&#xff1a; 和我们自己写的C语言代码…

API自动化测试【postman生成报告】

PostMan生成测试报告有两种&#xff1a; 1、控制台的模式 2、HTML的测试报告 使用到一个工具newman Node.js是前端的一个组件&#xff0c;主要可以使用它来开发异步的程序。 一、控制台的模式 1、安装node.js 双击node.js进行安装&#xff0c;安装成功后在控制台输入node…

Ansys Zemax | 多模光纤耦合

本文展示了利用几何图像分析特性来计算多模光纤耦合效率的方法。 还有使用IMAE操作数优化多模光纤耦合效率的方法。该方法只适用于包含大量模式的多模光纤。 下载 联系工作人员获取附件 简介 我们可以使用OpticStudio中的几何图像分析&#xff08;Geometric Image Analysi…

已解决error: legacy-instal1-failure

已解决&#xff08;pip install wxPython安装失败&#xff09;error: legacy-instal1-failure Encountered error while trying to install package.wxPython note: This is an issue with the package mentioned above&#xff0c;not pip. hint : See above for output from …

ChatGPT 回答什么是敏捷测试

Jenkins 官方文档&#xff1a;https://jenkins.io/doc/JUnit 插件文档&#xff1a;JUnit | Jenkins pluginTestNG 插件文档&#xff1a;https://plugins.jenkins.io/testng-plugin/Jenkins 教程&#xff1a;https://jenkins.io/doc/tutorials/JUnit 教程&#xff1a;JUnit 5 Us…