1.引言

随着电子海图的广泛应用,基于电子海图的航线生成已成为一个研究热点。但当前的电子海图航线自动生成方法只考虑了在某一幅图内(一个数据集)的情况。然而,在实际航行中,特别是距离较长时需要用到多幅海图,而当前的航线自动生成方法缺少这方面的考虑。即使利用一幅比例尺足够小的海图可以进行远距离航线的生成,但是由于海图细节程度表达不够和投影变形等原因,容易造成航线在局部地区形成粗略表达。因此,针对跨多幅海图的远距离航行,探索不同比例尺的海图数据多尺度组织及表达,进行航线自动生成,具有现实意义。

本文将对较大区域的远距离航行、大数据量计算的情形,利用不同比例尺的海图数据,采用细节分层方法,实现不同海图尺度下的航线自动生成。

2电子海图航线的多尺度表达方法

2.1.电子海图的多尺度组织

细节层次(LevelofDetail,简称LOD)模型是指对同一个场景或场景中的物体,使用具有不同细节的描述方法,得到一组模型,供绘制时选择使用。在图形显示时,为了实现“越近看得越清、内容看得越多”的视觉效果,目前许多系统采用的是在数据库中独立地存贮不同比例尺的地图数据,即构建目标的一组详细程度不同的数据模型。

海图和地图的分幅不同,有各自的特点。地图是按照国际标准分幅,根据整个国土进行经、纬度等分,相邻比例尺地图之间完整连续,图幅之间不留任何空隙。而海图分幅要复杂得多,受测量条件、实用目的、海图比例尺、图幅包含的地理区域范围大小等多种条件的制约,形成了有重叠的不规则局部连续的分幅特点。

由于海图与地图分幅的差异性,带来多尺度表达的不同。地图多尺度表达可以利用系列比例尺的地理空间数据,设定“LOD”参数并建立其与地理空间数据比例尺一一对应的关系,从而根据不同情况下的“LOD”参数调用相应比例尺的地理空间数据。然而,由于海图只在某些特定区域存在系列比例尺的海图数据,如当沿岸航行时,可以根据多个比例尺等级的海图数据进行基于“LOD”技术的海图多尺度表达;但在其他海图比例尺不成系列的海区,根本达不到多尺度表达的效果。因此,需要先根据航线所处的海区确定比例尺跨度及“LOD”表达参数的个数(“LOD”模型的层数),然后为各“LOD”模型层选择相应比例尺L的海图数据,没有比例尺L数据的局部区域利用该区域与比例尺L最接近的比例尺L'的海图数据(不同比例尺海图的交叉调用)。

2.2.海图航线的多尺度生成的关键技术

1)不同尺度下的航线自动生成方法

1,可以根据各“LOD”模型层的海图数据,独立进行所跨图幅的无缝拼接,然后在整个区域里,利用拼接后的大图幅海图进行航线自动生成。此方法过程简单,但是需要将所有所跨图幅都拼接在一起,其中进行图幅拼接时需要将所有坐标值都进行坐标转换,将造成大量的无用计算,图幅拼接后,航线生成所涉及的数据量将非常大,生成的二叉树分支数目也会很大,这都将影响航线生成效率。

方法2,根据所确定的比例尺跨度,选择最小比例尺“LOD”模型层的海图数据,生成小比例尺海图航线,设置航行关键点,在其他大比例尺“LOD”模型层对应的海图中进行相邻关键点之间的航线自动生成,由局部最优之和构成整体最优,将航线连接在一起即可构成最终的优选航线(换算各航路点坐标即可)。该方法主要避免了航线穿越的碍航物过多所引起的“巨大航路二叉树”情况,进行局部区域计算将大大减小计算量,提高航线生成效率。如图1所示。

如果作为整体进行航线自动生成,需计算的碍航物为4个,生成的二叉树分支数目为9,航线数目为16。如果把图幅以L为分界线分成两个图幅,分别进行航线自动生成。左图幅中生成的二叉树分支数目为3,航线数目为4;右图幅中生成的二叉树分支数目为5,航线数目为4;所以在航线所穿越的碍航物很多的情况下,利用方法2能体现出效率上的优越性。

2)图幅拼接

两相邻关键点不在同一个图幅内,跨越多个图幅,需要进行图幅拼接,然后才能进行航线生成。图幅拼接的具体方法:在所跨图幅中选取西南图廓经、纬度最小的图幅作为基准图幅,将其他图幅的坐标反算成经纬度,再将经纬度坐标换算到基准图幅上,其中得进行平面基准的统一。

3)效率优化

相邻图幅进行拼接后,数据量急剧增加,将影响航线自动生成的效率,需要删除无关的水深及其他要素来提高效率。另外,如果航行关键点处于重叠图幅中,在进行图幅拼接时需要进行图幅的取舍,从而提高效率。针对重叠区域,可以利用多边形裁减的方法避免重复显示。

2.3.不同尺度下的航线自动生成关键步骤

1)把中国海区的Shape格式的海图数据转换成DNC自定义格式的高效表达数据,然后将海图存储在指定的文件夹中,用于多尺度航线生成过程中的海图收索、选取、计算等。为了便于LOD建立时搜索海图和提高搜索效率,根据比例尺将海图简单分类,分别存储在“700万”、“100万”、“50万”、“25万”、“15万”、“5万”文件夹中,其中“700万”文件夹存储海区总图(例如101、102);“100万”、“50万”、“25万”、“15万”文件夹中分别存储1:1000000、1:500000、1:250000、1:150000系列航海图;“5万”文件夹中存储港湾图。

2)自动逐一地搜索“所有”海图数据,根据海图数据的图廓信息判断其是否包含航行的始末点,得到满足要求的所有海图,然后进行比例尺的比较,把比例尺最大的海图作为第一层LOD的海图。如果出现多幅比例尺相同并且都包含始末点的海图的情况,即出现始末点在海图重叠图幅中的情况,可以将其中任意一幅海图用作第一层LOD的海图,因为重叠图幅中海图元素相同(比例尺相同),对构建第一层LOD没有影响,对以后的各层LOD构建也没有任何影响,只是所选取海图不同。此情况下,本文按照海图在文件夹中存储顺序选取最靠前的海图。

3)LOD层数及每层LOD比例尺的确定:根据1),电子海图航线LOD的层数最多为6,最少为1。对于某次航行,航线LOD的层数是根据第一层LOD的海图属于哪类系列比例尺海图得出的,而且LOD的层数随第一层LOD海图比例尺增加而减少。假设分类系列按照顺序分别分配序号为1-6,则层数。例如:第一层LOD海图为“12000.Dnc”,其比例尺为1:75000,根据⑴中的分类方法,应该将其归类于“50万”系列,所以序号为3,进而得到LOD的层数为4。每个LOD层对应的比例尺也是根据第一层LOD海图所得:按照序号的升序排列分别匹配系列比例尺。对于上例的情况,第1-4层LOD应分别匹配“50万”、“25万”、“15万”、“5万”的系列比例尺。

4)建立各LOD层及各层航线:首先定义第一层LOD中航线的各航路点为航行关键点,其代表航行的总体趋势,在接下来讨论的大比例尺海图上应重点考虑。根据2)得到的第一层LOD海图,在此海图上,利用最短距离航线自动生成方法,得到最短距离航线,同时保存海图和航线,至此,第一个LOD层建立完成;如果LOD层数为1,则LOD层建立完成,否则利用航行关键点,根据5)得到其余各LOD层,并将每层航线的航路点分别作为下一层的航行关键点,最后保存海图和航线。

5)根据本LOD层比例尺,找到相应的文件夹,从该海图文件夹中搜索海图,并判断由4)所得的关键点是否包含在某一海图中(即判断本系列海图在关键点处是否有数据),如果某关键点被包含在海图中,设置此关键点的标识为1,否则为0。有点不包含在文件夹中任何海图中,认为本LOD层缺少海图数据,需要进行海图交叉调用。然后,根据关键点及其数目进行分段最优航线生成,按照顺序每两相邻的关键点之间都以当前得到的海图要素为基础,进行最短距离航线自动生成。

6)显示LOD层:将局部细化的航线连接在一起构成最终的航线。需要海图交叉调用的LOD层,因为比例尺不成系列而不能进行拼接显示,本文以第一层LOD海图图幅信息为基准,将航线和本层的海图都按照基准进行转换,进行空白海图显示航线,并通过点击航段显示所属的海图。对于不需要进行海图交叉调用的LOD层,直接通过电子海图跨图幅拼接漫游显示。

3.实验及分析图

2Dnc海图数据的选择本文在黄海范围内进行了相关实验,选取的航行始末点分别为:S(13.077N,74.442E),D(13.760N,87.322E)(单位为度)。

①选择Dnc海图(如图2所示);②自动搜索海图并确定第一层LOD海图:程序自动搜索“DNC数据”中的所有海图数据,计算得到包含始末点、的所有海图,比较其比例尺,得到比例尺最大的海图“12000.Dnc”,比例尺为1:500000;③得到关键点;④确定其他所有层LOD;⑤显示结果。

该实验共建立了4个LOD层,每层的比例尺分别为:1:500000、1:250000、1:150000、1:50000。图3、图4、图5、图6分别表示4个LOD层的海图及航线。

图3中使用1:500000系列航海图中的“12000”海图;图4中使用1:250000系列航海图中的“12100”和“12300”海图;图5中使用1:150000系列航海图中的“12110”、“12170”和“12310”海图;因为在生成第4层LOD(即港湾图系列表达层)时,找不到包含航路关键点的海图数据,根据上文将利用第3层LOD中的海图进行航线生成,这样LOD第4层显示的只有航线,但是可以点击航线某部分显示其所属的海图。

4.结束语

针对现有电子海图航线自动生成方法缺少对多幅海图情况的考虑,本文基于不同比例尺海图数据,利用LOD模型的思想对电子海图航线多尺度表达展开了研究,得出如下结论:

1)在电子海图多图幅无缝拼接的基础上,实现长距离航线的多尺度生成。

2)能够根据某航行的始末点经纬度,生成各LOD模型层,提供用户不同比例尺的海图航线,以满足不同的航行需求。

当然,本文还是一种探索性研究,选择的实例有限,对于海图的高效拼接以及大计算量航线生成中相关技术问题,还有待于进一步研究。                                                                                               参考文章:电子海图、AIS、雷达

电子海图的航线多尺度生成方法相关推荐

  1. matlab读取电子海图,基于dem数据叠加的航海雷达回波模拟方法

    基于dem数据叠加的航海雷达回波模拟方法 [技术领域] [0001] 本发明涉及航海雷达的回波模拟系统,具体是一种基于DEM(Digital Elevation Model,数字高程模型)数据叠加的航 ...

  2. 如何将电子海图的航线导到gps上_电子海图(ECDIS)使用总结

    电子海图使用总结 作为SOLAS公约强制要求的新型航海设备,ECDIS 在船舶导航.定位.避险.信息查询等多方面都具有传统导航设备无法比拟的优越性,将极大减轻驾驶员负担.以下是笔者总结出关于NAVTE ...

  3. 基于矢量瓦片技术的Web电子海图优化方法

    范梦琪, 宋伟东, 郑人维, 何欢. 2021. 基于矢量瓦片技术的Web电子海图优化方法[J]. 海洋科学, 45(2): 68-75. FAN Meng-qi, SONG Wei-dong, ZH ...

  4. 从零开始开发标准的s57电子海图第一篇--电子海图概述(共100篇)

    电子海图( Electronic Chart,EC)和电子海图显示与信息系统( ElectronicChart Display and System, ECDIS)及电子海图系统( Electroni ...

  5. 如何将电子海图的航线导到gps上_基于GPS和电子海图的船舶导航系统设计与实现...

    系统结构1 硬件组成1.1 导航系统的硬件组成如图所示.按其用途可分成两1 类:一类是船用硬件:另一类是陆用硬件.每套船用硬件包括一台笔记本电脑和一台信号处理及发送装置.信号处理及发送装置负责接收信号 ...

  6. 一种基于机载AI模块的多旋翼无人机的电力巡检报告生成方法

    一种基于机载AI模块的多旋翼无人机的电力巡检报告生成方法 1 摘要 无人机在输电线路巡检通常采用无人机进行巡检的方式进行,通过无人机按照一定的航线飞行,在预设的点位拍摄获取电力器件的照片然后上传到服务 ...

  7. 电子海图基本概念介绍

    电子海图基本概念   电子海图是一个总的概念名词,可分为两个部分,一个部分是电子海图数据,另一部分是各种基于电子海图数据的应用系统.电子海图这个总概念是对所有有关电子海图的生产或应用.软件或硬件的技术 ...

  8. 利用 QGIS 载入和处理 S-57 电子海图数据

    电子海图的加载目前还比较局限,除了个人或者机构单独开发的电子海图引擎外,只能依赖现有 GIS 平台折衷的解决方案. 如 ArcGIS 的 S57 Viewer 或者是利用 Globalmapper 进 ...

  9. 【目标检测系列】CNN中的目标多尺度处理方法

    关注上方"深度学习技术前沿",选择"星标公众号", 技术干货,第一时间送达! [导读]本篇博文我们一起来讨论总结一下目标检测任务中用来处理目标多尺度的一些算法. ...

  10. 电子海图中点在多边形内的判定

    1          算法背景        在电子海图系统中,经常需要用到判断一个点(可能是一个船位,或者其它点状物标)是否在某个多边形区域内(矩形或圆也可看作特殊的多边形),比如某个警戒区,作业区 ...

最新文章

  1. oracle 查看连接数语句,Oracle数据库中查询连接数的实用sql语句
  2. RSA 密钥 明文 密文 长度介绍
  3. asp.net pdf如何转换成tif_如何将pdf转换成高清图片?你需要这个软件!|电脑|pdf|转换器...
  4. COGS 930. [河南省队2012] 找第k小的数 主席树
  5. mysql 中有什么命令_常用mysql命令大全
  6. 【英语学习】【Level 08】U04 What I love L3 A good buy
  7. java 中文 转义_java html中文汉字 反转义
  8. [PYTHON]一个简单的单元測试框架
  9. Vue项目实战——实现GitHub搜索案例(学以致用,两小时带你巩固和强化Vue知识点)
  10. C++独立游戏存档模块设计
  11. B站热榜 RSS 订阅 - 基于 RSSHub
  12. 18个最受欢迎的低代码开发平台【开源】
  13. u盘如何安装xp和linux,怎样从U盘安装Windows XP?
  14. 视频直播时连麦功能使用说明
  15. An error has occured.See the log file
  16. Selenium用户指南 - 第一章 Selenium 2.0 文档修订注解
  17. 利用python如何抓取微博评论?
  18. 艺赛旗(RPA)Numpy 入门学习
  19. 3月18日面试题复盘
  20. 使用python进行web抓取

热门文章

  1. ubuntu 解析控制 PS4手柄
  2. Taro框架中开发H5使用微信分享
  3. H5文章分享给好友或朋友圈后如何生成自定义分享内容
  4. Android studio 制作一个app实现简单功能
  5. Sketch for Mac汉化破解教程含汉化包
  6. 高德行政区划地图,区域划线,行政区划浏览
  7. Nginx基本配置参数说明与文档
  8. 高斯函数表达式C语言,C语言计算高斯核函数
  9. 强化学习(RL)QLearning算法详解
  10. python教孩子学编程_学编程要从娃娃抓起——教孩子学Python