概述
AIS数据解析
- AIS电文种类
- 暗码数据格式
- AIS数据部分字符编码
- 比特值与ASCII码的对照表
- 动态信息的格式表
- ROT参数说明
- 静态信息的格式表
- 船舶和货物类型
- 报告位置参考点和船舶尺寸
- B类AIS信息的解码过程
- 举例
- VDM消息类型补充
AIS电文种类
VDM:本船接收到其他船舶的信息
VDO:本船向外播发的广播信息
明码:以“$”开头,明码报文内容可以直接读取
暗码:以“!”开头,报文内容需要通过字符转换和格式定义才能读出。
暗码数据格式
!XXYYY,A,B,C,N,Data,V*HH<CR><LF>
- XX:使用的设备,“AI”是船载标志,“BS”是基站标志。
- YYY:语句类型,VDM表示封装的是他船信息,VDO表示封装的是本船信息。
- A:电文的长度可能很长,需要几句语句。此处规定了发送本条信息需要的报文条数(1-9)。
- B:本条报文的序列数(1-9),此字段不能为空。
- C:连续报文的识别码(0-9),给每一份新的多语句电文按序列指配编号,每次加1,计数到9后返回0,对要求多语句的电文,电文的每一句包含同样序列的电文号,它用于识别包含同一电文各个部分的语句。这样,使其他语句可以与包含该同一电文的各语句相互穿插。在电文可以使用一个语句时,该字段为空。
- N:AIS的信道指示为“A”或“B”,报文是从信道“A”还是“B”接收。本信道指示与接收该数据包时与AIS的运行状态有关。当不提供频道识别时,本数据为空。信道“A”或“B”的VHF信道号,可用AIS的一个ACA语句查询得到。
- Data:封装的数据部分,封装的最大长度的限制是语句的总字符数不超过82.对于用多语句传送的电文,本字段支持最多62个有效字符。而对于单语句传送的电文,最多为63个有效字符。
- V:填充位数(比特数),二进制比特数必须是6的倍数,如果不是,要加入1-5个填充比特。本参数指示加到最后一个6比特编码字符上的比特数。未加入填充比特时,本数值为0,本字段不可以为空。(即填充字符,由于每条消息语句总位数必须是6的整数倍,否则需填充0-5个字符)
- HH:检验字段。AIS数据采用8位CRC,取其8位CRC校验码的高四位,并转化为16进制数,构成AIS校验码的第一位,取其8位CRC校验码的低四位,转化为16进制数后构成校验码的第二位。当AIS接收设备收到一条AIS电文后,按照8位CRC对其数据部分进行重新校验,生成的校验值如果与电文自带的校验值相同,说明电文数据在传输过程中没有出错。如果不同,则说明数据在传输过程中出错了。
- < CR > < LF >:语句结束标志。
AIS数据部分字符编码
AIS字符的编码采用的是6bit二进制串,因为AIS数据的字符有限,并不像ASXII字符那么丰富。为了保证数据的传输速度,AIS采用6比特编码,取代了8比特的ASCII码。
比特值与ASCII码的对照表
动态信息的格式表
ROT参数说明
静态信息的格式表
注:
- IMO号码:由7位数字组成,相当于“身份证”号码,一般不会更变。通常,远洋船舶都会被分配一个IMO编号。也有部分沿岸或者内河船舶没有分配,但是这些船舶不会随意输入一个号码充作IMO编号。
- 呼号(Call sign):分配方式和MMSI相似,按照国家分配,中国国籍的船舶以B开头,法国的以F开头。实践中,船员呼叫对方船舶是船名和呼号一起呼叫的,以区别船名同音不同名或者同拼音不同名的船舶。
将42位的二进制字节串,分隔开,每组6位,一共7组。对照下表,得到每6位表示二进制串所代表的字符,就是呼号。 - 船名:将120位的二进制字节串,分隔开,每组6位,一共20组。对照下表,得到每6位表示二进制串所代表的字符,就是船名。
除非另有规定,所有字段均为二进制,所有数字均以十进制表示,负数用2的补码表示。
船舶和货物类型
参考:R-REC-M.1371-5 建议书的表53
报告位置参考点和船舶尺寸
举例:
30位的bit串:000001010001101100001001001100
根据上图标出4个位置参考点的位数
A:000001010,B:001101100,C:001001,D:001100
分别转化为十进制:10,108,9,12
得到:
船舶尺寸以及定位设备位置
- 通过串口服务器接收AIS信息,根据6bit ASCII码表将接收的封装信息中每个字符转换成6bitASCII。(也就是将AIS报文的数据部分的每一个字符,根据比特值与ASCII码的对照表,列出每一个字符的6bit的二进制码,得到一个二进制序列)
- 判断前6bit二进制码代表信息ID,若ID = 1、2或3,对船舶的动态信息进行解码,根据动态信息格式表中的比特数,划分出每一个信息参数的二进制码;ID = 5,对船舶的静态信息进行解码,根据静态信息格式表中的比特数,划分出每一个信息参数的二进制码。
- 将参数的二进制码解码后得到十进制数,或者再接着进行相应的计算,即可得到相应参数的值。
注:
在内河和近海区域中大多数中小船舶已经安装B类AIS船载设备。
B类AIS信息的解码过程
单个字符的转换过程(用于代码实现):
- 判断每一个编码后的ASCII是否为有效字符,即AIS报文中的数据部分;
- 根据8bitASCII对照表,可显示字符分为两部分,判断数据中的每个字符在哪个区间:
0x30 ~ 0x77 (即48 ~ 119)
0x57 ~ 0x60 (即87 ~ 96) - 把单个字符进行转化:
0x30 ~ 0x57(48 ~ 87)之间的字符:减去48,再和0x3f做与运算;
0x60 ~ 0x77(96 ~ 119)之间的字符:减去56,再和0x3f做与运算;
可通过计算器计算,算出字符所对应的十进制数,再做减法,得到的值转成十六进制后,再做与运算,最后将结果转成二进制。 - 将上一步的二进制,除去高两位,只取低六位,即得到每个字符所对应的 6bit 的二进制串。
举例
从Dotalog服务器中提取一条数据
!ABVDM,1,1,3,A,169DvlgP1R8KPtvFBfOCt3?h0@RT,0*03
-
AB指的是SAAB的AIS数据,VDM表示本台站收到的船舶的信息。
(SAAB 公司以!ABVDM开头的数据报文和以!AIVDM开头的国际标准的报文编码是完全一致的)
当同时存在多条需要分段的消息时,该字段用于区分隶属于不同消息的报文。
-
A: 该报文是通过A信道接收的
-
0*03: 0表示填充的比特数,03为数据区段CRC校验结果。
-
解析数据部分:
169DvlgP1R8KPtvFBfOCt3?h0@RT
数据区段共168bit,具体含义如下:
注:纬度转换成十进制为23375485,是用1/10000分表示的,所以23375485除以10000后是2337.5485’,2337’除以60=38.95°,0.95°乘以60=57’,所以最后的纬度是38°57.5485‘。
VDM消息类型补充
VDM消息类型总共有26种,可分为AIS目标显示信息(船舶静态信息和船舶动态信息)、安全信息处理、扩展应用处理和系统控制等几类。详细信息参考ITU-P M.1371规范.
消息1、2、3:位置报告
消息4:基站报告
消息5:船舶静态和航行相关数据
消息6:寻址二进制消息
消息7:二进制确认
消息8:二进制广播消息
消息9:标准的SAR航空器位置报告
消息10:UTC/日期询问(UTC和数据请求)
消息11:UTC/日期响应(UTC和数据应答)
消息12:寻址安全相关信息
消息13:安全相关确认
消息14:安全相关广播消息
消息15:询问
消息16:指配模式命令
消息17:GNSS广播二进制消息
消息18:标准的B类设备位置报告
消息19:扩展的B类设备位置报告
消息20:数据链路管理消息
消息21:助航设备报告
消息22:信道管理
消息23:群组指配命令
消息24:静态数据报告
消息25:单时隙二进制消息
消息26:带有通信状态的多时隙二进制消息
消息27:大量程AIS广播消息
注1:对于消息5,船舶的静态和航行相关信息
VDM消息样例如下:
!AIVDM,2,1,8,A,569> ;; gP0000089’'001 TTpPN0QD4000000000000t4IU7=4cG0@10H32@C’3I,079!AIVDM,2,2,8,A,T1CQp30B@00,21A消息5将被分解为两条连续的AIVDM消息进行发送,因此完整的压缩信息为:
569> ;; gP0000089’'001 TTpPN0QD4000000000000t4IU7=4cG0@10H32@C’3IT1CQp30B@00
所以要对这一个完整的消息进行解码.
注2:VDM消息的报告频率
静态消息:每6分钟,或者当数据被修正
动态消息:根据速度和航线改变情况
航行相关信息:每6分钟,或者当数据被修正
安全相关信息:根据请求
注3:A类设备和B类设备的区别
船用移动设备种类
A类船用移动设备符合相关的IMO AIS 运输要求。
A类设备能够接收和发送简短的安全相关信息,包括重要的航海和气象警报。
B类船用移动设备提供的工具和IMO AIS运输要求不必要完全一致。
B类设备只能接收简短的安全相关消息。
注4:A类设备的报告间隔
当移动站确定这是打信号时,报告速率都将增加到每2秒一次。
A类设备以外的其他设备的报告间隔
如果基站监测到有其他基站与它同步,需要将速度提高到3.3333秒
全文参考:
AIS数据解析.pdf
AIS国际标准解析和技术发展展望-2015.ppt
最后
以上就是忧郁丝袜为你收集整理的AIS (船舶自动识别系统Automatic Identification System)数据解析AIS电文种类暗码数据格式AIS数据部分字符编码B类AIS信息的解码过程的全部内容,希望文章能够帮你解决AIS (船舶自动识别系统Automatic Identification System)数据解析AIS电文种类暗码数据格式AIS数据部分字符编码B类AIS信息的解码过程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复