基于地图制图脚本的地质图发布系统
2017-08-01李建强
舒 超,陈 荦,李建强,李 军
(1.国防科学技术大学 电子科学与工程学院, 湖南 长沙 410073;2.中国地质调查局 发展研究中心,北京 100032)
基于地图制图脚本的地质图发布系统
舒 超1,陈 荦1,李建强2,李 军1
(1.国防科学技术大学 电子科学与工程学院, 湖南 长沙 410073;2.中国地质调查局 发展研究中心,北京 100032)
现有的数字化地质图,多以MapGIS(wl/wt/wp)数据格式存储,无法为相关单位、个人提供较好的数据服务,给业内数据共享带来了障碍;同时,传统GIS软件也无法满足复杂地质图高效绘制的需求。基于此,提出了一种基于地图制图脚本的地质图发布方法,通过对原始电子地质图信息的解析,自动生成制图脚本,实现高效的Web端地质图成图。
制图脚本;地质图;WebGIS;高效绘制;高性能地理计算平台
随着互联网技术以及大数据存储、快速处理技术的不断进步,面向Web的数据服务发展迅速[1]。信息技术正以前所未有的速度改变着人们的生产、生活和思维方式[2]。OpenStreetMap开放了全球的街道数据,降低了大众制图的门槛;MapBox采用脚本化的地图制图模式,探索出网页制图的最佳方式。随之,脚本化地图制图模式在移动互联网时代逐渐兴起,成为互联网GIS中富有前景的技术之一[3]。
目前,随着地质图书馆的建立,海量复杂的地质图数据已实现了初步的电子化,并多以MapGIS(wl/ wp/wt)数据格式存储;但由于地质图具有海量、碎片化、非结构化等特性,传统地图的绘制方式无法满足地质图复杂的Web端高效绘制需求,使得这些电子化的地质图数据并不能很方便地向社会提供相关服务。在传统GIS无法实现地质图在线服务的当下,开发与扩展基于脚本化制图的Web端地质图快速显示、查询技术有着十分重要的意义。
为了实现地质图的在线发布,达到高效绘制复杂海量地质图的目标,本文基于地图制图脚本模型,设计研发了地质图发布系统(以下简称发布系统),并通过在某B/S架构的交互式Web地理计算平台中的应用实例验证了该系统的可行性。
1 地图制图脚本模型
脚本化制图是指采用脚本描述语言定义地图中各要素的制图样式,并通过脚本解释引擎软件将脚本描述转化为实际的制图命令。OGC委员会在WMS标准中给出了一种地图样式描述脚本规范,即SLD[4]。在该规范中,地图被定义为由样式化图层按照一定的次序叠加形成的对象。样式化图层是由图层数据和描述该图层绘制样式的信息组成的集合。按照这种定义,一 个地图可以表示为:
式中,Layer为一个图层;Style为其对应的样式。
开源地图绘制引擎的作者Migurski M受SLD思想的启发,提出将地图的绘制信息表述为(Layer,Style)元组的集合,并用xml编码表示;地图绘制引擎通过读取xml文件进行地图绘制。但参考文献[5]指出,用xml文件描述地图样式仍过于复杂[6],不利于用户编写;若采用CSS语法,样式的描述可变得更加简洁、灵活,因此提出了一种基于层叠样式表的制图描述语言——CartoCSS,并被当前最大的订制化在线地图供应商Mapbox所采用。随后,脚本制图技术逐渐发展,出现了若干基于脚本制图的系统[7],如采用Geographic Style Sheets脚本的 Cartagem和使用MapCSS脚本的OpenStreetMap。相对于传统制图模型,地图制图脚本模型具有互操作性强、易于编写、可重用、绘制效率高等优势,能极大地提高地图绘制的灵活度。
2 发布系统架构
为陈述方便,本文给出以下定义:①制图样式脚本:CartoCSS脚本文件,Web前端绘制引擎与绘制样式的关联文件。②制图工程脚本:地质图图层组织脚本文件,主要负责给Web端提供图层组织信息。③地质图样式:地质图要素的显示特征(颜色、线条粗细、符号大小等)。④地质图符号库:包括各类地质图符号、注记的图片库。⑤交换地质图:通过格式转换和样式提取,使原始地质图数据与样式相分离,其中数据存储为 shapefile格式,样式存储为文本描述格式;用于解决地质图从Windows平台向Linux平台的转换。⑥矢量样式文件:地质图矢量要素样式显示特征文件,是后缀名为txt的文本文件。⑦注记符号要素文件:地质图注记符号要素和注记显示特征文件,从MapGIS NOTE明码文件中提取得到,是后缀名为wat的文本文件。矢量样式文件和注记符号要素文件都是通过MapGIS软件相关模块从原始地质图数据中提取的。
发布系统由地质图数据解析模块、地质图样式转换模块、资源管理模块和制图与发布模块组成,架构如图1所示。首先,系统将Windows平台下由MapGIS存储管理的地质图数据解析为交换地质图,再将其传送到基于Linux平台的发布系统,实现对地质图制图脚本的生成和最终地质图的发布。
图1 发布系统架构
2.1 地质图数据解析模块
该模块负责处理存储于MapGIS系统中的原始地质图,解析提取其中的要素数据和样式信息,生成能跨平台处理的交换地质图中间格式。
原始地质矢量要素样式与矢量要素数据相结合存储于MapGIS格式数据中,因此注记符号要素文件采用明码格式储存在原始数据的NOTE文件中。对地质图数据进行解析时,不但需要解析矢量要素数据,还需分别对矢量要素样式和注记符号进行提取。
矢量要素数据的解析方法为:调用MapGIS的数据交换功能,将MapGIS中存储的地质图矢量数据转换为shapefile格式。矢量要素样式的解析方法为:利用MapGIS的样式文本提取模块,批量剥离矢量要素样式;再结合MapGIS数据中的矢量样式提取为交换地质图的文本矢量要素样式。注记符号要素的解析方法为:利用MapGIS的明码解析模块,从NOTE文件中提取交换地质图的注记符号要素文本文件。
2.2 地质图样式转换模块
该模块负责转换交换地质图的制图样式,形成地质图对应的制图脚本。每个交换地质图图层对应一个样式文件,每个样式文件中包含着图层中数以万计的各矢量要素的颜色、粗细等,而此类样式文件并不能被制图脚本解释器识别。制图脚本语言采用种类似于CSS的制图样式语言,样式定义文件即为CartoCSS语言脚本。而面对如此庞大的要素样式,不可能在前端手动进行样式编辑,故提出了一种自动化样式解析方法。按照点、线、面样式文件的文件组织特征,在交换地质图矢量样式文本文件中提取其颜色、线的粗细、点的大小等信息;再按照CatroCSS的语法特点,形成相应的制图样式脚本。
2.3 资源管理模块
该模块负责存储管理交换地质图中的矢量要素数据和制图样式中的样式符号文件,实现制图样式与图层的关联,为制图与发布模块提供完整的制图数据与脚本化样式集合。
交换地质图中矢量要素数据的存储管理方法为:将shapefile文件转换为空间数据库存储,空间数据库采用PostGIS。交换地质图svg符号库的存储管理方法为:上传并将格式转换为png格式。注记符号文本文件提取、存储管理方法详见§3.1。
制图工程脚本的功能为:记录地质图包含的种类、各图层信息以及图层与样式脚本对应关系信息,以便在前端绘制中,绘制引擎能正确组织各图层以及对应的样式,完成绘制。在后台提取上传的交换地质图各图层数据的数据名、数据类型、经纬跨度等信息,同时为各数据图层设置唯一的识别主键,进而生成需要的制图工程脚本。
2.4 制图与发布模块
该模块实现地质图的并行绘制与在线发布,其主要步骤为:①根据制图工程脚本,获取各地质图绘制所需的各图层以及对应样式;②解析各制图样式脚本,并驱动地图绘制引擎进行绘制,实时显示。
3 关键技术
发布系统涉及的关键技术包括:地质图注记快速并行提取技术、地质图数据及符号库快速交换技术和海量地质图数据并行可视化与制图技术。
3.1 地质图注记快速并行提取技术
经过资源管理模块的初步处理后,地质图注记符号以文本的形式按照一定的规则存储在注记符号文本文件中,每条注记对应一条文本记录。一条注记符号文本动辄包含数百万条文本记录,且记录由汉字、英文字母、罗马字母、复杂地质符号等组成,使得常规文本解析提取变得十分困难。
通过研究复杂地质图注记符号文本记录的规律,发布系统将每条文本记录解析为前端可识别和显示的地质图符号,形成png格式的地质图注记符号库,并建立显示位置与图片的对应关系,将注记叠加至地质图上。针对海量的地质图注记对提取速度的影响,发布系统提出了一种基于Python多进程编程的提取技术。该技术先对文本中相同的注记符号进行聚类,避免相同符号的重复提取;再调用多节点同时对超大文本文件的各部分进行读取、提取和生成png格式地质图注记符号;最后一次性写入共享文件系统。
3.2 地质图数据及符号库快速交换技术
针对地质图数据及符号库内容繁多、制图规则复杂的特点,发布系统在统一框架下分别对点、线、面等样式进行处理。所有制图样式和素材先由MapGIS导出成特定的通用交换格式,如导出数据为shapefile,导出样式为资源文本文件;再利用一套导入工具实现自动化高效导入。具体到点、线、面样式,又有不同的技术方案:
1)面样式。地质图的面样式主要包括颜色和填充纹理,填充纹理又可定义方向。发布系统接收从MapGIS导出的位图或符号库中的填充纹理文件,以及要素关键字段值与资源文件、颜色、纹理方向的对照表。先将资源文件注册到发布系统,再根据对照表生成相应的“地图样式文件”,最后导入系统进行绘制。
2)点样式。地质图的点样式主要以位图或矢量图元表达,可定义大小、颜色和方向。发布系统接收从MapGIS导出的位图或交换地质图符号库中的其他图元,以及要素关键字段值与资源文件、大小、颜色、方向的对照表,操作与面样式相同。
3)线样式。地质图的线样式主要有颜色、宽度和少量的模型线。发布系统接收从MapGIS导出的要素关键字段值与颜色、线宽的对照表,生成“地图样式文件”导入发布系统。对于无法用资源文件表达的少数模型线,需在发布系统中重新手工制作。
3.3 海量地质图数据并行可视化与制图技术
地质调查空间数据并行可视化与制图在服务上采取与数据服务类似的技术方案,后端运用高质量二维绘制引擎Agg和多级缓存等策略,结合并行可视化算法,实现对地质调查空间数据的快速高质量并行可视化与制图。并行可视化拟在两个层面上进行:对于数据量小、数目较多的地质数据集,采用大粒度并行,即根据数据进行负载平衡;对于数据量大、数目相对较少的地质数据集,采用任务的更细粒度划分,充分利用MPI、OpenMP并行方案,加速绘制速度,同时可采用矢量瓦片、矢量简化等方案,降低绘制压力。其整体架构见图2。
图2 海量地质图数据并行可视化与制图服务架构
4 发布系统实现
4.1 发布系统配置环境
服务器环境为:10台x86架构服务器组成的高性能计算集群,含12 TB存储,万兆以太网络。客户端环境为:Intel Core i5 3.0 GHz,2 GB RAM,Google Chrome V25.0。发布系统集成于自主研发的高性能地理计算平台(HiGIS),依托于国产操作系统——KylinOS。
4.2 发布系统功能
1)地质图数据批量交互上传。打开浏览器进入HiGIS系统总界面,点击“上传交互地质图”控件,选择需上传的交互地质图数据,输入地质图名称和描述,点击上传。演示效果如图3所示。后端4个模块将对上传的地质图数据进行自动化处理,并生成可在浏览器端高效可视化的地质图。
2)地质图前端显示效果。在发布系统中找到并打开新上传的地质图,实现流畅的复杂样式的地质图缩放、漫游功能,如图4所示。
图3 地质图数据批量交互上传
图4 1∶250万地质图浏览
5 结 语
本文提出了基于地图制图脚本模型的地质图发布方法,极大地提高了地质图交互浏览的效率;实现了基于并行技术的地质图注记快速提取和样式的高效转换;设计了基于高性能集群的面向Web端的地质图发布系统。今后需对发布系统的功能进行优化:①通过优化并行绘制算法,进一步提高绘制效率;②结合地质图相关应用,添加相关的分析功能,如添加地质灾害动态预测分析功能、模拟地质灾害功能等,进一步拓展应用功能。
[1]尚武.全国地质资料馆信息化建设与实践[C].昆明:国土资源信息化建设研讨会,2005
[2]李超岭,李丰丹,李健强,等.智能地质调查体系与架构[J].中国地质,2015,42(4):828-838
[3]蔡苑彬, 刘露,陈荦,等. 基于地图制图脚本的交互式图例动态生成方法[J]. 地理空间信息,2014,12(5):154-157
[4]Consortium O G. Styled Layer Descriptor Profile of the Web Map Service Implementation Specification[S].2007:62-68
[5]Migurski's M. Cascadenik Cascading Sheets of Style for Mapnik [EB/OL]. (2008-04-30)[2016-10-10].http://mike.teczno.com/ notes/cascadenik.html
[6]李超岭,李健强,张宏春,等.智能地质调查大数据应用体系架构与关键技术[J].地质通报,2015,34(7):1 288-1 299
[7]李德仁.论广义空间信息网格和狭义空间信息网格[J].遥感学报,2005,9(5):513-520
P283.7
B
1672-4623(2017)07-0049-04
10.3969/j.issn.1672-4623.2017.07.015
舒超,硕士研究生,主要研究方向为GIS应用和空间数据库。
本 刊 声 明
(本刊编辑部)
2016-10-21。
项目来源:国家高技术研究发展计划资助项目(2015AA123901);国家自然科学基金资助项目(41301431)。
为适应我国信息化建设,扩大本刊及作者知识信息交流渠道,本刊数据已被《中国核心期刊(遴选)数据库》《CNKI 中国期刊全文数据库》和《中文科技期刊数据库(全文版)》等收录。在《地理空间信息》发表的论文均默认将其在著作权保护期内的复制权、发行权、汇编权、翻译权以及网络传播权授权给《地理空间信息》编辑部,编辑部可将上述权利转授给第三方使用。作者不再许可他人以任何形式使用该篇论文,但可以在其后续作品中引用(或翻译)该论文中部分内容或将其汇编在作者的非期刊类文集中。如不同意,请事先声明,本刊另作处理。其文章的著作权使用费与本刊稿酬一次性给付(已在收取发表费时折减和换算为杂志赠阅)。