使用ArcGIS Pro自动矢量化水系
在地理信息系统(GIS)领域,自动矢量化是一项至关重要的技术,它能够将栅格图像中的要素转换为矢量数据,从而方便后续的分析和处理。本文将详细介绍如何使用ArcGIS Pro自动矢量化水系,适用于那些颜色相对统一、结构相对清晰的电子地图。
引言
在地理信息系统(GIS)中,水系数据扮演着举足轻重的角色。无论是城市规划、环境保护,还是水资源管理,水系数据都是不可或缺的基础信息。然而,在实际应用中,我们往往面临的一个挑战是如何高效、准确地获取水系数据。传统的手动矢量化方法不仅耗时费力,而且容易出错。幸运的是,随着技术的进步,ArcGIS Pro等GIS软件为我们提供了自动矢量化的工具,可以大大提高水系数据获取的效率和质量。
ArcGIS Pro是一款功能强大的地理信息系统软件,它提供了丰富的工具箱和工具集,可以满足各种GIS分析和处理需求。其中,自动矢量化功能就是ArcGIS Pro的一个重要特性。通过图像识别技术,ArcGIS Pro可以自动识别栅格图像中的水系要素,并将其转换为矢量数据。
数据准备
在进行自动矢量化之前,我们需要准备好原始的栅格图像数据。这里假设我们有一张颜色相对统一、结构相对清晰的电子地图,其中水系要素的颜色与其他要素有所区别。这张电子地图可以以TIFF格式存储,以便在ArcGIS Pro中进行处理。
首先,我们需要将栅格图像导入到ArcGIS Pro中。可以通过“添加数据”按钮,在“目录”面板中选择要导入的TIFF文件,然后将其拖拽到地图视图中
在导入栅格图像后,我们需要仔细检查图像的质量。确保图像的色彩对比清晰,水系要素与其他要素之间的界限明确。如果图像质量不佳,可能会导致自动矢量化的结果不准确。
栅格计算
在准备好栅格图像后,我们需要进行栅格计算,以便提取出水系要素。这里我们将使用ArcGIS Pro中的“栅格计算器”工具。

调用栅格计算器工具
在ArcGIS Pro的工具箱中,找到“Spatial Analyst工具”下的“地图代数”子菜单,然后选择“栅格计算器”工具。
在栅格计算器对话框中,我们需要输入一个公式来提取水系要素。假设我们的栅格图像中,水系要素的颜色值在第二个波段(Band_2)上等于198,那么我们可以输入以下公式:
| "电子地图.tif_Band_2" == 198 |
这个公式会生成一个新的栅格图层,其中水系要素的部分值为1(满足条件),其他部分值为0(不满足条件)。

栅格计算器设置
设置好公式后,点击“确定”按钮运行栅格计算器。ArcGIS Pro会根据输入的公式计算并生成新的栅格图层。
栅格转面
在得到提取了水系要素的栅格图层后,我们需要将其转换为矢量面要素。这里我们将使用ArcGIS Pro中的“栅格转面”工具。

调用栅格转面工具
在ArcGIS Pro的工具箱中,找到“转换工具”下的“由栅格转出”子菜单,然后选择“栅格转面”工具。

栅格转面设置
在栅格转面对话框中,我们需要输入上一步生成的栅格图层,并设置输出面要素的名称和位置。同时,在“字段”选项中,我们需要选择“Value”字段作为转换的依据。因为“Value”字段的值表示栅格单元格是否满足条件(即是否为水系要素),所以我们可以将其转换为矢量面要素的属性。
设置好参数后,点击“确定”按钮运行栅格转面工具。ArcGIS Pro会根据输入的栅格图层生成新的矢量面要素图层。
筛选水系
在得到矢量面要素图层后,我们还需要进一步筛选出水系要素。因为栅格转面工具会生成所有满足条件的矢量面要素,而不仅仅是水系要素。所以我们需要通过属性选择来筛选出真正的水系要素。

点击按属性选择
在ArcGIS Pro的地图视图中,右键点击生成的矢量面要素图层,然后选择“打开属性表”选项。

按属性选择设置
在属性表中,我们需要找到一个能够区分水系要素和其他要素的字段。在之前的栅格计算中,我们已经将满足条件的栅格单元格的值设置为1(水系要素)和其他值(非水系要素)。因此,在矢量面要素的属性表中,我们应该能够找到一个类似的字段(如“gridcode”或“Value”等)。然后,我们可以通过属性选择功能来筛选出“gridcode”等于0(或其他非水系要素的值)的要素,并将其删除。
具体操作如下:在菜单栏上选择“地图”,然后点击“按属性选择”按钮。在弹出的对话框中,输入行为之前转换的面要素图层,筛选条件为“gridcode”等于0(或其他非水系要素的值)。然后点击“确定”按钮将符合条件的要素选择上。接着,在地图视图中右键点击选中的要素,选择“删除选定的要素”选项将其删除。

最终效果
删除非水系要素后,我们就得到了最终的水系矢量数据。此时,我们需要将结果保存为一个新的矢量图层文件(如Shapefile或Geodatabase等),以便后续的分析和处理。
通过上述步骤,我们已经成功地将电子地图中的水系要素自动矢量化,并得到了一个包含水系矢量数据的图层文件。接下来,我们可以对这个图层文件进行展示和分析。
在ArcGIS Pro的地图视图中,我们可以将生成的水系矢量数据图层添加到地图中,并设置合适的符号和颜色来展示水系要素。这样,我们就可以直观地看到电子地图中的水系分布情况。
除了展示水系矢量数据外,我们还可以利用ArcGIS Pro提供的各种分析工具来对水系特征进行深入的分析。例如,我们可以计算水系的长度、面积、流域范围等参数;可以分析水系的空间分布格局和形态特征;还可以将水系数据与其他地理数据进行叠加分析,以揭示它们之间的关联性和相互影响等。
写在最后
本文详细介绍了如何使用ArcGIS Pro自动矢量化水系的方法。
通过栅格计算、栅格转面和筛选水系等步骤,我们可以高效、准确地获取电子地图中的水系矢量数据。
这种方法不仅大大提高了水系数据获取的效率和质量,还为后续的GIS分析和处理提供了有力的支持。
然而,值得注意的是,自动矢量化方法虽然具有诸多优点,但也存在一定的局限性。
例如,对于颜色对比不明显、结构复杂的电子地图,自动矢量化的结果可能不够准确;对于不同类型的地图和数据源,可能需要采用不同的参数和方法来进行处理。
因此,在实际应用中,我们需要根据具体情况进行灵活调整和优化。
未来,随着GIS技术的不断发展和完善,相信自动矢量化方法将会变得更加智能和高效。
我们可以期待更多的新技术和新方法被引入到GIS领域中来,以进一步提高水系数据获取和分析的精度和效率。
同时,我们也应该加强跨学科的合作与交流,将GIS技术与其他领域的专业知识相结合,以推动GIS技术在更多领域的应用和发展。
相关文章:
使用ArcGIS Pro自动矢量化水系
在地理信息系统(GIS)领域,自动矢量化是一项至关重要的技术,它能够将栅格图像中的要素转换为矢量数据,从而方便后续的分析和处理。本文将详细介绍如何使用ArcGIS Pro自动矢量化水系,适用于那些颜色相对统一、…...
在PyCharm中运行Jupyter Notebook的.ipynb文件及其pycharm软件的基础使用
(注意需使用PyCharm专业版,学生、教师可以申请免费使用:https://www.jetbrains.com/shop/eform/students) 1. pycharm2024版汉化 https://blog.csdn.net/m0_74103046/article/details/144560999 2. pycharm中的python控制台和J…...
实验 Figma MCP + Cursor 联合工作流
开源项目 Figma-Context-MCP 介绍 使用此 Model Context Protocol 服务器授予 Cursor 对 Figma 文件的访问权限。 当 Cursor 可以访问 Figma 设计数据时,它比粘贴屏幕截图等其他方法更能准确地进行代码转化。 开源仓库: GLips/Figma-Context-MCP 具体…...
移植live555 上的 rtsp
一、V4L2视频采集模块(完整示例) #include <linux/videodev2.h> #include <sys/ioctl.h> #include <fcntl.h>// 初始化V4L2摄像头 int init_v4l2_camera(const char* dev_path, int width, int height) {int fd open(dev_path, O_RD…...
Web Worker终极优化指南:4秒卡顿→0延迟的实战蜕变
💡 导读:从4秒卡顿到丝滑响应 真实痛点场景:当斐波那契数列计算量达10亿次时,页面完全冻结4.2秒!通过Web Worker优化后,UI响应时间降至16ms以内。本文手把手带您实现性能蜕变! 一、Web Worker核…...
redis中的Lua脚本,redis的事务机制
lua脚本的特点 lua脚本可以操作redis数据库,并且脚本中的代码满足原子性,要么全部被执行,要么全部不执行 lua脚本的语法 脚本示例 lua脚本的草稿: 最终的lua脚本 lua脚本在java里调用的方法 RedisTemplete类里有一个方法&…...
CPU多级缓存与缓存一致性协议
CPU多级缓存与缓存一致性协议 CPU多级缓存和缓存一致性协议是计算机体系结构中优化性能与保证数据正确性的核心机制。以下从缓存层级设计、工作原理、一致性协议(如MESI)及其实现细节展开说明。 一、为什么需要多级缓存? CPU的计算速度远高…...
Apifox 增强 AI 接口调试功能:自动合并 SSE 响应、展示DeepSeek思考过程
在现代的API接口调试中,效率和精确性对于开发者和测试人员来说至关重要。Apifox,作为一款功能强大的API管理和调试工具,近年来不断提升其用户体验和智能化功能。最近,Apifox 推出了增强版的AI接口调试功能,其中包括自动…...
【电机控制】42步进电机+arduino:WHEELTEC_MS42DDC
轮趣科技 42步进电机arduino:WHEELTEC_MS42DDC 接线方式: WHEELTEC_MS42DDC有两个接口, 一端接口连接配套的DC电源,另外一端只需要用三根线,一根负极连接ardino 的GND,然后把该端口的tx和rx连接到arduino的rx和tx,下…...
使用LangChain构建第一个ReAct Agent
使用LangChain构建第一个ReAct Agent 准备环境 使用Anaconda 安装python 3.10 安装langchain、langchain_openai、langchain_community (安装命令 pip install XXX) 申请DeepSeek API:https://platform.deepseek.com/api_keys(也…...
萝卜头笔作文赏析
在遥远的无寻王国,有这么一支小小的笔诞生了,人们见它又短又小,于是就给它取名叫萝卜头笔。萝卜头笔渐渐长大了,除了身子变粗些,其他什么都没变。一天,萝卜头笔来到了深山老林,那里枝叶繁茂&…...
RT-Thread+STM32L475VET6——USB鼠标模拟
文章目录 前言一、板载资源二、具体步骤1.配置icm20608传感器2.打开CubeMX进行USB配置3. 配置USB3.1 打开USB驱动3.2 声明USB3.3 剪切stm32xxxx_hal_msp.c中的void HAL_PCD_MspInit(PCD_HandleTypeDef* hpcd)和void HAL_PCD_MspDeInit(PCD_HandleTypeDef* hpcd)函数至board.c3.…...
rust 安全性
Rust 是 静态类型(statically typed) 语言, 也就是说在编译时就必须知道所有变量的类型, 这一点将贯穿整个章节。 C/C的安全问题 内存的不正确访问引发的内存安全问题 由于多个变量指向同一块内存区域导致的数据一致性问题 由于…...
大模型驱动的围术期质控系统全面解析与应用探索
目录 一、引言 1.1 研究背景与意义 1.2 研究目的与方法 1.3 研究创新点 二、大模型技术与围术期管理概述 2.1 大模型技术原理与发展现状 2.2 围术期管理流程与挑战 三、大模型在术前的应用 3.1 病历内涵质控 3.2 智能医学问答与知识查询 3.3 疾病风险预测与评估 3.…...
中兴B863AV3.2-T/B863AV3.1-T2/B863AV3.1-T2K_电信高安_S905L3A-B_安卓9.0_线刷固件包
中兴B863AV3.2-T/B863AV3.1-T2/B863AV3.1-T2K_电信高安_S905L3A-B_安卓9.0_线刷固件包 B863AV3.2-T B863AV3.1-T2 已知可通刷贵州、江苏、贵州、北京、河南、陕西等省份。 线刷方法:(新手参考借鉴一下) 1、准备好一…...
Android Binder机制
Binder是IPC(进程间通信)的一种机制,它允许不同的应用或系统服务在不同的进程中安全地交换数据。Binder的核心原理是基于客户端-服务器模型(C/S架构)。 一、Binder的定义 1. Binder是Android中的一个类,它继承了IBind…...
【算法】初等数论
初等数论 模 取余,遵循尽可能让商向0靠近的原则,结果的正负和左操作数相同 取模,遵循尽可能让商向负无穷靠近的原则,结果的正负和右操作数相同 7/(-3)-2.3,产生了两个商-2和-3,取…...
Spring Boot3+Vue2极速整合:10分钟搭建DeepSeek AI对话系统
前言 在生成式AI技术蓬勃发展的今天,大语言模型已成为企业智能化转型和个人效率提升的核心驱动力。作为国产大模型的优秀代表,DeepSeek凭借其卓越的中文语义理解能力和开发者友好的API生态,正在成为构建本土化AI应用的首选平台。 本文将以S…...
Spring事务原理 二
在上一篇博文《Spring事务原理 一》中,我们熟悉了Spring声明式事务的AOP原理,以及事务执行的大体流程。 本文中,介绍了Spring事务的核心组件、传播行为的源码实现。下一篇中,我们将结合案例,来讲解实战中有关事务的易…...
JVM预热
阿里电商平台每年的各种大促活动,对于Java技术来说,其中重要一个操作环节就是预热操作。 目录 预热是什么?为什么要预热? java 程序不预热和预热的调用对比 预热是什么? 预热是指,在 JVM 启动后࿰…...
装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...
云原生周刊:k0s 成为 CNCF 沙箱项目
开源项目推荐 HAMi HAMi(原名 k8s‑vGPU‑scheduler)是一款 CNCF Sandbox 级别的开源 K8s 中间件,通过虚拟化 GPU/NPU 等异构设备并支持内存、计算核心时间片隔离及共享调度,为容器提供统一接口,实现细粒度资源配额…...
人工智能 - 在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型
在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型。这些平台各有侧重,适用场景差异显著。下面我将从核心功能定位、典型应用场景、真实体验痛点、选型决策关键点进行拆解,并提供具体场景下的推荐方案。 一、核心功能定位速览 平台核心定位技术栈亮…...
Monorepo架构: Nx Cloud 扩展能力与缓存加速
借助 Nx Cloud 实现项目协同与加速构建 1 ) 缓存工作原理分析 在了解了本地缓存和远程缓存之后,我们来探究缓存是如何工作的。以计算文件的哈希串为例,若后续运行任务时文件哈希串未变,系统会直接使用对应的输出和制品文件。 2 …...
AD学习(3)
1 PCB封装元素组成及简单的PCB封装创建 封装的组成部分: (1)PCB焊盘:表层的铜 ,top层的铜 (2)管脚序号:用来关联原理图中的管脚的序号,原理图的序号需要和PCB封装一一…...
Django RBAC项目后端实战 - 03 DRF权限控制实现
项目背景 在上一篇文章中,我们完成了JWT认证系统的集成。本篇文章将实现基于Redis的RBAC权限控制系统,为系统提供细粒度的权限控制。 开发目标 实现基于Redis的权限缓存机制开发DRF权限控制类实现权限管理API配置权限白名单 前置配置 在开始开发权限…...
