尤方圓 劉詩俊 楊 巍
(中國船舶重工集團公司第七二二研究所 武漢 430205)
YOU Fangyuan LIU Shijun YANG Wei
(The 722th Research Institute of China Shipbuilding Industry Corporation, Wuhan 430205)
?
電子海圖通信態(tài)勢軟件設(shè)計與實現(xiàn)*
尤方圓劉詩俊楊巍
(中國船舶重工集團公司第七二二研究所武漢430205)
論文主要介紹了電子海圖顯示信息系統(tǒng)設(shè)計與實現(xiàn)中的關(guān)鍵技術(shù)。分析介紹電子海圖IHO S-57標準與IHO S-52標準的數(shù)據(jù)結(jié)構(gòu)模型。在該基礎(chǔ)上設(shè)計實現(xiàn)電子海圖通信態(tài)勢軟件,著重論述電子海圖S-52標準的實現(xiàn),電子地圖縮放,漫游相關(guān)功能的實現(xiàn),通信態(tài)勢自定義標識符的繪制,經(jīng)緯度屏幕標識符的繪制。
S-57; S-52; 電子海圖顯示與信息系統(tǒng); 通信態(tài)勢
YOU FangyuanLIU ShijunYANG Wei
(The 722th Research Institute of China Shipbuilding Industry Corporation, Wuhan430205)
Class NumberTP311
電子海圖顯示與信息系統(tǒng)(Electronic Chart Display and Information System, ECDIS)是集導(dǎo)航計算、航線規(guī)化、航行告警、海圖信息顯示、船位信息、雷達信息、船舶運動參數(shù)實時計算等功能的綜合海情自動化系統(tǒng)。
ECDIS以計算機系統(tǒng)為核心,連接GPS、雷達、測深等設(shè)備,集成電子海圖數(shù)據(jù)庫,通過不斷采集船舶位置信息,動態(tài)計算航行線路,實時反映船舶行駛狀態(tài),保障船舶的安全航行。其中計算機系統(tǒng)是核心部分,它主要負責(zé)實時導(dǎo)航計算、碰撞檢測和圖形圖像繪制計算。在ECDIS中海圖信息的存儲與顯示是相互獨立的,信息的交換存儲模型是基于S-57標準[1],顯示模型基于S-52標準。這樣為電子海圖系統(tǒng)的設(shè)計提供了極大的靈活性,使得同一數(shù)據(jù)不需任何更改即可用于滿足不同需求的顯示,訂制特定的顯示功能。
電子海圖通信態(tài)勢軟件,在電子海圖背景上實時顯示船用通信設(shè)備的通信覆蓋區(qū)域,通信站點連通狀態(tài),通信質(zhì)量等信息,為船用通信設(shè)備管理系統(tǒng)提供更加友好的態(tài)勢監(jiān)控界面,滿足系統(tǒng)各種訂制的通信態(tài)勢顯示需求。
S-57(IHO Transfer Standard for Digital Hydrographic Data)標準是一個水文數(shù)據(jù)傳輸與交換的標準,其數(shù)據(jù)模型不包含用于海圖圖形化顯示的規(guī)則,只提供描述顯示世界的方法,信息的顯示獨立于其存儲模型。S-57標準最終目標是將對顯示世界的描述轉(zhuǎn)換成為可傳輸?shù)奈募?,轉(zhuǎn)換過程分為以下幾個步驟:
圖1 S57轉(zhuǎn)換過程
在S57標準的“模型概述”部分中,真實世界的實體是可以感知的對象,標準將對象抽象為數(shù)據(jù)模型,現(xiàn)實世界中的對象非常復(fù)雜,數(shù)據(jù)模型是對高度復(fù)雜世界的簡化和抽象。根據(jù)物標的特性,數(shù)據(jù)模型將物標定義為描述特征和空間特征的組合;物標被定義為一組可標識的信息,由特征物標和空間物標組合而成。下一步將特征物標與空間物標轉(zhuǎn)換為對應(yīng)的數(shù)據(jù)結(jié)構(gòu),一個物標(Object)對應(yīng)一個記錄(Record),物標(Object)中的屬性(Attribute)對應(yīng)于記錄(Record)中的域(Field)。轉(zhuǎn)換過程結(jié)束后,數(shù)據(jù)結(jié)構(gòu)將以ISO8211標準格式存儲在文件中,即將Record,F(xiàn)ield等數(shù)據(jù)結(jié)構(gòu)最終存儲到二進制文件中。
數(shù)據(jù)模型中物標分為特征物標和空間物標,特征物標只包含對象的基本描述信息,不包括地理信息,空間物標包含對象的地理信息(如經(jīng)緯度、高度等信息)。
數(shù)據(jù)結(jié)構(gòu)中最基本的單位是子域(subField),一或多個子字段組成字段;一個或多個域(Field)組成記錄(Record);一個或多個記錄構(gòu)成文件(File);一個交換集(Data Exchange Set)由一個或多個文件組成。記錄分為五種:數(shù)據(jù)集描述(Data Set Descriptive)記錄、目錄(Catalogue)記錄、數(shù)據(jù)字典(Data Dictionary)記錄、特征(Feature)記錄、空間(Spatial)記錄。S-57數(shù)據(jù)結(jié)構(gòu)實現(xiàn)上采用樹形結(jié)構(gòu)。不同記錄和字段中的信息由專門的指針字段關(guān)聯(lián)。RCNM和RICD子字段標識共同作為記錄的標識。
S-57格式文件使用ISO/IEC 8211作為物理封裝標準,ISO/IEC 8211是基于文件的數(shù)據(jù)交換格式,實現(xiàn)不依賴具體計算機系統(tǒng)的數(shù)據(jù)交換。ISO/IEC 8211是一個以文件為基礎(chǔ)的交換格式,其基本結(jié)構(gòu)是邏輯記錄。
S-52標準[2]中電子海圖的顯示模式[3]的規(guī)定分為兩大部分,一是電子海圖表示庫,包括色彩編碼表、符號庫(點、線、面)、符號化指令集、物標—符號查找表以及條件符號化過程;二是顯示生成器,在S-52表示庫的各項內(nèi)容的基礎(chǔ)上,把按S-57標準結(jié)構(gòu)化編碼[7]組織的數(shù)據(jù)以正確的形式顯示。電子海圖繪制算法,遍歷S-57數(shù)據(jù)中的物標對象,提取物標屬性,在檢索表中根據(jù)物標屬性查找相應(yīng)的符號化繪制指令[8],該繪制指令從符號庫中載入符號,從顏色表中獲取對應(yīng)的顏色,進行繪制[9]。
圖2 S52顯示標準模塊圖
S52標準主要由三個部分構(gòu)成,第一部分對電子海圖的改正問題做出了詳細的規(guī)定,給出了海圖改正的方法和流程;第二部分描述了ECDIS屏幕上電子海圖的顏色及符號的使用細節(jié);第三部分定義了ECDIS的相關(guān)術(shù)語。其中,第二部分的《顏色和符號規(guī)范說明》是該標準的重要部分,它確定了ECDIS表達SENC信息[10]的方法和意義。
此外,S-52標準還包括兩個附件和三個附錄[4],分別如下:
1) 附件A S-52與IMO ECDIS性能標準參考
2) 附件B IMO ECDIS性能指標
3) 附錄1電子航海圖更新指南
4) 附錄2 ECDIS色彩與符號詳細規(guī)定
5) 附錄3 ECDIS技術(shù)相關(guān)術(shù)語集[5]
本文研制開發(fā)了電子海圖通信態(tài)勢軟件系統(tǒng)[6],系統(tǒng)模塊圖如圖3所示。
圖3 系統(tǒng)模塊圖
主要分為地圖控件模塊、地圖渲染模塊、電子海圖數(shù)據(jù)源、地圖圖層模塊、S52符號模塊、通信態(tài)勢繪制模塊等幾個模塊。
地圖控件模塊封裝了地圖控件的基本功能、如漫游、縮放、標注、距離測量、加載地圖文件等功能。地圖渲染模塊進行海圖的繪制工作,將解析完的海圖物標數(shù)據(jù)結(jié)構(gòu),繪制到地圖控件上。海圖數(shù)據(jù)源模塊將S57格式的海圖文件解析為基于ORG格式的標準圖層數(shù)據(jù)結(jié)構(gòu),以供地圖渲染模塊進行繪制操作。由于S57格式的海圖數(shù)據(jù)是基于物標的文件格式,而ORG庫中的地圖圖層是基于地理位置屬性的,地圖圖層模塊是將ORG庫解析的S57圖層數(shù)據(jù)結(jié)構(gòu)ORGMapLayer轉(zhuǎn)換為S57物標圖層數(shù)據(jù)結(jié)構(gòu)S57MapLayer。S52符號模塊用于管理物標繪制時所需的樣式信息。通信態(tài)勢繪制模塊用于在海圖上繪制通信站點的連通狀態(tài),通信覆蓋范圍等信息。系統(tǒng)的UML類圖如圖4所示。
圖4 系統(tǒng)類圖
4.1地圖控件模塊
地圖控件模塊類MapCanvas封裝了地圖控件的基本功能,如漫游、縮放、標注等功能。
基本接口函數(shù)如下:
setExtent:設(shè)置地圖范圍,在加載完海圖數(shù)據(jù)后,計算出整張海圖所包括的區(qū)域面積,調(diào)用該接口設(shè)置地圖控件顯示的海圖區(qū)域;
zoomIn:放大地圖,當滾動鼠標時,進行地圖放大操作;
zoomOut:縮小地圖,當滾動鼠標時,進行地圖縮小操作;
pan:地圖漫游,拖動鼠標時,移動地圖;
mapToScreen:地圖坐標轉(zhuǎn)屏幕坐標,在進行地圖繪制時,將地理位置坐標轉(zhuǎn)換為屏幕坐標,進行繪制;
screenToMap:屏幕坐標轉(zhuǎn)地圖坐標,在進行地圖交互操作,如實時顯示鼠標當前經(jīng)緯度時,將鼠標屏幕坐標轉(zhuǎn)換為地理位置坐標;
setViewPort:設(shè)置屏幕視圖,屏幕視圖以像素為單位。
4.2地圖圖層模塊
電子海圖系統(tǒng)將物標數(shù)據(jù)根據(jù)地理屬性劃分為不同的地圖圖層類S57MapLayer,S57地圖數(shù)據(jù)是基于物標,圖層信息是基于特征的,S57數(shù)據(jù)解析完成后生成的幾何屬性會加入到對應(yīng)的圖層中。
4.3電子海圖數(shù)據(jù)源
電子海圖數(shù)據(jù)源類S57DataSource定義解析S57海圖文件,S52表示庫文件的方法和數(shù)據(jù)結(jié)構(gòu),解析后的數(shù)據(jù)結(jié)構(gòu)。地圖數(shù)據(jù)模型采用分層模型結(jié)構(gòu),物標的顯示與地圖的放大尺寸存在一定關(guān)系,物標在不同的地圖放大級別上顯示效果不一樣,數(shù)據(jù)源中的scaleItemGroups是根據(jù)物標顯示閾值將相同顯示閾值的物標進行歸類;symbols用于保存S52解析后的樣式名稱與樣式結(jié)構(gòu)的映射關(guān)系,在繪制物標時,根據(jù)樣式名稱動態(tài)查找對應(yīng)的樣式結(jié)構(gòu)進行繪制。
數(shù)據(jù)源類的基本接口函數(shù)如下:
parseDrawInstruction:解析動態(tài)繪制指令;
parseLookupLine:解析檢索表行;
parseLookups:解析檢索表,創(chuàng)建檢索表樣式ChartStyle;
parseS52Symbols:解析S52樣式文件S52RAZDS.RLE,生成S52顯示結(jié)構(gòu)S52Symbol;
translateChartStyle:使用條件符號;
getLayerStyle:獲取圖層樣式;
getComplexSymbol:拼接復(fù)雜符號,S52的符號繪制指令非常復(fù)雜,該函數(shù)是根據(jù)S52的繪制指令生成相應(yīng)的圖標文件,以便重復(fù)繪制,避免重復(fù)解析繪制指令的開銷,提高繪制效率。S57海圖數(shù)據(jù)的加載流程如表1所示。
表1 S57數(shù)據(jù)加載流程
地圖圖元項類MapCanvasItem定義地圖圖元的基本特性,包括畫筆、畫刷、顏色等信息,解析地圖物標得到相應(yīng)的樣式信息,根據(jù)物標幾何屬性創(chuàng)建對應(yīng)的地圖圖元,并將樣式信息轉(zhuǎn)換為繪制的筆畫、填充、顏色等信息。海圖圖元分為以下幾種:
1) 圖片圖元:MapCanvasImageItem
2) 線圖元:MapCanvasLineItem
3) 多邊形圖元:MapCanvasPolygonItem
4) 多邊線圖元:MapCanvasPolylineItem
5) 文字圖元:MapCanvasTextItem
4.4電子海圖渲染模塊
海圖渲染類MapCanvasRenderer定義海圖繪制方法和流程,自定義標識符的繪制方法,海圖圖片數(shù)據(jù)導(dǎo)出方法,是整個電子海圖通信態(tài)勢軟件最核心的模塊,其中海圖繪制流程如下。
1)遍歷圖層S57MapLayer *layer;
2)遍歷圖層中的圖元MapCanvasItem *canvasItem;
3)判斷圖元類型,如果為文字圖元,進入4),如果為圖片圖元,進入5),如果為線型圖元,進入6),如果為多邊形圖元,進入7);
4)調(diào)用renderTextItem進行文字圖元繪制;
5)調(diào)用renderImageItem進行圖片圖元繪制;
6)調(diào)用renderLineItem進行線型圖元繪制;
7)調(diào)用renderPolygonItem進行多邊形圖元繪制;
8)繪制自定義標識符canvasMarker,繪制通信態(tài)勢標識符,經(jīng)緯度標識符。
4.5S-52符號模塊
S52符號表示文件S52RAZDS.RLE中定義了每個物標對應(yīng)的S52繪圖指令;條件符號化的指令將物標的繪制操作定義為簡短的繪制指令,渲染模塊在繪制時,動態(tài)解析該指令為基本繪制命令,轉(zhuǎn)移到相應(yīng)的基本繪制回調(diào)函數(shù)中繪制,該文件中大致包含如下幾項:
1) Color-tables:記錄的是S52標準下各種顯示模式的基準色;
2) Lookups:記錄的是各種類型S52標準的點線面繪制;
3) Line-styles:記錄的是各種線型;
4) Patterns:記錄的是各種類型圖案的繪制;
5) Symbols:記錄的是各種類型符號的繪制;
這幾部分的關(guān)系是:Lookups提供總體繪制方法,在繪制方法中調(diào)用其它部分的定義實現(xiàn)最終的繪制。也就是說,一個obj對象的繪制,首先需要定位到它屬于Lookups中的哪一類,再根據(jù)Lookups的記錄查找線、圖案、符號和顏色完成繪制和填充。
4.6通信態(tài)勢模塊
通信態(tài)勢軟件一般需要繪制通信站點標識,通信鏈路狀態(tài),通信區(qū)域范圍等信息,在傳統(tǒng)海圖軟件刷新界面性能較慢,而通信態(tài)勢的變化頻繁,要求軟件必須迅速繪制通信狀態(tài),因此軟件設(shè)計了地圖標識符類MapCanvasMarker,用戶可以自定義通信標識符,在海圖界面不變化時,程序直接繪制緩存的海圖圖片,在圖片上繪制地圖標識符,這樣繪制速度會得到極大提升。
MapCanvasMarker的定義如下:
class MapCanvasMarker
{
QList
QList
QList
QList
QList
QList
};
基本接口函數(shù)如下:
setAlpha:設(shè)置透明度;
setLineWidth:設(shè)置線寬度;
setPointSize:設(shè)置點符號大??;
setOutlineColor:設(shè)置輪廓顏色;
setFillColor:設(shè)置填充顏色;
屏幕標識符類MapScreenMarker區(qū)別于地圖標識符,屏幕標識符是基于屏幕坐標,的標識符,例如經(jīng)緯度的顯示,比例尺、導(dǎo)航條等控件的繪制,都是基于屏幕坐標,用戶以底圖為背景,添加其它需要前置顯示的內(nèi)容,如雷達掃描圖、戰(zhàn)場態(tài)勢、告警信息等。
MapScreenMarker定義:
class MapScreenMarker
{
QList
QList
QList
QList
QList
};
屏幕標識符類的基本接口函數(shù)與標識符類一致。
電子海圖通信態(tài)勢軟件的實際效果圖如圖5。
圖5 電子海圖通信態(tài)勢效果圖
本文結(jié)合S-57,S-52標準,采用GDAL,OGR庫讀取標準的S57格式文件,自主開發(fā)了基于S52標準的海圖渲染控件,不足之處在于,海圖S52的符號化指令過于復(fù)雜,可讀性差,不利于訂制個性化的顯示方案,后期考慮將S52的符號繪制指令XML格式化,便于修改。另外對于電子海圖格式目前只支持S-57格式的數(shù)據(jù),對基于CM93等其余格式的支持不夠。
[1] IHO. IHO transfer standard for digital hydrographic data publication S-57(Edition 3.1)[S].MONACO,2011.
[2] IHO.S-52-specifications for chart content and display aspects of ECDIS(Edition 6.0)[S].MONACO,2011.
[3] Li Xing-feng. Electronic chart display and navigation system based on S-57 international standard[D]. Xi’an: Xidian University,2007.
[4] The International Hydrographic Bureau.IHO Ecids Presentation Library Users Manual Edition 3.2[S].MONACO,2000.
[5] 國際海道測量組織.電子海圖及其應(yīng)用系統(tǒng)國際規(guī)范和標準(S-57篇)[M].大連:大連海事大學(xué)出版社,1999:30-33.
[6] 國際海道測量組織.電子海圖及其應(yīng)用系統(tǒng)國際規(guī)范和標準(S-52篇)[M].大連:大連海事大學(xué)出版社,1999:30-33.
[7] 黃潔.基于ArcGIS組件的電子海圖顯示系統(tǒng)的研究與實現(xiàn)[D].武漢:武漢理工大學(xué),2008.
[8] 李興鋒.基于S-57國際標準的電子海圖顯示與導(dǎo)航系統(tǒng)[D].西安:西安電子科技大學(xué),2007.
[9] 唐經(jīng)宇,劉東峰,孫粵輝,等.S-57電子海圖文件基礎(chǔ)處理庫的設(shè)計實現(xiàn)[J].計算機工程與科學(xué),2013(2):41-45.
[10] 董才華,秦臻.電子海圖數(shù)據(jù)讀取與顯示技術(shù)[J].中國航海,2012(4):31-33.
Design and Implementation of ECDIS Communication Situation*
The paper mainly introduces the key technology of electronic chart information system design and implementation.The data structure model of electronic chart IHO S-57 and IHO S-52 are introduced in this paper.On the basis of the design and implementation of electronic chart communication software, the realization of electronic chart S-52 standard, electronic map zoom, panning related functions are discussed emphatically, and the rendering of the communication situation custom identifier and the latitude and longitude screen identifier are discussed emphatically.
S-57, S-52, ECDIS, communication situation
2016年2月12日,
2016年3月22日
尤方圓,男,碩士研究生,工程師,研究方向:數(shù)據(jù)鏈消息處理。
TP311
10.3969/j.issn.1672-9730.2016.08.031