一种北斗报文信息的存储与访问方法

文档序号:9887794阅读:341来源:国知局
一种北斗报文信息的存储与访问方法
【技术领域】
[0001]本发明涉及通信领域的数据处理,特别地,涉及一种北斗报文信息的存储与访问方法。
【背景技术】
[0002]北斗卫星通信系统,是我国自主知识产权的全天候全天时提供卫星通信系统,无缝覆盖我国全部国土和周边海域,目前全面对民用用户开放,已在测绘、电信、水利、交通运输、勘探和国家安全等诸多领域提供导航定位、短报文通信和授时服务等应用,尤其是在电力、交通、气象、新能源等以动态信息数据监测为主的技术领域应用。
[0003]北斗短报文通信应用,意味着更加效率的信息传递,然而由于卫星通道的限制,短报文自身容量有限,单次仅可发布140个字的信息,同时存在发送时间间隔和容量带宽限制,传输时延约0.5秒,最高通信频度I秒I次,严重影响报文信息的传输效率,进而导致无法快速准确的实时更新动态数据。目前对于北斗报文信息的研究,多集中于北斗报文传输过程中北斗报文的传输协议、数据编码格式等方面,强调信息传输过程的研究,信息传输完成后在发送端或接收端信息数据的存储及访问,以及更新困难的问题,目前尚缺乏有效的解决方案。

【发明内容】

[0004]有鉴于此,本发明的目的在于提出一种北斗报文信息的存储与访问方法,建立一种北斗报文信息的索引定位存储机制,压缩报文信息占用内存的有效比特位数,使得北斗短报文通信时在有限的容量和通信频次内传输更多的报文信息,提高北斗报文信息的传输效率,有利于促进北斗短报文动态数据实时更新的效率。
[0005]基于上述目的,本发明提供的技术方案如下:
[0006]根据本发明的一个方面,提供了一种北斗报文信息的存储方法,包括:
[0007]获取北斗报文信息的报文数据;
[0008]根据报文数据生成报文信息的头文件,头文件存储报文数据的属性信息;
[0009]根据头文件初始化存储报文数据的金字塔结构;
[0010]将报文数据按照金字塔结构分割为多个层面切片,并将多个层面切片依次存入金字塔结构中。
[0011 ]其中,金字塔结构为存储信息使用的网格化层次组织,金字塔结构具有多个层,顶层具有一个块,除底层外的每个块均在其下一层有η个块与该块对应,金字塔结构中的每个块大小相等,金字塔结构通过对应关系形成一个η叉树。
[0012]并且,根据报文数据生成信息的头文件,根据报文数据的属性生成的属性头文件;报文数据的属性信息包括以下:数据源名称、金字塔层数、层面大小、层起始索引表,其中,数据源名称为金字塔结构的标识;金字塔层数为金字塔结构分层后的总层数;层面大小为金字塔结构分块后的块大小;层起始索引表为各层首层面在文件中的起始位置;头文件常驻于内存中。
[0013]并且,将报文数据按照金字塔结构分割为多个层面切片,为将报文数据按照金字塔结构中的块大小分割为多个层面切片,每个层面切片与每个分层块的大小相等。
[0014]并且,将多个层面切片依次存入金字塔结构中包括:
[0015]将L层金字塔的顶层定为第O层,往下每层层数依次递增,底层定为第L-1层;
[0016]获取多个层面切片,被获取的层面切片数量等于第L-1层可容纳的总数量,在第L-1层将被获取的切片按照Morton码顺序储存于第L-1层中的多个块中,并将该层的起始位置与入头文件的层起始索引表中;
[0017]逐次增加金字塔层数继续获取并存储层面切片,直到所有层面切片都被存储于金字塔结构中为止。
[0018]并且,根据头文件初始化存储报文数据的金字塔结构这一步骤在扩展存储中进行;在第L-1层将被获取的层面切片按照Morton码顺序储存于第L-1层中的多个块中这一步骤在扩展存储中进行;将该层的起始位置写入头文件的层起始索引表中,这一步骤在扩展存储中进行;其他所有步骤均在内存进行。
[0019]上述η个块为4个块,金字塔结构通过对应关系形成一个η叉树为4叉树。
[0020]根据本发明的另一个方面,提供了一种北斗报文信息的访问方法,包括:
[0021]获取报文信息访问请求,计算访问请求的层面切片编号,并根据层面切片编号计算所在层;
[0022]获取北斗报文信息的头文件,从头文件中获取数据源名称,并根据数据源名称获取对应的金字塔结构;同时,从头文件中获取层起始索引表,并根据层起始索引表获取层面切片所在层的起始地址;
[0023]从头文件中获取层面大小,并根据层面大小、访问请求的层面切片编号与Morton码顺序获取地址偏移量,将层起始地址与地址偏移量相加,计算出访问请求的层面切片的起始地址;
[0024]以起始地址为起点传输报文数据。
[0025]其中,根据层面大小、访问请求的层面切片编号与Morton码顺序获取地址偏移量包括:
[0026]根据访问请求的层面切片编号与所在层层数,获取层内编号;
[0027]根据层内编号按照Morton码顺序确定访问请求的层面切片在所在层的偏移次序;
[0028]将所在层的偏移次序与层面大小相乘,获得地址偏移量。
[0029]并且,根据访问请求的层面切片编号与所在层层数,获取层内编号,为将切片编号依次减去所在层以下每一块存储的层面切片总数之和,得到层内编号。
[0030]从上面所述可以看出,本发明提供的技术方案通过金字塔结构网格化、层次化北斗报文信息,建立报文信息索引,存储北斗报文信息占用内存比特位数更少,访问响应时间更短,提高北斗短报文数据的更新效率。
【附图说明】
[0031]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0032]图1为根据本发明实施例的一种北斗报文信息的存储方法的流程图;
[0033]图2为根据本发明实施例的一种北斗报文信息的存储方法中,金字塔结构的结构示意图;
[0034]图3为根据本发明实施例的一种北斗报文信息的存储方法中,一种4叉树的金字塔结构树图;
[0035]图4为根据本发明实施例的一种北斗报文信息的存储方法的一个实施例中的具体流程步骤;
[0036]图5为根据本发明实施例的一种北斗报文信息的访问方法的流程图;
[0037]图6为根据本发明实施例的一种北斗报文信息的访问方法中,层面切片起始地址的获取方法示意图。
【具体实施方式】
[0038]为使本发明的目的、技术方案和优点更加清楚明白,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进一步进行清楚、完整、详细地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
[0039]根据本发明的实施例,提供了一种北斗报文信息的存储方法。
[0040]如图1所示,根据本发明的实施例提供的北斗报文信息的存储方法包括:
[0041]步骤SlOl,获取北斗报文信息的报文数据;
[0042]步骤S103,根据报文数据生成报文信息的头文件,头文件存储报文数据的属性信息;
[0043]步骤S105,根据头文件初始化存储报文数据的金字塔结构;
[0044]步骤S107,将报文数据按照金字塔结构分割为多个层面切片,并将多个层面切片依次存入金字塔结构中。
[0045]其中,金字塔结构为存储信息使用的网格化层次组织,金字塔结构具有多个层,顶层具有一个块,除底层外的每个块均在其下一层有η个块与该块对应,金字塔结构中的每个块大小相等,金字塔结构通过对应关系形成一个η叉树。金字塔结构如图2所示。
[0046]并且,根据报文数据生成信息的头文件,头文件中存储的报文数据的属性信息包括以下至少之一:数据源名称、金字塔层数、层面大小、层起始索引表,其中,数据源名称为金字塔结构的标识;金字塔层数为金字塔结构分层后的总层数;层面大小为金字塔结构分块后的块大小;层起始索引表为各层在文件中的起始位置;头文件常驻于内存中。
[0047]并且,将报文数据按照金字塔结构分割为多个层面切片,为将报文数据按照金字塔结构中的块大小分割为多个层面切片,每个层面切片与每个块大小相等。
[0048]如图2所示,将多个层面切片依次存入金字塔结构中包括:
[0049]将L层金字塔的顶层定为第O层,往下每层层数依次递增,底层定为第L-1层;
[0050]获取多个层面切片,被获取的层面切片数量等于第L-1层可容纳的总数量,在第L-1层将被获取的层面切片按照Morton码顺序储存于第L-1层中的多个块中,并将该层的起始位置写入头文件的层起始索引表中;
[0051]逐次增加金字塔层数继续获取并存储层面切片,直到所有层面切片都被存储于金字塔结构中为止。
[0052]数据部分按层数依次存放,首先存放的是第L-1层数据,次之存放第L-2层数据,以此形成倒排金字塔序列,第i层(O < i < L-1)数据量是第1-Ι层数据量的4倍,同一层层面切片层面的存储位置符合Morton顺序。
[0053]并且,根据头文件初始化存储报文数据的金字塔结构这一步骤在扩展存储中进行;在第L-1层将被获取的层面切片按照Morton码顺序储存于第L-1层中的多个块中这一步骤在扩展存储中进行;将该层的起始位置写入头文件的层起始索引表中
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1