靳 磊,朱 涛
(中国铁路信息科技有限责任公司,北京 100844)
随着我国铁路事业的迅速发展与信息化水平的提高,运输调度人员希望通过可视化的铁路路网数据,掌握资源分布情况,分析运输组织态势,并配合列车运行图,更加全面、更高层次、更加立体地开展运输组织与调度指挥[1]。为满足这些需求,部分学者基于GIS、WebGIS、ArcGIS 等技术开展铁路路网可视化研究,并在局部和特定高铁线路取得了较好的效果[2-4]。但由于这些技术大多依赖商用软件,成本较高,资料较少,难以满足全路网规模的研发与实施。另有部分学者详细分析了铁路路网的组成,按照路网元素的特点,分别给出了数据可视化方案[5-6],基本实现了铁路路网数据可视化。但是,由于这些技术没能较好地解决数据运算量大、绘图效率较低等问题,造成实际应用效果不理想。为此,在总结前人经验教训的基础上,借鉴互联网地图可视化实现思路,提出矢量瓦片技术,以期给出可行、高效的铁路路网数据可视化解决方案。
铁路路网(简称路网)描述了铁路的固定物理设备,包括车站、车场、站内股道、作业设备、区间线路以及这些设备间的联系、运用方法、组织方式等静态数据。这些数据是铁路调度统一指挥、协同作业的基础,是运输组织、管理控制的重要依据,也是调度系统与其他系统数据交互的共同准则[7]。如图1 所示,将车站、车场、站段、线路所、分界口等信息标注为路网节点,用连接节点的线表示节点间的铁路轨道,将全路路网信息绘制在一幅图上,展现可视化的铁路路网。
铁路路网图通过调整比例尺,支持从整体到局部、从宏观到微观地展现铁路路网信息,包括枢纽区域、线路走向、车站分布、站场设备布局、股道运用状态等内容,满足运输调度不同场景的需求。进一步,通过在铁路路网图上动态标记施工作业地点、列车运行位置,机车车辆分布等信息,能够实现铁路运输调度动静态信息融合,满足路网运力监视、态势分析、故障救援与应急处置等需求,极大地促进运输调度工作的精细化和精准化。
路网数据属于网络型数据,具有体量巨大、内容丰富、层次较深等特点,这类数据的可视化技术主要有3 种。
1.2.1 静态图片绘图技术
该技术又称为位图绘图技术,通过操纵像素的图像属性绘制图片,每张图片都是由成千上万个像素点构成。静态图片绘图技术非常成熟,能够绘制极其复杂、效果炫彩的图片,Photoshop 是目前最著名的静态图片创作与编辑工具。但是,静态图片只是对像素信息进行绘制,无法提取图片内容,并且图片缩放后会变形、失真,无法进行交互、网络化运算与二次开发。
1.2.2 模拟矢量图绘图技术
该技术利用一系列静态图片模拟矢量图效果。通过设定若干比例尺,预先按照比例尺分别绘制静态图片并缓存。当缩放至某比例尺时,动态加载并绘制相应的静态图片,从而在视觉上模拟出矢量图的效果[8]。该技术不需要掌握复杂的图形图像处理技术,只需处理好静态图片的管理、加载和传输等问题。目前,主流GIS 软件大都采用该技术作为首选的可视化技术。但是,该技术存在3 个缺陷:(1)随着比例尺的放大,静态图片的尺寸与存储空间呈指数级增长,对静态图片的存储与网络传输要求较高;(2)模拟矢量图仅实现视觉矢量化,并未包含图形的矢量信息,难以满足图形交互和网络运算等需求;(3)GIS 数据决定了GIS 服务的应用效果,而GIS 数据采集、购置和维护成本高昂,且在格式和内容上与铁路运输调度业务数据差别较大,整合难度较大。
1.2.3 矢量图绘图技术
矢量图绘制的是矢量图形,矢量图形可以是一个点或一条线,因为不包含图像数据,所以矢量图形数据只占用非常小的存储空间与传输带宽。矢量图的特点是与分辨率无关,缩放后图像不会失真、变形,始终保持一致的光滑度。此外,矢量图形还可满足颜色与线型定制,交互操作与网络运算等需求。由于矢量图通过动态绘制生成,最大的不足在于图像渲染效果不及静态图片,该缺陷也是商业GIS 软件没有将矢量图绘图技术作为首选可视化技术的原因之一。目前,矢量图绘图技术主要用于制作图案、标志、文字。
以上3 类技术均可实现铁路路网数据可视化,通过综合考量业务需求、研发难度和运维成本,最终选取矢量图绘图技术。
采用合适的绘图技术展示数据是数据可视化的目标,但是数据可视化要实用落地还需具备高效的绘图能力,目前主要采用升级硬件设备、优化绘图算法或减少绘图数据等方法。由于铁路路网数据与电子地图具有很多相似的地方,所以电子地图特别是互联网地图的应用实践值得学习和借鉴。
随着计算机技术的发展,地图技术开始服务于越来越多的领域。电子地图数据通常体量较大,需要充足的网络带宽和图像渲染能力,因此在瓦片技术诞生以前,地图多在局域网内的桌面软件中使用。随着互联网的发展,通过浏览器使用地图的需求日益强烈,在1999 年出现了WMS(Web Map Service)这样的解决方案。WMS 的设计原理是:在服务器端把地图渲染成图片,由浏览器绘制地图图片,地图图片需要根据浏览器视窗尺寸动态定制。WMS 极大地改进了互联网地图的生成进程,但是每次浏览器页面刷新都要重新绘制一张完整的图片,后端渲染和网络传输压力较大且效率低下。随后,产生了“WMSCached”思想,通过缓存地图图片提高效率,在工程实践方面更胜一筹的Google 成为这一思想的最佳实践者。2005 年,Google 地图上线,通过高效的瓦片技术,让全球用户轻而易举的享受到了地图的福利。Google 地图采用的Web Mecator 投影[9]和瓦片分级切割方案已成为目前互联网地图事实上的标准。随后,Google 地图新增了路网服务、实时路况、街景地图和Google 地球等服务,互联网地图的蓬勃发展由此开始。
使用互联网地图时,所看到的是一幅铺满整个屏幕的“大图片”,这幅“大图片”实际是由多个尺寸相同(通常是256×256 像素)的小图片按照既定规则无缝拼接而成的,这些小图片就是瓦片。瓦片按照图2 所示的金字塔结构组织,每张瓦片都可通过级别、行号、列号唯一标记[10]。在平移地图、缩放地图时,浏览器根据金字塔规则,计算出所需的瓦片,从服务器获取瓦片对应的图片,最后拼接成所看到的地图。
瓦片原理又称金字塔规则[11],如图2a 所示。每个瓦片都有相同的尺寸,每放大一级,原瓦片包含的绘制内容就被切分成4 等份,分别绘制在与原瓦片相同尺寸的4 张瓦片上,这样图像就被放大了4 倍。依据金字塔规则,瓦片数的计算公式为TileCount=4ZoomLevel,其中TileCount代表瓦片总数,ZoomLevel代表缩放等级,缩放等级从0 开始递增,地图逐级放大。一幅缩放级别为15 级的地图,精确到可以看清城市建筑,大约需要11 亿张瓦片才能覆盖整个世界。Google 地图可以缩放到17 级,仅仅是增加了两个缩放级别,同样覆盖全世界却需要170 亿张瓦片,这些瓦片图是静态图片,如果不利用瓦片技术,无法想象如何完成这种体量图片的传输。
矢量瓦片技术主要借鉴瓦片技术[12]原理,通过融合矢量图形算法与金字塔规则,实现对可视范围内矢量图形的筛选、分组、变换、传输、绘制与拼接,减少运算数据量,进一步提高绘图效率和性能。矢量瓦片技术主要包括坐标系、坐标变换以及绘制流程3部分内容。
矢量瓦片技术根据使用场景采用了多个坐标系:
(1)实际图坐标系。给定正方形范围,在该范围内能够绘制所有的矢量图形,该范围称为实际图,用Figure表示。实际图对应的坐标系称为实际图坐标系,实际图的中心为坐标原点,原点向右和向上为正,用Figure(x, y)表示坐标。矢量图形都以该坐标系的数值表示和存储。
(2)透视图坐标系。按给定的缩放等级将实际图投影,投影边界范围所构成的矩形称为透视图,用Projection表示。透视图范围内的坐标系称为透视图坐标系,投影图左上角为坐标系的原点,原点向右和向下为正,用Projection(x, y)表示坐标。
(3)瓦片图坐标系。给定瓦片尺寸(用Tile.size表示),将给定缩放等级的透视图切分成瓦片,以瓦片为单元表示透视图的坐标系称为瓦片图坐标系;透视图的左上角为坐标系的原点,原点向右和向下为正,用Tile(z,c,r)分别表示缩放等级、列数和行数,且均为正整数。
(4)视图坐标系。计算机绘制图片的区域,称为视图,用View表示。视图对应的坐标系称为视图坐标系,视图左上角为坐标系的原点,原点向右和向下为正,用View(x,y)表示坐标。视图坐标系相当于对透视图坐标系的原点进行了平移。
为实现坐标转换和计算可视瓦片集,需要确定以下参数:
(1)实际图尺寸(Figure.size)。为便于计算,约定实际图为一个正方形,其尺寸包含全部的矢量图形,用Figure.size表示该正方形边长。
(2)瓦片计算公式。瓦片计算公式即金子塔模型,一般使用TileCount=4ZoomLevel计算每级瓦片数。
(3)瓦片尺寸(Tile.size)。瓦片一般用正方形表示,尺寸多为256*256 个像素。
(4)分辨率(Resolution)。在某个缩放等级对应的透视图坐标系中,一个单位的长度所对应的实际坐标系的长度,称为分辨率。例如1:20,代表透视图的一个单位的长度等于实际坐标系中20 个单位的长度。分辨率定义了实际图的缩放比例。分辨率与实际图尺寸(Figure.size)、瓦片尺寸和缩放等级有关,公式为:
(5)视图中心坐标代表的实际图坐标View-CenterFigure(x,y)。根据该坐标才能确定视图当前显示范围对应的透视图范围。
准备好必要参数后,即可按照以下公式计算矢量图形对应各个坐标系的坐标。
(1)已知实际图坐标Figure(x,y),计算透视图坐标Projection(x,y)
(2)已知实际图坐标Figure(x,y),计算瓦片图坐标Tile(z,c,r)
Tile.z=缩放等级
(3)已知实际图坐标Figure(x,y),计算视图坐标View(x,y)
根据计算公式,按照以下流程即可完成矢量瓦片图的绘制。
(1)确定实际图坐标系;
(2)计算实际图范围;
(3)确定当前视图缩放等级;
(4)确定当前视图范围;
(5)确定当前视图范围中心点对应的矢量图坐标;
(6)计算当前视图范围内可视瓦片集;
(7)计算与可视瓦片集有交集的矢量图形;
(8)计算矢量图形的视图坐标;
(9)根据视图坐标绘制矢量图形;
(10)如果对视图进行平移和缩放操作,应重新计算缩放等级与视图范围中心点对应的实际图坐标。
基于矢量瓦片技术研发的铁路路网管理系统,可实现路网数据可视化,提供高效、快捷、简单、方便的运维功能,验证矢量瓦片技术的可行性和高效性。与既有路网维护工具相比,该系统具有以下特点:
(1)路网数据可视化。铁路站场、线路以图形的方式呈现给用户,便于浏览与查询,数据正确与否直观明了。
(2)分层显示。根据缩放等级,分层、逐层地显示内容,既可以提高系统性能,又能够避免信息爆炸影响用户体验。
(3)隐含信息直观化。通过分析路网图即可获知尽头式车站、枢纽区域、站线布局、线路走向等隐含信息。
(4)维护方式图形化。以点、选、拖、拽等图上操作取代数据表上处理操作,简化维护过程,提高维护效率,在维护数据表数据的同时,完成对路网图及矢量图形数据的维护,一举多得。
(5)图形绘制高效化。矢量瓦片技术大幅减少了绘图所需数据量,并利用HTML5、缓存、即时消息、并行计算等技术,极大地提高了绘图效率,改善了用户体验。
(6)支持协同维护。矢量图形数据量少,传输和渲染效率高,支持多人同时在线维护,维护结果可立即反映到其他维护人员的界面,便于协调与商讨,加快反馈与迭代,利于促进了协同与合作。
(7)支持二次开发。系统使用GeoJSON 格式描述矢量图形数据,提供Javascript、Java 等多种语言接口,支持扩展数据内容、增强显示效果、3D 渲染等深度二次开发。
(8)维护系统升级为生产系统。调度指挥的结果往往引起路网数据的变更(例如施工造成的区间线路的限速、限行,会引起路网状态的改变),这些变更如果能够直接反映到相关系统中,就能在信息系统层面促进调度协同作业、统一指挥,推动调度系统智能化发展。铁路路网管理系统就是很好的媒介,基于其强大、高效的数据可视化能力,通过增加监控、预警、消息等功能,将原本只作为维护系统的铁路路网管理系统升级为生产系统,并与其他系统密切配合,必定能更好的支持调度系统的建设与发展。
矢量瓦片技术及其在铁路路网数据可视化的应用,证明了该技术的可行性和高效性;同时,为铁路运输调度系统改进运维模式、提高维护效率提供了技术支持,也为实现列车追踪、车辆监控、施工控制以及应急指挥等业务提供数据可视化解决方案,有助于促进铁路运输调度事业的发展。尽管矢量瓦片技术原理简单、使用方便,为进一步提高绘图效率,还需在分组算法、并行运算、数据缓存、数据传输、3D 图形渲染等方面投入大量的研究[13]。此外,矢量瓦片技术原理也可为大数据优化提供了一种值得探索的解决思路。