靳 磊,朱 濤
(中國鐵路信息科技有限責任公司,北京 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]。此外,矢量瓦片技術原理也可為大數據優化提供了一種值得探索的解決思路。