基于志愿观测船数据的舰船轨迹线生成方法

申请号 CN201510121348.0 申请日 2015-03-19 公开(公告)号 CN104680850A 公开(公告)日 2015-06-03
申请人 南京大学; 发明人 刘永学; 王加胜; 李飞雪; 孙超; 蒋洁; 杨育浩; 张思宇; 段曰蔚; 周旻曦;
摘要 本 发明 涉及一种基于志愿观测船数据的舰船轨迹线生成方法,实现了大量离散点的舰船轨迹线生成方法。其步骤为:VOS数据读取、VOS舰船轨迹点航次识别、VOS舰船轨迹点数据清理、VOS舰船轨迹线连接、基于绕障路径设计的轨迹线连接校正、VOS舰船轨迹线生成。本发明解决了舰船轨迹线或航线鲜有提取的问题,提出了舰船轨迹线生成方法。应用本发明能够将大量的离散VOS舰船点数据生成连续的舰船轨迹线,从而有助于掌握区域海上交通分布状况,监控 船舶 行为,保障海上交通安全,可为海洋管理部 门 提供决策参考,对维护人们生命财产安全、保护海洋环境和保障中国国家核心战略利益具有重要意义。
权利要求

1. 基于志愿观测船数据的舰船轨迹线生成方法,其特征在于,包括如下步骤:
步骤1、VOS数据读取——获取指定区域和指定时间区段内的志愿观测船数据,抽取时间、经纬度、船名作为待分析对象,生成关于舰船轨迹点的图层;
步骤2、舰船轨迹点航次识别——同时满足以下三个条件的舰船轨迹点归为同一航次;
条件1:舰船轨迹点的船名相同;
条件2:相邻舰船轨迹点的时间间隔小于Tp,Tp的取值范围为[8h,16h] ;
条件3:以时间先后为序,连续三个舰船轨迹点的连线夹大于Θ,Θ的取值范围为[70°,110°];
步骤3、舰船轨迹点数据清理——删去同一航次内的重复舰船轨迹点和无效的舰船轨迹点,所述重复的轨迹点是指同一航次内经纬度相同的轨迹点,所述无效的舰船轨迹点是指同一航次内有效的舰船轨迹点数量少于N的所有舰船轨迹点,N的取值范围为[4,6];
步骤4、舰船轨迹线连接——以时间为序,逐次连接同一航次内的所有舰船轨迹点,获得该航次的舰船轨迹线;
步骤5、轨迹线连接校正——如果相邻舰船轨迹点之间的连线与障碍物相交,所述障碍物是指陆地或岛屿,则将这两个相邻舰船轨迹点之间绕过障碍物的最短路径作为校正后的舰船轨迹线。
2. 根据权利要求1所述的基于志愿观测船数据的舰船轨迹线生成方法,其特征在于:
步骤2中,舰船轨迹点航次识别方法如下:
a1、以船名进行舰船轨迹点排序,相同船名的舰船轨迹点再以时间进行排序;
a2、逐次对舰船轨迹点进行判断,直到所有舰船轨迹点判断完毕;若当前点为当前航次的第一点,则直接从下一个舰船轨迹点开始作如下判断;
a3、若当前舰船轨迹点的船名与上一个舰船轨迹点船名不相同或者当前舰船轨迹点的时间与上一个舰船轨迹点的时间之差大于Tp,则判定当前舰船轨迹点为下一个航次的起点,并转至步骤a5,否则转至步骤a4;
a4、若舰船在当前舰船轨迹点的转角大于Θ,则将当前舰船轨迹点归入当前航线,并插入与当前舰船轨迹点相同的数据作为下一航次的起始点,并转至步骤a5;
a5、按舰船轨迹点的顺序做下一航次的判断,转至步骤a3。
3. 根据权利要求1所述的基于志愿观测船数据的舰船轨迹线生成方法,其特征在于:
步骤3中对于同一航次内的舰船轨迹点数据清理方法如下:
b1、如果航次内舰船轨迹点数量小于N,则直接将该航次删去,否则从第二个舰船轨迹点开始按序进行如下判断;
b2、如果当前舰船轨迹点坐标与上一舰船轨迹点坐标相同,将当前舰船轨迹点作为重复舰船轨迹点进行删除,否则保留当前舰船轨迹点;
b3、按照步骤b2对航次内的所有重复舰船轨迹点进行删除;
b4、如果航次内所有被保留的舰船轨迹点数量小于N,则将航次内所有的舰船轨迹点作为无效的舰船轨迹点删去。
4. 根据权利要求1所述的基于志愿观测船数据的舰船轨迹线生成方法,其特征在于: 步骤5中,获取相邻舰船轨迹点之间绕过障碍物的最短路径的方法是:分别以两个舰船轨迹点向障碍物边缘作切线;如果切点的连线与障碍物不相交,则最短路径为绕过该障碍物的舰船轨迹点、切点之间的连接线;否则,则将这两个切点视为舰船轨迹点重新进行航线规划,不停迭代,直到切点之间的连线不与障碍物相交为止。
5. 根据权利要求1所述的基于志愿观测船数据的舰船轨迹线生成方法,其特征在于: Tp的取值为12h,Θ的取值为90°,N的取值为5。

说明书全文

基于志愿观测船数据的舰船轨迹线生成方法

技术领域

[0001] 本发明涉及一种离散点汇聚成特征线方法,特别是涉及一种基于VOS大量离散点数据的舰船轨迹线生成方法。

背景技术

[0002] 舰船轨迹线是船舶在两个或者多个港口之间从事货物、旅客运输或其他任务的具体线路。舰船轨迹线的获取对掌握区域海上交通分布状况,监控船舶行为,保障海上交通安全等方面都有着重要的意义。
[0003] 要获取舰船的轨迹线,首先要对舰船进行长时期大范围的监测以获取其相关的信息。目前舰船信息获取方法主要分为两种,基于遥感影像的舰船提取以及船舶信息的自动报告。通过遥感影像获取舰船信息主要利用SAR影像采用恒虚警率(CFAR)、多极化变化检测、小波变换、视觉显著度模型等方法对舰船目标提取。然而,这类方法仅能获取成像时刻舰船的位置信息,无法甄别船舶的属性信息,且由于影像覆盖范围有限,在时间上和空间上都难以形成连续的数据集。随着通信技术的发展,船舶上的通信设备可以将实时的位置、速度和其他信息传输到卫星或港口,形成庞大的船舶时空数据集。因此,应用通信设备获取的船舶信息在舰船轨迹线生成方面更为有效。世界气象组织(World Meteorological Organization,WMO)的志愿观测船(Volunteer Observation Ship,VOS)计划是较为常见的基于通信设备获取舰船信息的一种方式。参与VOS 计划的船舶绝大多数是往返于国际海运航道上的商船,目前数量已达6000 余艘,VOS 志愿观测船在提供气象、海洋观测结果的同时也提供了重要的时间、位置信息。完备的VOS 志愿观测船时空数据库为我们获取区域海上真实准确的航线提供了契机。
[0004] 然而,目前国内外关于航线设计的研究较多,对这种基于大量离散船舶数据点生成特征轨迹线的相关研究很少。同时,如何识别轨迹点所属航次,如何去除无效舰船点,如何对错误舰船轨迹线予以校正,都是在航道轨迹线生成过程中将面临的技术难点。

发明内容

[0005] 本发明要解决的技术问题是:克服现有技术的上述缺陷,提出一种基于志愿观测船数据的舰船轨迹线生成方法,其将大量的离散舰船点数据生成连续的舰船轨迹线,解决了舰船轨迹线或航迹线鲜有提取的问题,攻克了轨迹点所属航次识别、冗余无效舰船点去除、错误轨迹线校正等技术难点。
[0006] 为了解决上述技术问题,本发明提出的技术方案是:基于志愿观测船数据的舰船轨迹线生成方法,其特征在于,包括如下步骤:步骤1、VOS数据读取——获取指定区域和指定时间区段内的志愿观测船数据,抽取时间、经纬度、船名作为待分析对象,生成关于舰船轨迹点的图层;
步骤2、舰船轨迹点航次识别——同时满足以下三个条件的舰船轨迹点归为同一航次;
条件1:舰船轨迹点的船名相同;
条件2:相邻舰船轨迹点的时间间隔小于Tp,Tp的取值范围为[8h,16h] ;
条件3:以时间先后为序,连续三个舰船轨迹点的连线夹大于Θ,Θ的取值范围为[70°,110°];
步骤3、舰船轨迹点数据清理——删去同一航次内的重复舰船轨迹点和无效的舰船轨迹点,所述重复的轨迹点是指同一航次内经纬度相同的轨迹点,所述无效的舰船轨迹点是指同一航次内有效的舰船轨迹点数量少于N的所有舰船轨迹点,N的取值范围为[4,6];
步骤4、舰船轨迹线连接——以时间为序,逐次连接同一航次内的所有舰船轨迹点,获得该航次的舰船轨迹线;
步骤5、轨迹线连接校正——如果相邻舰船轨迹点之间的连线与障碍物相交,所述障碍物是指陆地或岛屿,则将这两个相邻舰船轨迹点之间绕过障碍物的最短路径作为校正后的舰船轨迹线。
[0007] 本发明还具有如下进一步的特征:1、步骤2中,舰船轨迹点航次识别方法如下:
a1、以船名进行舰船轨迹点排序,相同船名的舰船轨迹点再以时间进行排序;
a2、逐次对舰船轨迹点进行判断,直到所有舰船轨迹点判断完毕;若当前点为当前航次的第一点,则直接从下一个舰船轨迹点开始作如下判断;
a3、若当前舰船轨迹点的船名与上一个舰船轨迹点船名不相同或者当前舰船轨迹点的时间与上一个舰船轨迹点的时间之差大于Tp,则判定当前舰船轨迹点为下一个航次的起点,并转至步骤a5,否则转至步骤a4;
a4、若舰船在当前舰船轨迹点的转角大于Θ,则将当前舰船轨迹点归入当前航线,并插入与当前舰船轨迹点相同的数据作为下一航次的起始点,并转至步骤a5;
a5、按舰船轨迹点的顺序做下一航次的判断,转至步骤a3。
[0008] 2、步骤3中对于同一航次内的舰船轨迹点数据清理方法如下:b1、如果航次内舰船轨迹点数量小于N,则直接将该航次删去,否则从第二个舰船轨迹点开始按序进行如下判断;
b2、如果当前舰船轨迹点坐标与上一舰船轨迹点坐标相同,将当前舰船轨迹点作为重复舰船轨迹点进行删除,否则保留当前舰船轨迹点;
b3、按照步骤b2对航次内的所有重复舰船轨迹点进行删除;
b4、如果航次内所有被保留的舰船轨迹点数量小于N,则将航次内所有的舰船轨迹点作为无效的舰船轨迹点删去。
[0009] 3、 步骤5中,获取相邻舰船轨迹点之间绕过障碍物的最短路径的方法是:分别以两个舰船轨迹点向障碍物边缘作切线;如果切点的连线与障碍物不相交,则最短路径为绕过该障碍物的舰船轨迹点、切点之间的连接线;否则,则将这两个切点视为舰船轨迹点重新进行航线规划,不停迭代,直到切点之间的连线不与障碍物相交为止。
[0010] 4、本发明舰船轨迹线生成方法中,Tp的取值为12h,Θ的取值为90°,N的取值为5。
[0011] 本发明提出了一种基于VOS数据生成舰船轨迹线的方法,实现了大量离散点的舰船轨迹线生成方法。具体有益效果如下:第一,提出了VOS舰船轨迹点航次识别的方法。通过时间和角度阈值来快速、准确的判断不同的VOS舰船数据点是否属于同一航次。本发明通过航次的甄别赋予了离散点的航次属性,方便、快捷地对海量数据点进行分类。
[0012] 第二,提出了VOS舰船轨迹点数据清理的方法。本发明通过建立VOS舰船轨迹点数据清理的简易规则,有效避免了冗余点造成的复杂运算以及无效点造成的轨迹线生成错误。
[0013] 第三,提出了基于绕障路径设计的轨迹线连接校正方法。由于轨迹线中遇到的多边形多为大陆,岛屿较少,导致障碍多边形很大,直接现有的线搜索算法搜索路径计算量将很大。本发明对线搜索算法进行优化,提出了改进的绕障碍算法,改进后的算法在计算改正路径之前选择面积较小的多边形的节点为待搜索节点,这样搜索节点数可减少50%以上,大大提高了算法的效率。在VOS舰船数据量非常庞大的情况下优势将更加明显,有利于快速、高效的对初步形成的轨迹线进行改正,生成最终的轨迹线。
[0014] 综上,本发明提出了基于VOS舰船数据的舰船轨迹线生成方法,解决了舰船轨迹线鲜有提取的问题,克服了轨迹点所属航次识别、冗余无效舰船点去除、错误轨迹线校正以及最终的轨迹线生成等诸多技术难点。应用本发明能够将大量的离散的VOS舰船点数据生成连续的舰船轨迹线,从而有助于掌握区域海上交通分布状况,监控船舶行为,保障海上交通安全,为海洋管理部提供决策参考。附图说明
[0015] 下面结合附图对本发明作进一步的说明。
[0016] 图1是2003年至2012年南海VOS舰船数据。
[0017] 图2是轨迹线识别算法流程图
[0018] 图3是轨迹数据清理算法流程图。
[0019] 图4是舰船轨迹校正示意图。
[0020] 图5是轨迹线校正算法流程图。
[0021] 图6是2003年至2012 年南海VOS舰船轨迹线分布。

具体实施方式

[0022] 下面以南海海域为例,根据附图详细阐述本发明,使本发明的技术路线和操作步骤更加清晰。
[0023] 本实施例选择的实验区域为南海(经纬度范围:3°S-23°N,99°E-124°E),包括泰国湾和六甲海峡以及印度尼西亚的部分海域,是国际上对南海的泛指区域。实验数据采用NOAA国家气候数据中心网站提供的2003-2012年的VOSCLIM 数据,该数据提供对舰船位置信息的实时更新,另外还可通过安装在舰船上的装置实现对气压、气温、海面温度的观测。
[0024] 本发明基于志愿观测船数据的舰船轨迹线生成方法,其特征在于,包括如下步骤:第一步、步骤1、VOS数据读取——获取指定区域和指定时间区段内的志愿观测船数据,抽取时间、经纬度、船名作为待分析对象,录入Excel表格后导入到ArcGIS 中生成舰船轨迹点图层。本例中共选择了2AKI4等263艘VOS志愿观测船,2003年至2012年通过南海区域的31550个舰船离散点数据作为实验数据,舰船轨迹点图层见图1,图中每个三角形代表一个舰船轨迹点。
[0025] 步骤2、舰船轨迹点航次识别——同时满足以下三个条件的舰船轨迹点归为同一航次:1)舰船轨迹点的船名相同; 2)相邻舰船轨迹点的时间间隔小于12h; 3)以时间先后为序,连续三个舰船轨迹点的连线夹角大于90°。
[0026] 本步骤中,舰船轨迹点航次识别方法如下:a1、以船名进行舰船轨迹点排序,相同船名的舰船轨迹点再以时间进行排序;
a2、逐次对舰船轨迹点进行判断,直到所有舰船轨迹点判断完毕;若当前点为当前航次的第一点,则直接从下一个舰船轨迹点开始作如下判断;
a3、若当前舰船轨迹点的船名与上一个舰船轨迹点船名不相同或者当前舰船轨迹点的时间与上一个舰船轨迹点的时间之差大于Tp,则判定当前舰船轨迹点为下一个航次的起点,并转至步骤a5,否则转至步骤a4;
a4、若舰船在当前舰船轨迹点的转角大于Θ,则将当前舰船轨迹点归入当前航线,并插入与当前舰船轨迹点相同的数据作为下一航次的起始点,并转至步骤a5;
a5、按舰船轨迹点的顺序做下一航次的判断,转至步骤a3。
[0027] 如图2所示,为上述方法的一种实现流程。图中,i表示舰船轨迹点编号,id为航次的变量,Ni表示第i个舰船轨迹点的船名,Ni-1则表示第i-1个舰船轨迹点的船名,Ti表示第i个舰船轨迹点的时间,Ti-1表示第i-1个舰船轨迹点的时间, θi表示第i个舰船轨迹点处的转角,IDi表示第i个舰船轨迹点的航次,n表示舰船轨迹点总数。从该流程图可知,从第二个点开始执行循环判断,如果船名不相同或者轨迹点相差时间超过12h,则当前轨迹点归为下一条航次,并开始判断下一个轨迹点;否则再判断转角(可通过余弦定理求解)是否大于阈值(90°),如果转角大于阈值,首先将当前点归入当前航次,并且插入一个相同的轨迹点作为下一航次的起始点,然后再做下一个轨迹点的判断。就这样不断循环直到从第二个点开始所有轨迹点判断完毕。经过这样的循环处理后,所有的轨迹点被分成1764航次。
[0028] 步骤3、舰船轨迹点数据清理——删去同一航次内的重复舰船轨迹点和无效的舰船轨迹点,所述重复的轨迹点是指同一航次内经纬度相同的轨迹点,所述无效的舰船轨迹点是指同一航次内有效的舰船轨迹点数量少于N=5的所有舰船轨迹点。
[0029] 本步骤中,对于同一航次内的舰船轨迹点数据清理方法如下:b1、如果航次内舰船轨迹点数量小于N,则直接将该航次删去,否则从第二个舰船轨迹点开始按序进行如下判断;
b2、如果当前舰船轨迹点坐标与上一舰船轨迹点坐标相同,将当前舰船轨迹点作为重复舰船轨迹点进行删除,否则保留当前舰船轨迹点;
b3、按照步骤b2对航次内的所有重复舰船轨迹点进行删除;
b4、如果航次内所有被保留的舰船轨迹点数量小于N,则将航次内所有的舰船轨迹点作为无效的舰船轨迹点删去。
[0030] 如图3所示,为上述方法的一种实现流程。图中i表示舰船轨迹点编号,np表示不重复的(有效的)舰船轨迹点数量,n为航次内舰船轨迹点总数,xi、yi分别表示第i个舰船轨迹点的x、y坐标,,xi-1、yi-1则分别表示第i-1个舰船轨迹点的x、y坐标, Pi表示第i个轨迹点,P为航次的舰船轨迹点集合。从图中可以看出,判断从第二个舰船轨迹点开始,如果还没到最后的舰船轨迹点,则判断当前点的坐标与上一个点的坐标是否相同,如果相同,则删除当前点,否则保留当前点,并且开始做下一个点的判断。当所有点都判断完毕之后,将最后保留的舰船点数量和N=5进行比较,如果小于5,那么该航次,直接删除航次(删除航次内的所有点)。
[0031] 经历无效航次过滤后,还剩余1582个航次。
[0032] 步骤4、舰船轨迹线连接——以时间为序,逐次连接同一航次内的所有舰船轨迹点,获得该航次的舰船轨迹线。为了降低轨迹线生成的复杂性,当相邻轨迹点位于同一直线上时,只选择首尾两点,忽略中间的轨迹点。然而,当舰船航行经过岛屿、半岛、海峡等附近时,由于前后两次报告存在时间间隔,使得直接连接两点会出现轨迹线与陆地或岛屿相交的现象。如南海海域的马六甲海峡、越南的金瓯角。显然,这种情况下生成的轨迹线是不正确的,需要基于绕障路径设计的轨迹线连接校正方法进行校正。
[0033] 步骤5、轨迹线连接校正——如果相邻舰船轨迹点之间的连线与障碍物相交,所述障碍物是指陆地或岛屿,则将这两个相邻舰船轨迹点之间绕过障碍物的最短路径作为校正后的舰船轨迹线。
[0034] 本发明利用Python语言以及ArcGIS扩展开发包ArcPy编写程序,构建起点S、终点D、障碍物Om的结点组成的一个图,在图中寻找最短路径,该最短路径即为校正后的轨迹线获取相邻舰船轨迹点之间绕过障碍物的最短路径的方法是:分别以两个舰船轨迹点向障碍物边缘作切线;如果切点的连线与障碍物不相交,则最短路径为绕过该障碍物的舰船轨迹点、切点之间的连接线;否则,则将这两个切点视为舰船轨迹点重新进行航线规划,不停迭代,直到切点之间的连线不与障碍物相交为止。
[0035] 本实施例中,在计算改正路径之前选择面积较小的多边形的节点为待搜索节点,这样搜索节点数可减少50%以上,大大提高了算法的效率。如图4所示,S、D分别为起始点和终点,障碍多边形为O,线段SD交多边形O于A、B两点,将多边形切分为两个多边形,选择周长最短的多变形Om 为新的障碍多边形。设多边形Om由A到B的结点集为P={B,P1,P2,P3,…,Pn,A},绕障碍路径点集为Q。
[0036] 如图5所示,算法的具体步骤如下:连接起始点S与多边形 Om节点,判断直线 SPi与多边形 Om的关系,找到满足多边形 Om的直线SPi相切的点 Pi(i=1,2,...,n);
连接目标点D与 Pi,得到线段DPi,如果线段DPi与多边形 Om没有其它交点,则轨迹 SD的校正路径为SPiD;
如果不满足条件,判断多边形的下一点,直到找到满足要求的点Pj为止,将多边形Om上节点Pi到 Pj间的节点连接得到折线段 PiPi+1…Pj,轨迹SD的校正路径为 SPiPi+1…PjD。
[0037] 经过上述5个步骤后,南海区域总共生成1582条舰船轨迹线,利用轨迹线制作南海舰船轨迹线分布专题地图如图6所示。从图中可以看出,基于VOS数据的舰船轨迹线生成方法可以从大量的离散的VOS舰船点数据中提取舰船轨迹线。从生成的轨迹线分布可以看出轨迹线呈现出明显的簇状特征,新加坡是众多轨迹线的目的地。
[0038] 除上述实施例外,本发明还可以有其他实施方式。凡采用等同替换或等效变换形成的技术方案,均落在本发明要求的保护范围。
QQ群二维码
意见反馈