CN110427345B - 一种网络层级地图数据的快速缓存方法 - Google Patents

一种网络层级地图数据的快速缓存方法 Download PDF

Info

Publication number
CN110427345B
CN110427345B CN201910675551.0A CN201910675551A CN110427345B CN 110427345 B CN110427345 B CN 110427345B CN 201910675551 A CN201910675551 A CN 201910675551A CN 110427345 B CN110427345 B CN 110427345B
Authority
CN
China
Prior art keywords
map
map data
cut
repeated
cutting
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910675551.0A
Other languages
English (en)
Other versions
CN110427345A (zh
Inventor
邹蓉
邹东
周剑
吴诚波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Xingyuan Yunyi Technology Co ltd
Original Assignee
Wuhan Xingyuan Yunyi Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan Xingyuan Yunyi Technology Co ltd filed Critical Wuhan Xingyuan Yunyi Technology Co ltd
Priority to CN201910675551.0A priority Critical patent/CN110427345B/zh
Publication of CN110427345A publication Critical patent/CN110427345A/zh
Application granted granted Critical
Publication of CN110427345B publication Critical patent/CN110427345B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Remote Sensing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明公开了一种网络层级地图数据的快速缓存方法,计算所有层的地图数据的切图总数,将切图总数按照计算机的CPU核数分成若干个子任务,各个子任务与各个计算机的CPU核一一对应;对各个切图建立索引编码;设定重复字节数和滑动窗口大小,计算机的CPU核读取对应的切图,利用滑动窗口遍历切图的各行数据,对重复字节段进行压缩。本发明采用通过多线程缓存压缩和自创切图压缩方法和解压方法来提高生成、读取层级地图数据的效率。

Description

一种网络层级地图数据的快速缓存方法
技术领域
本发明涉及层级地图和地图压缩技术领域,具体涉及一种网络层级地图数据的快速缓存方法。
背景技术
随着卫星定位技术、互联网位置服务等技术的迅猛发展,各行各业和普通民众对地图数据的需求不断增长,层级地图数据作为一种背景底图不可或缺。但是获取层级地图数据文件琐碎,数目极大,生成和读取都费时费力。如何高效地生成和读取层级地图数据成为地图数据处理中的一个热点问题。
发明内容
为解决现有技术存在的上述问题,本发明提供一种网络层级地图数据的快速缓存方法。
为实现上述目的,本发明采取以下技术方案:
一种网络层级地图数据的快速缓存方法,包括以下步骤:
步骤1、计算出各层地图数据的切图数及所有层的地图数据的切图总数,将切图总数按照计算机的CPU核数分成若干个子任务,并确定各子任务的起始切图标识和结束切图标识,各个子任务与各个计算机的CPU核一一对应;
步骤2、对各层地图数据的各个切图建立索引编码并将索引编码作为切图的前导字段,将同一地图数据的层级序号对应的切图放置在对应的层级文件夹中,层级文件夹的名称的内容包括二进制化的层级序号;
步骤3、设定重复字节数和滑动窗口大小,计算机的CPU核读取对应的切图,利用滑动窗口遍历切图的各行数据,对重复字节段进行压缩。
一种网络层级地图数据的快速缓存方法,还包括以下步骤:
将层级文件夹以及对应的各个压缩后的切图制作为一个管理文件,管理文件复制至需要部署的主机,主机解析管理文件中的各个层级文件夹,解析层级文件夹中的各个压缩后的切图,识别压缩后的切图中的重复标记“重复长度符号+重复长度+距离+距离符号”,并对各个压缩后的切图进行解压。
如上所述的步骤1包括以下步骤:
步骤1.1、按照以下公式计算出各层地图数据的切图数及所有层的地图数据的切图总数:
ni=4i-1
Figure BDA0002143140650000021
其中,i表示当前层级序号,ni表示第i层级的地图数据的切图数,m表示地图数据的层级总数,s表示所有层的地图数据的切图总数;
步骤1.2、按照以下公式将层级地图数据作为一个总任务均分成若干个子任务:
Figure BDA0002143140650000022
其中,d表示除最后一个子任务以外的其他每个子任务的切图数,t表示任务数,即CPU核数,
Figure BDA0002143140650000023
表示向上取整,最后一个子任务的切图数为切图总数减去前面所有子任务的切图总数;
步骤1.3、根据每个子任务的切图数,从顶层地图数据至底层地图数据,以行优先遍历的方式,依次确定各子任务的起始切图标示和结束切图标识,切图标识为“地图数据的层级序号、行序号、列序号”。
如上所述的步骤3包括以下步骤:
步骤3.1、设定重复字节数;
步骤3.2、设定滑动窗口的长度,计算机的CPU核读取对应的切图,利用滑动窗口遍历切图的各行数据;
步骤3.3、在滑动窗口内,按照当前压缩位置往后搜索的方式,依次搜索重复字节段,保留最先开始搜索到的重复字节段,剩下的重复字节段用重复长度符号+重复长度+距离+距离符号替换,距离表示当前重复字节段距离上一个最近的重复字节段的字节数,重复长度表示重复字节段的字节数。
如上所述的步骤3.3中,重复长度字符、距离字符、重复长度为固定bit长度,距离为可变bit长度。
与现有技术相比,本发明具有以下有益效果:
本发明采用通过多线程缓存压缩和自创切图压缩方法和解压方法来提高生成、读取层级地图数据的效率。
附图说明
图1是本发明的流程图。
图2是本发明多线程并行处理和压缩处理的流程图。
图3是重复字节段的说明图。图中,重复字节数为单字节,向上箭头↑表示当前压缩位置(位于某一重复字节段末位)。当前压缩位置的二进制字节段“10011010”与上一个最近的等值二进制重复字节段的距离为4(字节),“重复长度”为1(字节)。
具体实施方式
为了便于本领域普通技术人员理解和实施本发明,下面结合实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。
如图1和图2所示,本发明提供的一种网络层级地图数据的快速缓存方法,包括以下步骤:
步骤1、计算出各层地图数据的切图数及所有层的地图数据的切图总数,将切图总数按照计算机的CPU核数分成若干个子任务,并确定各子任务的起始切图标识和结束切图标识,各个子任务与各个计算机的CPU核一一对应,层级地图数据包括各层的地图数据,具体过程为:
步骤1.1、根据地图数据的层级序号计算出各层地图数据的切图数及所有层的地图数据的切图总数。具体计算公式为:
ni=4i-1
Figure BDA0002143140650000031
式中,i表示当前层级序号(从顶层起算,至底层结束),ni表示第i层级的地图数据的切图数,m表示地图数据的层级总数(即顶层为第1层级,底层为第m层级),s表示从顶层到底层的切图总数,即表示所有层的地图数据的切图总数。例如,以层级总数为20层(即m=20)计算,则切图总数将达到惊人的[(420-1)/3]=366,503,875,925幅,无论是缓存还是进行读取操作显然都费时费力。
步骤1.2、按照计算机的CPU核数将层级地图数据作为一个总任务均分成若干个子任务。具体的计算公式为:
Figure BDA0002143140650000042
式中,d表示除最后一个子任务以外的其他每个子任务的切图数,t表示任务数,即CPU核数,
Figure BDA0002143140650000043
表示向上取整,最后一个子任务的切图数为切图总数减去前面所有子任务的切图总数,显然最后一个子任务的切图数小于或等于d。以目前常见的8核心台式机为例,则可将总任务分解为8个子任务,则第1~第7个子任务需认领的切图数目为
Figure BDA0002143140650000044
第8个子任务需认领的切图数目为(366,503,875,925-45,812,984,491×7)=45,812,984,488,较前7个子任务的切图数略少。
步骤1.3、根据每个子任务的切图数,从顶层地图数据至底层地图数据,以行优先遍历的方式,依次确定各子任务的起始切图标示和结束切图标识,切图标识为“地图数据的层级序号、行序号、列序号”。具体过程为:
步骤1.3.1、以最顶层的地图数据的第一个切图为第1个子任务的起始切图,按行优先遍历得到从起始切图往后d个切图作为第1个子任务所要处理的切图。仍以前述20层切图为例说明:第1个子任务的起始切图标识为“1,1,1”,而第1层(即i=1),仅有1个切图,未达到第1个子任务需领取的切图数目;前2层(i=1,2)有[(42-1)/3]=5个切图,也未达到第1个子任务需领取的切图数目;……;前18层(i=1,2,…,18)的切图数为[(418-1)/3]=22,906,492,245,依然尚未达到第一个子任务需领取的切图数目;遍历至第19层的第87,382行87,382列的切图,方达到第1个子任务需领取的切图数,即
Figure BDA0002143140650000041
因此,第1个子任务的结束切图标识为“19,87,382,87,382”。
步骤1.3.2、按上述遍历方法来计算第2~7个子任务的起始切图标识和结束切图标识。
步骤1.3.3、确定第8个子任务的起始切图标识和结束切图标识,各个子任务与各个计算机的CPU核一一对应,以加快后续步骤中切图压缩的效率。
步骤2、层级地图数据包含的切图数量浩繁,为便于管理,需对其按层级重新命名;为方便读取操作,需将地图数据压缩至一个文件中,为区隔各切图及正确解压,需预先对地图数据的各切图进行索引编码。为此,需按对各层地图数据的各个切图建立索引编码并将索引编码作为切图的前导字段,将同一地图数据的层级序号对应的切图放置在对应的层级文件夹中,层级文件夹的名称的内容包括二进制化的层级序号,具体方法为:为切图建立二进制的索引编码,索引编码索引编码是切图标识的二进制化,索引编码包括二进制化的地图数据的层级序号、行序号、列序号,并将索引编码作为切图的前导字段;将同一地图数据的层级序号对应的切图放置在对应的层级文件夹中。例如,可用64位数据以类似于切图标识的方式为每个切图建立索引编码:第0~5位为切图所在的层序号(最多可表示26-1=63层),并依据这6位二进制数据建立以层级序号命名的层级文件夹,以便将同一层级的切图文件存放至同一层级文件夹内;中间的29位(即第6~34位)为切图在该层的行序号(最多可表示229-1=536,870,911行,最多可表示28层的行序号),最后的29位(即第35~63位)为切图在该层的列序号(最多可表示28层的列序号),并依据行序号和列序号的二进制数据为切图建立索引编码,并将索引编码作为对应的切图的名称。
步骤3、设定重复字节数和滑动窗口大小,计算机的CPU核读取对应的切图,利用滑动窗口遍历切图的各行数据,对重复字节段进行压缩,具体过程为:
步骤3.1、根据压缩目的和地图数据的特点,预先设定重复字节数,重复字节数为单字节或双字节或三字节或设定个数的字节。对缓存的网络层级地图数据进行压缩主要是为了便于管理,极大提高读取海量琐碎地图文件的效率,其次才是节省磁盘空间,因此并不苛求压缩率等指标。可针对地图数据设定压缩原则:以字节为考察的基本单元,对重复的单字节或双字节或三字节或设定个数的字节进行压缩。
步骤3.2、设置搜索重复字节的滑动窗口。地图数据中的重复具有局部性,在附近发生重复的概率的很高,因此需要设置一个长度大小合适的一维的滑动窗口,以便在该滑动窗口内搜索重复字节段。可设置为16KB,即在切图的当前压缩位置之后的16KB的数据中搜索重复字节段,当前压缩位置之后的16KB的数据是指滑动窗口内未压缩的数据,计算机的CPU核读取对应的切图,利用滑动窗口遍历切图的各行数据。
步骤3.3、设置重复标记。在滑动窗口内,按照当前压缩位置往后搜索的方式,依次搜索重复字节段,保留最先开始搜索到的重复字节段,剩下的重复字节段用重复长度符号+重复长度+距离+距离符号替换,距离表示当前重复字节段距离上一个最近的重复字节段的字节数,重复长度表示重复字节段的字节数。图3是为说明本发明涉及的压缩方案中“距离”与“重复长度”之间关系的一个层级地图二进制数据的实例片段。在该片段中,向上箭头↑标出的二进制的重复字节段“10011010”与上一个最近的等值二进制的重复字节段的距为4(字节),“重复长度”为1(字节)。需要指出的是,为避免“距离”和“重复长度”与切图中的二进制数值混淆,还需要在利用距离符号和重复长度符号进行区分。另外,重复长度字符、距离字符、重复长度可以用固定bit长度进行表示,距离为可变bit长度。
设计码表。根据地图数据重复的局部性,“距离”值往往较小,可用较短一些的二进制位来表示这些较小的距离值,而较大的距离值则用长一些的二进制位来表示;又按本发明的压缩原则,“重复长度”的取值只可能是1,2和3,亦可用特定的短位二进制来代替重复的长度值。这样可以提高压缩率,但要建立码表来表示这种对应关系,且码表也要记录在压缩文件中,解压时需参考此码表。一个可行的码表实例为:
1——>1
2——>10
3——>11
4——>100
5——>101
6——>110
7——>111
……
步骤4、将层级文件夹以及对应的各个压缩后的切图制作为一个管理文件,管理文件复制至需要部署的主机,使用时,解析管理文件中的各个层级文件夹,解析层级文件夹中的各个压缩后的切图,识别压缩后的切图中的重复标记“重复长度符号+重复长度+距离+距离符号”,并对各个压缩后的切图进行解压,由于使用了无损压缩,因此解压速度非常快,极大地节省读取大量零碎图形文件的时间。
在本发明中,子任务是为了提高切图缓存的效率。建立索引编码是为后续的压缩服务,在各个切图的数据前附上索引编码作为前导数据,以标明该切图的层级、行序号、列序号,如此方可正确解压。此外,地图数据缓存到本地之后也必然要用一套规则来命名、管理这些浩繁的文件,索引编码的二进制数据也可转换为10进制数据来给各切图重新命名(同一层级的地图数据放在同一个层级文件夹内,切图则以行序号、列序号的的方式命名),这样有利于以后对切图的进一步操作(例如要显示特定区域某一比例尺的地图,即可根据层级、行列序号来选择需加载的地图文件)。步骤3中的切图压缩是为了提高切图的读取效率,即用更短的时间将切图(压缩格式)部署到需要的机器上,且由于压缩方案较简单,因此压缩和解压所耗费的时间也较短,相较直接拷贝图片格式的地图文件可节省大量时间。
需要指出的是,本发明中所描述的具体实施例仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例作各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或超越所附权利要求书所定义的范围。

Claims (3)

1.一种网络层级地图数据的快速缓存方法,其特征在于,包括以下步骤:
步骤1、计算出各层地图数据的切图数及所有层的地图数据的切图总数,将切图总数按照计算机的CPU核数分成若干个子任务,并确定各子任务的起始切图标识和结束切图标识,各个子任务与各个计算机的CPU核一一对应;
步骤2、对各层地图数据的各个切图建立索引编码并将索引编码作为切图的前导字段,将同一地图数据的层级序号对应的切图放置在对应的层级文件夹中,层级文件夹的名称的内容包括二进制化的层级序号;
步骤3、设定重复字节数和滑动窗口大小,计算机的CPU核读取对应的切图,利用滑动窗口遍历切图的各行数据,对重复字节段进行压缩,
所述的步骤1包括以下步骤:
步骤1.1、按照以下公式计算出各层地图数据的切图数及所有层的地图数据的切图总数:
ni=4i-1
Figure FDA0003878565480000011
其中,i表示当前层级序号,ni表示第i层级的地图数据的切图数,m表示地图数据的层级总数,s表示所有层的地图数据的切图总数;
步骤1.2、按照以下公式将层级地图数据作为一个总任务均分成若干个子任务:
Figure FDA0003878565480000012
其中,d表示除最后一个子任务以外的其他每个子任务的切图数,t表示任务数,即CPU核数,
Figure FDA0003878565480000013
表示向上取整,最后一个子任务的切图数为切图总数减去前面所有子任务的切图总数;
步骤1.3、根据每个子任务的切图数,从顶层地图数据至底层地图数据,以行优先遍历的方式,依次确定各子任务的起始切图标示和结束切图标识,切图标识为“地图数据的层级序号、行序号、列序号”,
所述的步骤3包括以下步骤:
步骤3.1、设定重复字节数;
步骤3.2、设定滑动窗口的长度,计算机的CPU核读取对应的切图,利用滑动窗口遍历切图的各行数据;
步骤3.3、在滑动窗口内,按照当前压缩位置往后搜索的方式,依次搜索重复字节段,保留最先开始搜索到的重复字节段,剩下的重复字节段用重复长度符号+重复长度+距离+距离符号替换,距离表示当前重复字节段距离上一个最近的重复字节段的字节数,重复长度表示重复字节段的字节数。
2.根据权利要求1所述的一种网络层级地图数据的快速缓存方法,其特征在于,还包括以下步骤:
将层级文件夹以及对应的各个压缩后的切图制作为一个管理文件,管理文件复制至需要部署的主机,主机解析管理文件中的各个层级文件夹,解析层级文件夹中的各个压缩后的切图,识别压缩后的切图中的重复标记“重复长度符号+重复长度+距离+距离符号”,并对各个压缩后的切图进行解压。
3.根据权利要求1所述的一种网络层级地图数据的快速缓存方法,其特征在于,所述的步骤3.3中,重复长度字符、距离字符、重复长度为固定bit长度,距离为可变bit长度。
CN201910675551.0A 2019-07-25 2019-07-25 一种网络层级地图数据的快速缓存方法 Active CN110427345B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910675551.0A CN110427345B (zh) 2019-07-25 2019-07-25 一种网络层级地图数据的快速缓存方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910675551.0A CN110427345B (zh) 2019-07-25 2019-07-25 一种网络层级地图数据的快速缓存方法

Publications (2)

Publication Number Publication Date
CN110427345A CN110427345A (zh) 2019-11-08
CN110427345B true CN110427345B (zh) 2023-02-03

Family

ID=68412376

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910675551.0A Active CN110427345B (zh) 2019-07-25 2019-07-25 一种网络层级地图数据的快速缓存方法

Country Status (1)

Country Link
CN (1) CN110427345B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102508888A (zh) * 2011-10-20 2012-06-20 福建四创软件有限公司 提高地图访问效率的文件压缩存储及索引方法
CN103631804A (zh) * 2012-08-24 2014-03-12 北京超图软件股份有限公司 电子地图的切图方法及处理系统
CN104267940A (zh) * 2014-09-17 2015-01-07 武汉狮图空间信息技术有限公司 一种基于cpu+gpu的地图切片的快速生成方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102508888A (zh) * 2011-10-20 2012-06-20 福建四创软件有限公司 提高地图访问效率的文件压缩存储及索引方法
CN103631804A (zh) * 2012-08-24 2014-03-12 北京超图软件股份有限公司 电子地图的切图方法及处理系统
CN104267940A (zh) * 2014-09-17 2015-01-07 武汉狮图空间信息技术有限公司 一种基于cpu+gpu的地图切片的快速生成方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
面向矢量瓦片的海量空间数据并行处理技术;李瀚等;《计算机与现代化》;20180915(第09期);全文 *

Also Published As

Publication number Publication date
CN110427345A (zh) 2019-11-08

Similar Documents

Publication Publication Date Title
US8838551B2 (en) Multi-level database compression
US9390098B2 (en) Fast approximation to optimal compression of digital data
TWI676903B (zh) 藉由從駐存在內容相關篩中之主要資料元件取得資料的資料之無損縮減
US8554561B2 (en) Efficient indexing of documents with similar content
US9015214B2 (en) Process of generating a list of files added, changed, or deleted of a file server
CN110678929A (zh) 用于高效压缩基因组序列读段的方法和系统
US20060036627A1 (en) Method and apparatus for a restartable hash in a trie
US20100114843A1 (en) Index Compression In Databases
JPWO2014109109A1 (ja) インデックスキー生成装置及びインデックスキー生成方法並びに検索方法
JP5978393B2 (ja) 計算機、記録媒体及びデータ検索方法
JP6726690B2 (ja) 基本データシーブを用いて無損失削減されたデータに対する多次元検索、コンテンツ連想的な取出し、ならびにキーワードベースの検索および取出しの実行
Ferragina et al. On the bit-complexity of Lempel--Ziv compression
CN108475508B (zh) 音频数据和保存在块处理存储系统中的数据的简化
TW202147787A (zh) 利用主要資料的局部性來有效率檢索已使用主要資料篩而被無損地縮減的資料
US7379940B1 (en) Focal point compression method and apparatus
JP7362481B2 (ja) ゲノムシーケンスデータをコード化する方法、コード化されたゲノムデータをデコード化する方法、ゲノムシーケンスデータをコード化するためのゲノムエンコーダ、ゲノムデータをデコードするためのゲノムデコーダ、及びコンピュータ読み取り可能な記録媒体
CN110427345B (zh) 一种网络层级地图数据的快速缓存方法
CN117235013A (zh) 一种基于人工智能的智慧档案管理方法
Shapira et al. In place differential file compression
JP2011175231A (ja) 地図データ
WO2009001174A1 (en) System and method for data compression and storage allowing fast retrieval
US20080215606A1 (en) Focal point compression method and apparatus
CN107688567B (zh) 一种索引存储方法及相关装置
Petri et al. Efficient indexing algorithms for approximate pattern matching in text
WO2010147454A1 (en) System and method of binary data storage and management in database management systems

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant