掌桥专利:专业的专利平台
掌桥专利
首页

一种基于北斗短报文通信的气象数据传输方法及解析方法

文献发布时间:2024-04-18 19:58:26


一种基于北斗短报文通信的气象数据传输方法及解析方法

技术领域

本申请涉及气象技术领域,尤其是一种基于北斗短报文通信的气象数据传输方法及解析方法。

背景技术

自动气象站是一种能够自动观测和存储气象要素数据的设备,自动气象站需要将监测到的气象要素数据传输给中心站进行统一监控。受限于通信基础设置条件,部分自动气象站需要通过北斗短报文通信来传输气象要素数据,但是民用环境下,北斗短报文通信每次传输的数据量非常有限,每一次传输的数据包仅能传输78个字节,且有时间窗口限制,发送一次数据包后,需要等待一分钟才能发送下一个数据包。

但是自动气象站观测到的气象要素数据的数据量非常大,以气象要素数据为雨量数据为例,自动气象站需要观测并传输每个小时内每分钟的雨量数据,而每一个雨量数据的取值范围为0.0mm~9.9mm,转换成二进制数据后每一个雨量数据都需要占用7比特,所以自动气象站往往需要分成多个数据包来传输气象要素数据,传输效率较低,传输实时性较差,而且数据传输成功率也降低。

发明内容

本申请人针对上述问题及技术需求,提出了一种基于北斗短报文通信的气象数据传输方法及解析方法,本申请的技术方案如下:

一种基于北斗短报文通信的气象数据传输方法,该气象数据传输方法包括:

将连续观测到的N个十进制形式的雨量数据进行数据压缩处理形成一个二进制形式的压缩雨量串R,每个十进制形式的雨量数据包括一位整数位数据和一位小数位数据,压缩雨量串R中的高位数据串与各个雨量数据的整数位数据相匹配,压缩雨量串R中的低位数据串与各个雨量数据的小数位数据相匹配,且每个压缩雨量串R占用的比特位数小于7*N,整数参数N≥2;

对按照观测时序依次处理形成的多个压缩雨量串R进行数据拼接得到原始字节流并确定有效字节流;

对有效字节流编码形成北斗短报文数据并发送北斗短报文数据。

一种基于北斗短报文通信的气象数据解析方法,该气象数据解析方法包括:

接收北斗短报文数据并对北斗短报文数据进行译码得到有效字节流;

根据有效字节流确定原始字节流,原始字节流是对多个压缩雨量串R按照观测时序依次进行数据拼接得到;

对原始字节流进行数据解析,确定原始字节流对应的比特流的最高位的数据位开始为第一个压缩雨量串R,对压缩雨量串R中的高位数据串进行数据解析分别得到N个雨量数据的整数位数据,对压缩雨量串中的低位数据串进行数据解析分别得到N个雨量数据的小数位数据,整数参数N≥2;

对一个压缩雨量串R完成数据解析并整理得到压缩雨量串R对应的按照观测时序依次连续观测到的N个十进制形式的雨量数据,每个雨量数据包括对应的一个整数位数据和一位小数位数据;依次对下一个压缩雨量串R进行数据解析,直至对所有压缩雨量串R都完成数据解析。

本申请的有益技术效果是:

本申请公开了一种基于北斗短报文通信的气象数据传输方法及解析方法,该方法基于连续观测的雨量数据的差异不大的特点,对连续多个雨量数据的整数位数据和小数位数据分别统一压缩处理,根据多个雨量数据的整数位数据得到压缩雨量串的高位数据串、根据多个雨量数据的小数位数据得到压缩雨量串的低位数据串,从而将连续观测到的多个雨量数据统一压缩成一个压缩雨量串携带在北斗短报文数据中。压缩处理后的压缩雨量串占用的比特数小于原始的雨量数据占用的比特数,所以实现了数据压缩,使得每次发送的北斗短报文数据可以传输更多的雨量数据,提高了数据传输效率和实时性,且同样的雨量数据可以通过更少次数传输完成,也有利于提高传输的准确性。

另外本申请还对极端场景下连续观测的雨量数据的差异较大的情况也做了兼容处理,提供了两种不同的压缩处理方法,使得该方法的适用性较广。

进一步的,本申请的方法引入了对原始字节流的增量传输机制,采用定期传输原始字节流、在两组原始字节流之间传输增量形式的有效字节流的方式来进行数据交互,使得每次发送的北斗短报文数据可以进一步携带更多的雨量数据,进一步提高数据传输效率、实时性和准确性。

另外,本申请还在北斗短报文数据中引入RS编码,使得在接收端可以纠正偶发的数据错误,提高数据传输的准确率,保证数据传输质量。

附图说明

图1是本申请一个实施例的气象数据传输方法的方法流程图。

图2是本申请一个实施例中的对三个连续观测到的雨量数据压缩得到的一个压缩雨量串的数据格式示意图。

图3是本申请一个实例中根据发送的最近一组基准报文数据中的有效字节流P对原始字节流Q得到的参考比特流E和参考字节流F的示意图。

图4是本申请一个实例中的气象数据解析方法的方法流程图。

具体实施方式

下面结合附图对本申请的具体实施方式做进一步说明。

本申请公开了一种基于北斗短报文通信的气象数据传输方法及解析方法,用于实现自动气象站与中心站之间的气象要素数据传输功能,自动气象站按照本申请的气象数据传输方法将观测到的气象要素数据利用北斗短报文通信机制传输给中心站,中心站按照本申请的气象数据解析方法对利用北斗短报文通信机制接收到的数据解析得到气象要素数据。

本申请典型传输的气象要素数据为雨量数据,对于雨量数据来说,如背景技术部分记载,其观测数据量较大,每个小时内每分钟都需要观测雨量数据,且每一个雨量数据的取值范围为0.0mm~9.9mm,每一个雨量数据直接采用二进制表示需要7比特数据,本申请公开的基于北斗短报文通信的气象数据传输方法提供了一种全新的对雨量数据进行压缩传输的方法,从而有利于提高气象数据的传输效率,该气象数据传输方法包括如下步骤,请参考图1的流程图:

步骤110,将连续观测到的N个十进制形式的雨量数据进行数据压缩处理形成一个二进制形式的压缩雨量串R,整数参数N≥2。

其中,每个十进制形式的雨量数据包括一位整数位数据和一位小数位数据,且整数位数据的取值范围为[0,9],小数位数据的取值范围为[0,9]。

每个压缩雨量串R中的高位数据串与N个雨量数据的整数位数据相匹配,压缩雨量串R中的低位数据串与N个雨量数据的小数位数据相匹配。

步骤120,对按照观测时序依次处理形成的多个压缩雨量串R进行数据拼接得到原始字节流并确定有效字节流。

步骤130,对有效字节流编码形成北斗短报文数据并发送北斗短报文数据。

按照传统做法直接将每个雨量数据转换成二进制数据后占用7个比特位,则N个雨量数据共占用7*N个比特位。而步骤110中对N个雨量数据进行数据压缩处理得到的每个压缩雨量串R占用的比特位数小于7*N,因此本申请通过对N个雨量数据进行数据压缩处理,减少了N个雨量数据所占用的比特位数据,使得在北斗短报文数据的字节限制下,单次发送的北斗短报文数据可以包含更多的雨量数据,提高了数据传输效率。

在一个实施例中,N=3且将按照观测时序从前至后的顺序依次观测到的三个雨量数据分别记为第一雨量数据、第二雨量数据和第三雨量数据,第一雨量数据的整数位数据为a

压缩雨量串中的高位数据串包括数据位R

数据位R

压缩雨量串中的低位数据串包括数据位R

比如在一个实例中,按照观测时序从前至后的顺序依次观测到的三个雨量数据分别为2.2、1.9和1.8,单位均为mm。则确定三个雨量数据的整数位数据分别为a

因此确定a

对三个雨量数据的小数位数据进行数据拼接形成的小数位拼接结果B为298,其对应的二进制结果为100101010,进行高位补零至10bit为0100101010即为数据位R

则最终对2.2、1.9和1.8这三个雨量数据进行数据压缩得到的占用16bit的压缩雨量串R=0011000100101010。

在上述实施例中,数据位R

在实际应用场景中,绝大部分情况下按照观测时序连续观测到的三个雨量数据都能满足上述要求,因为自动气象站的观测频率较高,连续观测到的三个雨量数据在时序上非常接近,而雨量数据在相近时序内往往不太会存在突变的情况,所以连续观测到的三个雨量数据的小数位数据可能差距较小也可能差距较大,但整数位数据差距往往较小,所以大部分条件下都能满足a

但是为了避免在一些极端场景下出现无法满足上述条件的情况而导致方法无法运行的情况,在另一个实施例中,还提供了另一种容错压缩方法:

也即在大部分情况下,当满足a

而在极端情况下,当不满足a

压缩雨量串中的数据位R

比如在一个极端情况下,按照观测时序从前至后的顺序依次观测到的三个雨量数据分别为0.2、2.9和2.8,单位均为mm。则确定三个雨量数据的整数位数据分别为a

因此确定a

对a

则最终对0.2、2.9和2.8这三个雨量数据进行数据压缩得到的占用23bit的压缩雨量串R=11100000101100100101010。

综合上述两个实施例,在正常情况下,通过本申请的数据压缩方法对连续观测到的三个雨量数据进行数据压缩处理后,可以将原本占用21bit的三个雨量数据压缩为一个只占用16bit的压缩雨量串R,可以在保证数量传输准确性的基础上减少5bit。对于一个小时报文中包含的60个雨量数据,总共可以减少传输12.5个字节。对于极端情况虽然得到的压缩雨量串R占用23bit,相比于原本占用21bit还更多,但是这样可以使得该方法也可以兼容一些极端情况,提高了本申请方法的适用范围。而且考虑到实际应用时极端情况出现的概率非常小、占比非常低,因此即便有小部分压缩雨量串R需要占用23bit,但是在大部分压缩雨量串R都占用16bit的情况下,采用本申请的方法还是可以有效提高数据传输率。

为了进一步提高数据传输率,在另一个实施例中,在上述步骤120中,并不总之直接将原始字节流作为有效字节流,而是进一步加入增量传输机制来进一步压缩数据,分为两种情况:

1、对于每隔预定时间间隔发送的作为基准报文数据的北斗短报文数据中包含的原始字节流,将原始字节流直接作为有效字节流。

该预定时间间隔为自定义值,发送基准报文数据的频率可以自定义,比如常见的,每个整点时刻发送一次基准报文数据。

如上所述,在常规情况下,得到的压缩雨量串R占用16bit,转换成字节形式占用2个字节,将按照观测时序依次得到的压缩雨量串R进行数据拼接,可以得到依次包括若干个字节的原始字节流,比如得到的一个原始字节流A如图3所示,则直接将该原始字节流P作为有效字节流P。每组北斗短报文数据中包含的有效字节流的总字节数为K,所以原始字节流P包括K个字节,字节P

2、对于在任意相邻两组基准报文数据之间发送的任意一组北斗短报文数据中包含的原始字节流Q,执行如下步骤(1)~(5)来得到有效字节流

(1)初始化整数参数k=1,并读取字节Q

(2)当Q

(3)当Q

(4)当k<K时,令k=k+1并再次比较Q

(5)当k=K时,确定已经遍历比较完成Q

(6)将参考比特流E转换成字节流形式得到参考字节流E′,并确定参考字节流E′占用的总字节数Len,得到有效字节流

比如在图3的实例中,示出了原始字节流Q和已经发送的最近一组基准报文数据中的有效字节流P中各个字节的内容。从k=1开始依次遍历,由于Q

即便是采用本申请的方法进行数据压缩后,自动气象站观测到的完整的所有雨量数据仍然需要分多次传输多个北斗短报文数据,而每次传输的北斗短报文数据由于干扰等因素会有一定的丢包概率,传输的北斗短报文数据的数量越多,完整的所有雨量数据的传输成功率越低,因此为了保证传输准确性,在一个实施例中,有效字节流包括73个字节,除此之外,还包括1个字节的校验字节和4个字节的RS校验码,则上述步骤130对有效字节流编码形成北斗短报文数据的方法包括如下步骤:

(1)对有效字节流进行异或校验得到1个字节的校验字节并添加在有效字节流的低位,得到包含74个字节的校验数据。

(2)对校验数据进行高位补零,补充177个字节的0得到包含251个字节的补位校验数据。

(3)使用RS(255,251)编译码算法对补位校验数据进行编码,得到包含255个字节的编码数据。

(4)根据RS编译码算法的计算过程,得到的编码数据的高位仍然时177个字节的0,因此去掉高位的177个字节的0,截取编码数据中的低78个字节得到北斗短报文数据。

对应于本申请提供的气象数据传输方法,本申请还公开了一种基于北斗短报文通信的气象数据解析方法,请参考图4所示的流程图,包括如下步骤:

步骤310,接收北斗短报文数据并对北斗短报文数据进行译码得到有效字节流。

步骤320,根据有效字节流确定原始字节流,原始字节流是对多个压缩雨量串R按照观测时序依次进行数据拼接得到。

步骤330,对原始字节流进行数据解析,确定原始字节流对应的比特流的最高位的数据位开始为第一个压缩雨量串R,对每个压缩雨量串R中的高位数据串进行数据解析分别得到N个雨量数据的整数位数据,对压缩雨量串中的低位数据串进行数据解析分别得到N个雨量数据的小数位数据,整数参数N≥2;

步骤340,对一个压缩雨量串R完成数据解析并整理得到压缩雨量串R对应的按照观测时序依次连续观测到的N个十进制形式的雨量数据,每个雨量数据包括对应的一个整数位数据和一位小数位数据;依次对下一个压缩雨量串R进行数据解析,直至对原始字节流对应的比特流都完成数据解析。

对应于本申请提供的气象数据传输方法中的数据压缩方法,上述步骤330对原始字节流进行数据解析的方法包括如下步骤,以压缩雨量串的任意数据位R

将压缩雨量串中数据位R

将压缩雨量串中数据位R

从而整理得到按照观测时序从前至后的第一雨量数据、第二雨量数据和第三雨量数据,第一雨量数据的整数位数据为a

比如,确定的原始字节流从最高位开始的部分内容为010501230293,对应的比特流为10000010100000001001000110000001010010011。确定最高位开始为第一个压缩雨量串,第一个压缩雨量串的数据位R

对第一个压缩雨量串解析完成后,继续对下一个压缩雨量串进行解析,下一个压缩雨量串的数据位R

对应于数据压缩的方法,大部分情况下,压缩雨量串中数据位R

将压缩雨量串中数据位R

比如在对原始字节流对应的比特流进行数据解析的过程中,对一个压缩雨量串解析完成后,剩余未解析的比特流的部分内容依次为111000001011001001010100011000100,则确定数据位R

对应于上述增量传输机制,在上述步骤320中,并不直接将有效字节流作为原始字节流,而是分为两种情况:

1、对于每隔预定时间间隔接收到的作为基准报文数据的北斗短报文数据中包含的有效字节流,直接将有效字节流P作为原始字节流P,与传输部分类似,该实施例不再赘述。

2、对于在任意相邻两组基准报文数据之间接收的任意一组北斗短报文数据中包含的有效字节流

(1)提取有效字节流

(2)提取有效字节流

(3)将参考字节流E′转换成比特流形式得到包含K个比特位的参考比特流E,K是每组北斗短报文数据中包含的有效字节流的总字节数。

(4)初始化整数参数k=1。

(5)当E

(6)当k<K时,令k=k+1并再次执行步骤(5)。

(7)当k=K时,确定提取得到原始字节流Q。

对应于图3的实例,在一个实例中,接收的最近一组基准报文数据中的原始字节流P如图3所示,得到的有效字节流

由于E

对应于气象数据传输时使用的编码,步骤310对北斗短报文数据进行译码得到有效字节流的方法包括:

(1)对北斗短报文数据进行高位补零,补充177个字节的0得到包含255个字节的补零报文数据。

(2)使用RS(255,251)编译码算法对补零报文数据进行译码后,去掉高位的177个字节的0,截取低78个字节得到译码数据。

(3)截取译码数据的高74个字节得到校验数据。

(4)当校验数据的高73个字节的数据的异或校验结果与校验数据的最低1个字节的校验字节相同时,确定校验通过并提取校验数据的高73个字节的数据得到有效字节流,否则确定校验不通过并丢弃北斗短报文数据,后续还可以通过北斗短报文告知自动气象站重新发送。

通过加入RS编码,接收端的中心站在接收到北斗短报文数据,可以纠正最多2个字节的数据错误。

以上的仅是本申请的优选实施方式,本申请不限于以上实施例。可以理解,本领域技术人员在不脱离本申请的精神和构思的前提下直接导出或联想到的其他改进和变化,均应认为包含在本申请的保护范围之内。

相关技术
  • 一种基于北斗三代短报文通信和虚拟专网的电力外业数据传输方法
  • 一种基于北斗短报文通信的数据传输方法
技术分类

06120116491939