尤方圆 刘诗俊 杨 巍
(中国船舶重工集团公司第七二二研究所 武汉 430205)
YOU Fangyuan LIU Shijun YANG Wei
(The 722th Research Institute of China Shipbuilding Industry Corporation, Wuhan 430205)
电子海图通信态势软件设计与实现*
尤方圆刘诗俊杨巍
(中国船舶重工集团公司第七二二研究所武汉430205)
论文主要介绍了电子海图显示信息系统设计与实现中的关键技术。分析介绍电子海图IHO S-57标准与IHO S-52标准的数据结构模型。在该基础上设计实现电子海图通信态势软件,着重论述电子海图S-52标准的实现,电子地图缩放,漫游相关功能的实现,通信态势自定义标识符的绘制,经纬度屏幕标识符的绘制。
S-57; S-52; 电子海图显示与信息系统; 通信态势
YOU FangyuanLIU ShijunYANG Wei
(The 722th Research Institute of China Shipbuilding Industry Corporation, Wuhan430205)
Class NumberTP311
电子海图显示与信息系统(Electronic Chart Display and Information System, ECDIS)是集导航计算、航线规化、航行告警、海图信息显示、船位信息、雷达信息、船舶运动参数实时计算等功能的综合海情自动化系统。
ECDIS以计算机系统为核心,连接GPS、雷达、测深等设备,集成电子海图数据库,通过不断采集船舶位置信息,动态计算航行线路,实时反映船舶行驶状态,保障船舶的安全航行。其中计算机系统是核心部分,它主要负责实时导航计算、碰撞检测和图形图像绘制计算。在ECDIS中海图信息的存储与显示是相互独立的,信息的交换存储模型是基于S-57标准[1],显示模型基于S-52标准。这样为电子海图系统的设计提供了极大的灵活性,使得同一数据不需任何更改即可用于满足不同需求的显示,订制特定的显示功能。
电子海图通信态势软件,在电子海图背景上实时显示船用通信设备的通信覆盖区域,通信站点连通状态,通信质量等信息,为船用通信设备管理系统提供更加友好的态势监控界面,满足系统各种订制的通信态势显示需求。
S-57(IHO Transfer Standard for Digital Hydrographic Data)标准是一个水文数据传输与交换的标准,其数据模型不包含用于海图图形化显示的规则,只提供描述显示世界的方法,信息的显示独立于其存储模型。S-57标准最终目标是将对显示世界的描述转换成为可传输的文件,转换过程分为以下几个步骤:
图1 S57转换过程
在S57标准的“模型概述”部分中,真实世界的实体是可以感知的对象,标准将对象抽象为数据模型,现实世界中的对象非常复杂,数据模型是对高度复杂世界的简化和抽象。根据物标的特性,数据模型将物标定义为描述特征和空间特征的组合;物标被定义为一组可标识的信息,由特征物标和空间物标组合而成。下一步将特征物标与空间物标转换为对应的数据结构,一个物标(Object)对应一个记录(Record),物标(Object)中的属性(Attribute)对应于记录(Record)中的域(Field)。转换过程结束后,数据结构将以ISO8211标准格式存储在文件中,即将Record,Field等数据结构最终存储到二进制文件中。
数据模型中物标分为特征物标和空间物标,特征物标只包含对象的基本描述信息,不包括地理信息,空间物标包含对象的地理信息(如经纬度、高度等信息)。
数据结构中最基本的单位是子域(subField),一或多个子字段组成字段;一个或多个域(Field)组成记录(Record);一个或多个记录构成文件(File);一个交换集(Data Exchange Set)由一个或多个文件组成。记录分为五种:数据集描述(Data Set Descriptive)记录、目录(Catalogue)记录、数据字典(Data Dictionary)记录、特征(Feature)记录、空间(Spatial)记录。S-57数据结构实现上采用树形结构。不同记录和字段中的信息由专门的指针字段关联。RCNM和RICD子字段标识共同作为记录的标识。
S-57格式文件使用ISO/IEC 8211作为物理封装标准,ISO/IEC 8211是基于文件的数据交换格式,实现不依赖具体计算机系统的数据交换。ISO/IEC 8211是一个以文件为基础的交换格式,其基本结构是逻辑记录。
S-52标准[2]中电子海图的显示模式[3]的规定分为两大部分,一是电子海图表示库,包括色彩编码表、符号库(点、线、面)、符号化指令集、物标—符号查找表以及条件符号化过程;二是显示生成器,在S-52表示库的各项内容的基础上,把按S-57标准结构化编码[7]组织的数据以正确的形式显示。电子海图绘制算法,遍历S-57数据中的物标对象,提取物标属性,在检索表中根据物标属性查找相应的符号化绘制指令[8],该绘制指令从符号库中载入符号,从颜色表中获取对应的颜色,进行绘制[9]。
图2 S52显示标准模块图
S52标准主要由三个部分构成,第一部分对电子海图的改正问题做出了详细的规定,给出了海图改正的方法和流程;第二部分描述了ECDIS屏幕上电子海图的颜色及符号的使用细节;第三部分定义了ECDIS的相关术语。其中,第二部分的《颜色和符号规范说明》是该标准的重要部分,它确定了ECDIS表达SENC信息[10]的方法和意义。
此外,S-52标准还包括两个附件和三个附录[4],分别如下:
1) 附件A S-52与IMO ECDIS性能标准参考
2) 附件B IMO ECDIS性能指标
3) 附录1电子航海图更新指南
4) 附录2 ECDIS色彩与符号详细规定
5) 附录3 ECDIS技术相关术语集[5]
本文研制开发了电子海图通信态势软件系统[6],系统模块图如图3所示。
图3 系统模块图
主要分为地图控件模块、地图渲染模块、电子海图数据源、地图图层模块、S52符号模块、通信态势绘制模块等几个模块。
地图控件模块封装了地图控件的基本功能、如漫游、缩放、标注、距离测量、加载地图文件等功能。地图渲染模块进行海图的绘制工作,将解析完的海图物标数据结构,绘制到地图控件上。海图数据源模块将S57格式的海图文件解析为基于ORG格式的标准图层数据结构,以供地图渲染模块进行绘制操作。由于S57格式的海图数据是基于物标的文件格式,而ORG库中的地图图层是基于地理位置属性的,地图图层模块是将ORG库解析的S57图层数据结构ORGMapLayer转换为S57物标图层数据结构S57MapLayer。S52符号模块用于管理物标绘制时所需的样式信息。通信态势绘制模块用于在海图上绘制通信站点的连通状态,通信覆盖范围等信息。系统的UML类图如图4所示。
图4 系统类图
4.1地图控件模块
地图控件模块类MapCanvas封装了地图控件的基本功能,如漫游、缩放、标注等功能。
基本接口函数如下:
setExtent:设置地图范围,在加载完海图数据后,计算出整张海图所包括的区域面积,调用该接口设置地图控件显示的海图区域;
zoomIn:放大地图,当滚动鼠标时,进行地图放大操作;
zoomOut:缩小地图,当滚动鼠标时,进行地图缩小操作;
pan:地图漫游,拖动鼠标时,移动地图;
mapToScreen:地图坐标转屏幕坐标,在进行地图绘制时,将地理位置坐标转换为屏幕坐标,进行绘制;
screenToMap:屏幕坐标转地图坐标,在进行地图交互操作,如实时显示鼠标当前经纬度时,将鼠标屏幕坐标转换为地理位置坐标;
setViewPort:设置屏幕视图,屏幕视图以像素为单位。
4.2地图图层模块
电子海图系统将物标数据根据地理属性划分为不同的地图图层类S57MapLayer,S57地图数据是基于物标,图层信息是基于特征的,S57数据解析完成后生成的几何属性会加入到对应的图层中。
4.3电子海图数据源
电子海图数据源类S57DataSource定义解析S57海图文件,S52表示库文件的方法和数据结构,解析后的数据结构。地图数据模型采用分层模型结构,物标的显示与地图的放大尺寸存在一定关系,物标在不同的地图放大级别上显示效果不一样,数据源中的scaleItemGroups是根据物标显示阈值将相同显示阈值的物标进行归类;symbols用于保存S52解析后的样式名称与样式结构的映射关系,在绘制物标时,根据样式名称动态查找对应的样式结构进行绘制。
数据源类的基本接口函数如下:
parseDrawInstruction:解析动态绘制指令;
parseLookupLine:解析检索表行;
parseLookups:解析检索表,创建检索表样式ChartStyle;
parseS52Symbols:解析S52样式文件S52RAZDS.RLE,生成S52显示结构S52Symbol;
translateChartStyle:使用条件符号;
getLayerStyle:获取图层样式;
getComplexSymbol:拼接复杂符号,S52的符号绘制指令非常复杂,该函数是根据S52的绘制指令生成相应的图标文件,以便重复绘制,避免重复解析绘制指令的开销,提高绘制效率。S57海图数据的加载流程如表1所示。
表1 S57数据加载流程
地图图元项类MapCanvasItem定义地图图元的基本特性,包括画笔、画刷、颜色等信息,解析地图物标得到相应的样式信息,根据物标几何属性创建对应的地图图元,并将样式信息转换为绘制的笔画、填充、颜色等信息。海图图元分为以下几种:
1) 图片图元:MapCanvasImageItem
2) 线图元:MapCanvasLineItem
3) 多边形图元:MapCanvasPolygonItem
4) 多边线图元:MapCanvasPolylineItem
5) 文字图元:MapCanvasTextItem
4.4电子海图渲染模块
海图渲染类MapCanvasRenderer定义海图绘制方法和流程,自定义标识符的绘制方法,海图图片数据导出方法,是整个电子海图通信态势软件最核心的模块,其中海图绘制流程如下。
1)遍历图层S57MapLayer *layer;
2)遍历图层中的图元MapCanvasItem *canvasItem;
3)判断图元类型,如果为文字图元,进入4),如果为图片图元,进入5),如果为线型图元,进入6),如果为多边形图元,进入7);
4)调用renderTextItem进行文字图元绘制;
5)调用renderImageItem进行图片图元绘制;
6)调用renderLineItem进行线型图元绘制;
7)调用renderPolygonItem进行多边形图元绘制;
8)绘制自定义标识符canvasMarker,绘制通信态势标识符,经纬度标识符。
4.5S-52符号模块
S52符号表示文件S52RAZDS.RLE中定义了每个物标对应的S52绘图指令;条件符号化的指令将物标的绘制操作定义为简短的绘制指令,渲染模块在绘制时,动态解析该指令为基本绘制命令,转移到相应的基本绘制回调函数中绘制,该文件中大致包含如下几项:
1) Color-tables:记录的是S52标准下各种显示模式的基准色;
2) Lookups:记录的是各种类型S52标准的点线面绘制;
3) Line-styles:记录的是各种线型;
4) Patterns:记录的是各种类型图案的绘制;
5) Symbols:记录的是各种类型符号的绘制;
这几部分的关系是:Lookups提供总体绘制方法,在绘制方法中调用其它部分的定义实现最终的绘制。也就是说,一个obj对象的绘制,首先需要定位到它属于Lookups中的哪一类,再根据Lookups的记录查找线、图案、符号和颜色完成绘制和填充。
4.6通信态势模块
通信态势软件一般需要绘制通信站点标识,通信链路状态,通信区域范围等信息,在传统海图软件刷新界面性能较慢,而通信态势的变化频繁,要求软件必须迅速绘制通信状态,因此软件设计了地图标识符类MapCanvasMarker,用户可以自定义通信标识符,在海图界面不变化时,程序直接绘制缓存的海图图片,在图片上绘制地图标识符,这样绘制速度会得到极大提升。
MapCanvasMarker的定义如下:
class MapCanvasMarker
{
QList
QList
QList
QList
QList
QList
};
基本接口函数如下:
setAlpha:设置透明度;
setLineWidth:设置线宽度;
setPointSize:设置点符号大小;
setOutlineColor:设置轮廓颜色;
setFillColor:设置填充颜色;
屏幕标识符类MapScreenMarker区别于地图标识符,屏幕标识符是基于屏幕坐标,的标识符,例如经纬度的显示,比例尺、导航条等控件的绘制,都是基于屏幕坐标,用户以底图为背景,添加其它需要前置显示的内容,如雷达扫描图、战场态势、告警信息等。
MapScreenMarker定义:
class MapScreenMarker
{
QList
QList
QList
QList
QList
};
屏幕标识符类的基本接口函数与标识符类一致。
电子海图通信态势软件的实际效果图如图5。
图5 电子海图通信态势效果图
本文结合S-57,S-52标准,采用GDAL,OGR库读取标准的S57格式文件,自主开发了基于S52标准的海图渲染控件,不足之处在于,海图S52的符号化指令过于复杂,可读性差,不利于订制个性化的显示方案,后期考虑将S52的符号绘制指令XML格式化,便于修改。另外对于电子海图格式目前只支持S-57格式的数据,对基于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] 国际海道测量组织.电子海图及其应用系统国际规范和标准(S-57篇)[M].大连:大连海事大学出版社,1999:30-33.
[6] 国际海道测量组织.电子海图及其应用系统国际规范和标准(S-52篇)[M].大连:大连海事大学出版社,1999:30-33.
[7] 黄洁.基于ArcGIS组件的电子海图显示系统的研究与实现[D].武汉:武汉理工大学,2008.
[8] 李兴锋.基于S-57国际标准的电子海图显示与导航系统[D].西安:西安电子科技大学,2007.
[9] 唐经宇,刘东峰,孙粤辉,等.S-57电子海图文件基础处理库的设计实现[J].计算机工程与科学,2013(2):41-45.
[10] 董才华,秦臻.电子海图数据读取与显示技术[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日
尤方圆,男,硕士研究生,工程师,研究方向:数据链消息处理。
TP311
10.3969/j.issn.1672-9730.2016.08.031