(中水淮河规划设计研究有限公司,安徽 合肥 230601)GIS(地理信息系统)是多种学科交叉的产物,以地理空间作为基础,以计算机技术作为实现手段,实现空间数据的采集、存储、管理、处理、分析、显示和描述的技术。WMTS作为地图服务的关键技术,提供了一种采用预定义图块方法发布数字地图服务的标准化解决方案。WMTS是一个流程化过程,涉及切片地图的制作、切片、发布、使用等。1GDAL影像处理库GDAL(geospatial data abstraction library)即地理空间数据抽象库,是在X/MIT许可协议下读写空间数据(包括栅格数据和矢量数据)的开源库[1]。该库源码由C++编写,包括读取、写入、转换、处理各种栅格数据格式(部分特定的格式对操作不支),其使用了单一的抽象数据模型,支持了大多数的栅格数据[2]。大部分GIS类产品均使用了GDAL/OGR库,包括DotSpatial、MapWindow5、ArcGIS系列等,其中包括著名开源GIS软件QGIS。2地图切片技术WMTS技术不同于WMS技术,从计算机的角度分析,实际上以空间换取时间的方案。从GIS行业过去与现在进行对比分析,可认为将以往的“地理计算过程”转换为“文件服务过程”的方案,切片服务为客户端和服务端的文件传输服务[2]。服务端通过向客户端发送的地图服务,在已存在的地图切片缓存中直接调取相应的切片地图,在客服端按照规则拼接成一幅地图供用户浏览。瓦片式地图采用金字塔模型结构,是一种多分辨率层次模型,从瓦片金字塔的底层到顶层,分辨率越来越低,表示的地理范围不变[3]。尺度的概念在地图切片中较为重要,在不同尺度下不同地理位置显示不同地图切片信息。在地图切片制作过程中,尺度转换为级别比例尺,不同位置根据经纬度转换为切片的行号X和列号Y。3地图切片生产的设计流程按照切片计算规则,针对需要的切片级别,计算影像范围内覆盖的切片索引,通过切片索引反算该切片对应的影像坐标范围。通过提取、变换、读取、写入等操作,将该范围的影像数据写入切片并保存,写入过程中需要考虑切片的大小、分辨率等信息,切片的保存可按照不同的数据格式进行存储。处理流程分为数据预处理、切片范围计算、读取写入切片数据、图像均衡化处理、数据库存储等步骤。地图切片生产流程如图1所示。10.3969/j.issn.2096-1936.2021.09.025.F001图1地图切片技术流程示意图(1)数据预处理。数据预处理包括投影变换、金字塔生成等,影像数据采用地理坐标系统,其他坐标系的数据需要进行投影变换;金字塔数据可提高数据生成效率。(2)直方图统计。直方图统计是运用影像数据的拉伸,解决影像数据整体偏暗或偏亮的问题,在直方图统计中应剔除影像“黑边”或“白边”,正确反映影像数据的直方图信息。(3)有效数据的边界提取。提取影像有效区域的边界,主要剔除无用的切片信息,当切片信息处于该范围外部,将不会被处理。(4)切片信息计算。主要计算影像数据实际覆盖的可用的切片信息,按照全图范围计算切片信息,每张切片行列号,采用边缘追踪的算法计算数据的实际有效区域的范围,针对全图范围内的切片与边缘范围进行拓扑检查,仅保留相交的切片信息。(5)影像读取和切片生产。按照投影规则,计算该切片坐标,运用GDAL将该范围内的数据读入内存,并保存为PNG格式的图片数据,并将当前切片的级别、行号和列号作为文件名中的标识进行保存。(6)直方图均衡化。统计原始影像图的直方图数据,将该数据信息应用于单张切片上,按照相素进行处理。不同切片采用统一的拉伸处理,保证地图控件上切片在拼接过程中不出现色差。4切片生产的关键技术4.1提取影像实际范围的边界追踪技术数据处理过程中,采用边界提取技术获取有效区域主要为了提高生产效率,特别是针对影像实际范围是狭长地带的情况下,影像实际范围只占据影像较小部分,存在大量的影像“黑边”或“白边”,按照传统方式进行处理,会增加处理时间。应提取有效的数据区域边界,边界提取采用效率较高的边缘追踪算法。边缘追踪提取边界流程如图2所示。10.3969/j.issn.2096-1936.2021.09.025.F002图2边缘追踪提取边界流程(1)从图像的左上角开始,向右向下扫描图像,记录第一个具有信息的像素值得坐标信息,以此作为边界追踪的起点,并设置当前的搜索方向为0。(2)针对当前坐标,采用八相邻方向进行搜索,搜索的起始方向采用相反方向,且顺时针顺序进行搜索。(3)检查当前相邻点的坐标值是否与起点相同,如果相同,追踪算法结束,转到第5步,如果不相同,并将该坐标添加到边界存储列表,退出当前八方向临近遍历循环,记录当前处理坐标为该临近点坐标。(4)检测当前像素是否为影像边缘,如果是影像边缘,按照边缘类型在相邻像素添加无效数据,重复步骤2、3,直到出现相应判断条件停止。(5)获取的边界点坐标序列,记录了像素坐标信息,将该序列通过GDAL转换为影像实际坐标序列,根据阈值进行抽稀处理,得到符合条件的坐标序列,并转为面数据,用于后期数据处理。4.2多线程切片处理技术在数存储过程中,数据库不支持多线程写入,在处理过程中,应注意多线程处理的分发数据、多线程数据,再压缩到线程处理数据库中。多线程处理的部分集中在切片创建和处理过程中,在本次研究中数据处理需要花费时间。为了改善用户体验,数据在处理需要显示进度条,以方便查看处理进度,整个流程是主线程和多线程相互切换的过程。4.3直方图均衡化技术未经过人工处理的影像数据,特别是在阴天进行作业完成的数据,整体色调将偏暗,需要经过人工进行增强处理。直方图均衡化是采用空域图像增强方法,具有运算复杂度低的优点,对曝光不足或曝光过度图像有较好的增强效果[4]。通过改变图像中的直方图,改变图像中像素的灰度,增强范围偏小的图像对比度,将原始集中在某一区域的灰度范围拓宽到0~255,增强图像像素之间的对比度,使图像更清晰。本研究采用简单统计的直方图拉伸方式,在保留影像的基本的光谱的同时,增强对比度。针对多通道的图像的拉伸,将三个通道合并进行拉伸处理,提取统一的拉伸比例,运用到每个通道中,效果较好,不会产生异常像素值。5软件实现基于GDAL的地图切片技术的软件实现开发平台采用Visual Studio,开发语言采用C#,主要应用GDAL的C#类库进行影像处理,GDAL支持源码下载编辑,可采用压缩包、SVN方式进行下载。本文直接采用C#调用GDAL编译的类库进行操作,在Visoual Studio的工程中直接引用gdal_csharp.dll、gdalconst_csharp.dll、ogr_csharp.dll、osr_charp.dll四个类库,在程序运行时,将gdal_data文件夹路径写入环境变量中,同时进行GDAL的注册,软件界面如图3所示。10.3969/j.issn.2096-1936.2021.09.025.F003图3基于GDAL的地图切片技术的软件实现设置切片标识、影像透明像素值、是否进行直方图均衡化、切片的级别等参数,即可进行切片生成。6结语随着计算机技术的发展,地理信息系统在现实场景的构建领域越来越重要,GIS在移动端、车载、虚拟现实技术等具有良好的发展空间。本文探讨了切片地图的生产和实现,提高了生产效率,制定了完整的数据处理流程,完成后的数据可发布为标准的地图服务,为移动端提供离线地图数据,为电力巡检、国土调查等领域地理信息系统提供数据支撑。
使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,
确定继续浏览么?
复制成功,请在其他浏览器进行阅读
复制地址链接在其他浏览器打开
继续浏览