基于ArcMap的历史湖泊地图水体的矢量化方法

2022-10-20 03:40张涛胡振宋铭凯
现代信息科技 2022年13期
关键词:栅格调用矢量

张涛,胡振,宋铭凯

(1.浙江师范大学,浙江 金华 321004;2.61175 部队,江苏 南京 210000)

0 引 言

在参与长江三峡集团有限公司的项目“长江生态格局与关键过程长期演变及效应研究”中,经常需要涉及大面积图幅的历史时期的纸质地形图数据的收集与研究。为和现代遥感影像数据格式相统一以及将纸质地图导入计算机中进行信息化地理学相关处理和分析,需要将纸质地图转化成矢量数据。

栅格数据矢量化的研究已经实现了基于二值化简单多边形图像的自动识别生成矢量数据,但是对于复杂的彩色地图和大面积的批量矢量化研究尚有欠缺。本文基于Arc Map软件,对大型彩色地图进行矢量化,提取其中主要图斑的地理信息,为之后地理信息从业人员快速处理类似的历史地形图提供一定的经验和技术基础。

1 矢量和栅格数据的特点和应用

地理信息系统(GIS)是以空间数据为基础,采取多种分析方法以提供地理信息,其广泛的应用在不同的领域,是用于输入、存储、查询、分析和显示地理数据的计算机系统。因此,在地理学的相关研究中,我们经常用GIS 来管理和分析地理信息数据,同时在GIS 中最常见的两种信息数据形式为矢量数据和栅格数据。

矢量数据是通过记录坐标的方式,尽可能精确地表示点、线、面等地理实体的位置。其具有“位置明显,属性隐含”的特点,拥有较强的可编辑能力;数据表达精度高,存储量小;方便拓扑分析和几何运算。矢量数据通常通过点、线、面三种抽象几何要素来表达空间实体的相关关系。

栅格数据是用规则的阵列来表示空间地物分布的数据组织,组织中每个数据表示地物或现象的非几何属性特征。相较于矢量数据,栅格数据具有“属性明显,位置隐含”的特点,其数据结构简单,易用于数据交换;但同时数据量大且质量低。常用于表示地表形态,如DEM、遥感图像和土地利用数据。

鉴于矢量和栅格数据各有各自不同的优缺点和运用范围,并且通常需要运用对应的软件进行数据处理,因此我们应该根据生产需求和工作环境选择对应的数据形式或者灵活的在二者之间对其相互转换。

2 传统矢量化方法

在进行长时间序列的相关研究中,常用到历史纸质地图或其他纸质图集,为方便信息的收集、处理和分析,常常通过扫描的方式将纸质地图扫描信息化,其数据常以栅格数据的格式存储于电子媒介中,出于几何分析的需求,通常要将其转换为矢量数据。传统的地图矢量化采用人工目视解译,创建矢量数据对地理要素进行框选和标记的方法。这种方法在操作上十分依赖人力和时间成本,且成果存在一定的主观误差。

3 湖泊历史地图数据特征和矢量化设计

3.1 湖泊历史地图的特点

一般历史地图分为彩色和黑白,图中常包含信息有经纬网、比例尺、图例、成图(出版)年份和地类地物等。在与湖泊相关的历史地形图中,湖泊一般呈大面积连续或河网连接连续的相同图例地物、地形出现在地图上,与周边的其他地物、地形呈现明显图案或色彩的差别,本次研究所选用的数据是1930年以来东洞庭湖历史地形图,图中图形信息包含了水体、湿地、耕地和其他用地地类,包含的文字信息有经纬网、比例尺、图例和坐标系以及对地点的标注。

3.2 矢量化设计

根据湖泊历史地图的特点和最终的矢量数据需求,本次研究将结合Arc Map 的基本工具和其中的Arc Scan 模块对矢量化做出以下方法设计:(1)对历史地图进行扫描录入和配准,获得具有地理位置属性的栅格空间数据集;(2)调用重分类工具对栅格数据进行二值化处理,以前景值和背景值来区分湖泊和其他地物,获得值为1 或0 的栅格数据集;(3)调用Arc Scan 模块将二值化中的湖泊作为前景值进行自动矢量化,反复调整参数设置以优化矢量过程和结果,获得初步的矢量图斑;(4)结合栅格图像数据,调用Arc Map 中相关工具对矢量化结果进行优化和调整,去除噪点和其他误差值,以获取符合需求的高质量矢量化数据。

4 自动矢量化方法实现

4.1 地图配准

根据历史地形图中的地图文字信息或者说明文件中的地理坐标系、投影和经纬度信息等建立相对应的空间数据集。首先将地图以栅格数据的形式载入Arc Map 软件中,在Arc Map 的图层列表中设置Layer 的坐标系和投影,使其与历史地形图中的说明信息一致。运行Geo Referencing 配准工具,依据地图上标注的经纬度选择合适的经纬线交叉点或者选择其他无经纬信息的特殊地标点(一幅地图一般选择4 个点),本次样本中所选择的配准点为历史地形图中的手绘的4 个角点(图1,这4 个点分布均匀且拥有准确的坐标信息)。当配准的残差在允许范围内时,选择保存地理配准,即将无地理信息的栅格数据转变为拥有坐标系和投影的地理栅格数据。

图1 地理配准

4.2 地图二值化

一般的栅格图像可分为多波段组合或者单波段图像,彩色历史地形图一般拥有三个波段通过RGB 组合成像,对比栅格图像的各个波段的图像质量,依据水体的显示效果排序,选择显示效果最优的一个波段载入Layer(单波段栅格图像无需此操作步骤)(如图2所示),在Layer 下调用该波段的Layer Properties 中的Symbology 模块,选择Classified,将Classes 设置为2(即分为两类),调整合适的阈值对该波段进行二值化处理,在设置阈值时需要不断尝试调整,以使得水体和陆地可以很好地区分开。同时为避免之后矢量化过程中,栅格地图中的经纬线和注释造成的矢量图斑割裂,应默认将其设置为前景值范围内与水体合并(之后的优化处理过程中,删除多余部分更加方便)。得到的图像可以在Layer 中清晰表现为黑色与白色两个值,各对应最小值至阈值和阈值至最大值两类灰度值,将湖泊设置为前景值(黑色)其余地物为背景值(白色)(如图3所示)。

图2 单波段载入图像

图3 二值化图像

4.3 自动矢量化参数设置和实现

通过调用Arc Scan 模块矢量化前景值得到湖泊水体初步矢量图斑。在Arc Map 中打开Catalog 建立Personal Geodatabase 以用来储存Arc Scan 模块执行生成的矢量数据,在 Personal Geodatabase 下建立新的Feature Dataset,并设置成和栅格地图相同的地理坐标系或投影坐标系以确保生成的矢量数据拥有和栅格地图相同的地理信息。在新生成的Feature Dataset 下添加New Feature Class,分别为Polyline、Polygon 要素用于存储矢量线要素和矢量面要素。在Arc Map 中调用Arc Scan 模块(调用前应先在Customize中的Extensions 和Customize Model 中勾选Arc Scan 以启用该模块功能),在Arc Scan 中调用Vectorization Settings 对矢量化过程的参数进行相关设置,主要设置参数包括调控连接点处处理,最大线宽(Intersection Solution,Maximum Line Width)等,可以依据实际地图做出相应调整,也可在Styles 中选择预设的常用模型,本次地图应考虑到经纬线对连接点的影响,经过多次调整实验对比结果,最终将节点处设置为None,最大线宽设置为20(如图4所示)以获得最好的矢量化结果,同时要在Options 中设置水体的一类Foreground。

图4 参数设置

4.4 矢量化结果优化

经过之前的步骤,ArcScan 工具可以输出初步的矢量化成果,如图5所示,但是一般这样的矢量数据都还存在很多需要进一步优化的地方。本次研究实验中总结了常见的几个问题:(1)由于纸质地图的长时间保存导致纸质下降或者扫描时扫描机器自身精度不够或过高将纸质纹理扫入等的各种系统误差原因,栅格数据会存在很多噪点或空缺值,这些误差直接反映在初步矢量化的结果中矢量图斑存在大量的点面空值;(2)由于Arc Scan 工具的局限性,其他地物或地名与水体相连的部分也被矢量化并入水体斑块,存在很多多余部分(如图5所示);(3)Arc Scan 追踪像素点的原理导致矢量图斑的边界呈现明显锯齿状,如图6所示。

图5 矢量化初步结果

图6 锯齿状边界

为优化以上问题导致的矢量成果质量低,本次实验研究总结了一些常用的有效措施来消除这些问题,从而获取更高质量的矢量数据。第一步,剔除多余的未连接的像素点生成的冗余矢量图斑,在Layer 下调用Polygon 矢量要素集的Table,对其按面积筛选,因为所要提取的水体面积远远大于其他地名注释和其他标注,依据需求的大小设定阈值,将需要的Polygon 导出即可去除其他不需要的矢量图形,如图7所示。

图7 导出后的图斑

第二步,将矢量面中的空洞值填补并与相连接的矢量图斑融合,在Arc Map 中调用Feature To Polygon,选择导出矢量要素保存在的Layer,将一个矢量面和它的空洞值转换成多个面要素,再调用该矢量要素所在Layer 的Table,对所有的矢量面图形进行合并处理,得到一个完整的矢量面图形,如图8所示。

图8 合并后的面

第三步,对以追踪像素点为原理的自动矢量化所生成的锯齿状边界进行进行平滑处理,在Arc Map 中调用Smooth Polygon 工具,选择合并后的矢量面所在的Layer,根据需求和出图结果进行优化调整设置平滑值(本次样本选择50),平滑后得到对应优化后的矢量图形,如图9所示。

图9 平滑处理后的边

第四步,对应平滑后的矢量图形,任然存在部分与经纬线和地图注释相连接的多余面,调用Arc Map 中的Cut Polygon 工具对其剪裁,最终获得符合要求的水体矢量化图形,如图10所示。

图10 优化后的自动矢量化图形

5 结 论

本次研究实验成功实现了历史湖泊地图的一种矢量化方法,通过调用Arc Map 中的Arc Scan 和其他各种工具提取大面积的湖泊水体,并快速得到高质量的矢量化数据。方法中的Arc Scan 模块自动矢量化大大减少了传统矢量化的人力和时间成本,消除了主观判断所存在的人为误差,提高了矢量化结果的精度。但是,本次研究实验也有以下几个需要改进的点:(1)部分Arc Map 中的工具的调用需要手动操作完成,未能实现全部的自动化。(2)最终成果的优化仍然需要手动结合原图识别修改,还需进一步节省人力成本和时间成本。

经过本次方法实验,Arc Map 软件是可以提供完整的自动矢量化操作的,传统的矢量化方法因其烦琐重复的操作流程和大量人力时间成本投入必将在不远的将来淘汰。本次实验的结果与不足也揭示了完整自动矢量化所缺失的几个重点所需要的进一步研究的方向:(1)基于AE(Arc Engine)平台编程实现全程按步骤自动调用Arc Map 中的模块,方便批量操作;(2)伴随着当今人工智能技术的发展和计算机算力的提升。基于计算机大数据学习的能力,可以通过大数据学习实现自动识别矢量图斑形状规则以达成自动优化矢量化结果。

猜你喜欢
栅格调用矢量
矢量三角形法的应用
5G NR频率配置方法
反恐防暴机器人运动控制系统设计
力的矢量性的一个例子
基于Android Broadcast的短信安全监听系统的设计和实现
从朝鲜弹道导弹改进看栅格翼技术
三角形法则在动态平衡问题中的应用
矢量三角形法则在物理解题中的应用
利用RFC技术实现SAP系统接口通信
C++语言中函数参数传递方式剖析