发明名称 一种船舶轨迹实时简化方法
摘要 本发明披露了一种船舶轨迹的简化方法。船舶轨迹化简可认为是对简化后的船舶散列轨迹点进行线性近似,本方法认为与一条直线平行且与直线距离为设定值的平行线间所夹的点都可近似为同一直线,从而对轨迹进行近似,以达到轨迹化简的效果。方法使用参数变换的思想简化了计算点到直线距离的复杂度。首先根据公式对已有初始点计算初始直线角度,接下来计算之后点到方向直线的距离作为判断是否属于当前直线的依据,完成之后重复上述方法对后续点进行判定,进而对轨迹进行简化。船舶可以认为是移动的对象,因此本方法是一种可以扩展应用到其他领域的通用算法。
申请公布号 CN104794295A 申请公布日期 2015.07.22
申请号 CN201510210005.1 申请日期 2015.04.28
申请人 上海海事大学 发明人 许惠;杨智应
分类号 G06F17/50(2006.01)I 主分类号 G06F17/50(2006.01)I
代理机构 上海三和万国知识产权代理事务所(普通合伙) 31230 代理人 陈伟勇
主权项 一种船舶轨迹实时简化方法,包括如下步骤:步骤1,针对船舶感知到的位置信息序列O,将其转化为直角坐标系下的坐标P<sub>i</sub>(x<sub>i</sub>,y<sub>i</sub>),第一个点P<sub>0</sub>认定为非简化点,保存到非简化点集合S,传送到服务器保存到数据库;步骤2,计算初始直线在坐标系中的倾斜角θ:第二个点P<sub>2</sub>记为当前点P<sub>i</sub>,根据公式<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>&theta;</mi><mn>01</mn></msub><mo>=</mo><mi>arctan</mi><mfrac><mrow><msub><mi>x</mi><mn>1</mn></msub><mo>-</mo><msub><mi>x</mi><mn>0</mn></msub></mrow><mrow><msub><mi>y</mi><mn>1</mn></msub><mo>-</mo><msub><mi>y</mi><mn>0</mn></msub></mrow></mfrac></mrow>]]></math><img file="FDA0000707858480000011.GIF" wi="472" he="133" /></maths>计算直线<img file="FDA0000707858480000012.GIF" wi="87" he="92" />的角度参数θ<sub>01</sub>;步骤3,计算当前直线在坐标系中的倾斜角θ:当接下来的点P<sub>j</sub>到达时,根据公式<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msub><mi>&theta;</mi><mi>ij</mi></msub><mo>=</mo><mi>arctan</mi><mfrac><mrow><msub><mi>x</mi><mi>j</mi></msub><mo>-</mo><msub><mi>x</mi><mi>i</mi></msub></mrow><mrow><msub><mi>y</mi><mi>j</mi></msub><mo>-</mo><msub><mi>y</mi><mi>i</mi></msub></mrow></mfrac></mrow>]]></math><img file="FDA0000707858480000013.GIF" wi="487" he="150" /></maths>计算直线<img file="FDA0000707858480000014.GIF" wi="95" he="95" />的角度参数θ<sub>ij</sub>;步骤4,计算当前点到直线的距离d:根据公式θ=|θ<sub>ij</sub>‑θ<sub>i,j+1</sub>|计算两直线的夹角θ(小于π/2),并根据公式<maths num="0003" id="cmaths0003"><math><![CDATA[<mfenced open='{' close=''><mtable><mtr><mtd><mi>D</mi><mo>=</mo><mo>|</mo><mo>|</mo><mover><mrow><msub><mi>P</mi><mi>i</mi></msub><msub><mi>P</mi><mi>j</mi></msub></mrow><mo>&OverBar;</mo></mover><mo>|</mo><mo>|</mo></mtd></mtr><mtr><mtd><mi>d</mi><mo>=</mo><mi>D</mi><mo>&CenterDot;</mo><mi>sin</mi><mi>&theta;</mi></mtd></mtr></mtable></mfenced>]]></math><img file="FDA0000707858480000015.GIF" wi="258" he="194" /></maths>计算该点P<sub>j</sub>到直线<img file="FDA0000707858480000016.GIF" wi="89" he="93" />的距离d;步骤5,判断当前点是否在原来直线上:根据方法预设的距离阈值err,若<img file="FDA0000707858480000017.GIF" wi="82" he="66" /><img file="FDA0000707858480000018.GIF" wi="180" he="71" />则认为该点在原来的直线方向,否则,认为该点偏离原来直线;步骤6,更新数据库,并做相应处理:若点P<sub>j</sub>仍在原来方向之上,则为简化该点并进入步骤2;否则认为是非简化点,将其之前点P<sub>j‑1</sub>传入数据库中的简化集合S保存,然后记当前点P<sub>i</sub>=P<sub>j‑1</sub>;步骤7,跳转到步骤2重新进行后续计算直到定位结束,保存最后一个点到数据库。
地址 201306 上海市浦东新区临港新城海港大道1550号