用于国土空间规划的栅格数据管理方法、装置及存储介质与流程
未命名
09-24
阅读:52
评论:0
1.本技术涉及数据存储与检索技术领域,具体而言,本技术涉及一种用于国土空间规划的栅格数据管理方法、装置及存储介质。
背景技术:
2.在现有技术中,若将国土空间作为治理的对象,需要利用数字孪生,把物理国土空间映射成虚实相间的数字空间。而一套完整的数字孪生系统包括:一个物理实体,它生成关于其运作的实时数据,或使用传感器收集关于其周边活动的实时数据;一个该物理实体的3d模型;从物理实体到3d模型的实施数据流送;一个基于软件机制,根据收到的实施数据,使 3d模型的视觉表现与物理实体保持一致。
3.为了构建一个完整的数字孪生系统,所需要的技术最小要涵盖:大量的能实时监测并传输所针对研究对象各个属性的传感器;海量实时传感器数据的归集处理能力;精细化的三维建模技术;支撑海量模型即数据实时展示的平台。
4.但在现有技术中,使用关系型数据库来构建海量栅格数据实时展示的平台时,一方面,因为其关系、索引以及事务处理等原因,不能快速、灵活地访问海量栅格数据,系统横向扩展能力受限。
5.另一方面,在检索栅格数据时,虽然会设置缓存系统缓存一部分栅格数据,但受限于缓存系统本身的容量,不能缓存较多的栅格数据,往往还需要在底层数据库中,检索对应的栅格数据,进而导致检索栅格数据的效率不高。
技术实现要素:
6.本发明实施例提供一种克服上述问题或者至少部分地解决上述问题的用于国土空间规划的栅格数据管理方法、装置及存储介质。
7.第一方面,提供了一种用于国土空间规划的栅格数据管理方法,该方法包括:
8.接收检索请求,所述检索请求包括待检索区域的范围信息;
9.从预先构建的瓦片金字塔模型中确定预设层级的目标瓦片数据的存储索引信息,所述目标瓦片数据的经纬度信息对应所述待检索区域的范围信息,所述存储索引信息包括所述目标瓦片数据的层级和四叉树编码;所述四叉树编码是根据所述目标瓦片数据的层级、行号信息和列号信息确定的;
10.在服务端的第一缓存系统中检索与所述存储索引信息对应的目标瓦片数据;
11.其中,所述第一缓存系统中包括所述瓦片金字塔模型中除最底层瓦片数据以外的至少一层瓦片数据以及所述金字塔模型中任意一层的瓦片数据的存储路径信息。
12.在一个可能的实现方式中,所述在服务端的第一缓存系统中检索与所述预设索引信息对应的目标瓦片数据,之前包括:
13.根据所述存储索引信息在客户端的第二缓存系统中检索与所述存储索引信息对应的目标瓦片数据;
14.若未在客户端的第二缓存系统中检索到与所述存储索引信息对应的目标瓦片数据,则在第一缓存系统中检索与所述存储索引信息对应的目标瓦片数据。
15.在一个可能的实现方式中,所述在第一缓存系统中检索与所述存储索引信息对应的目标瓦片数据,之后包括:
16.若未在所述第一缓存系统中检索到与所述存储索引信息对应的目标瓦片数据,则获取与所述存储索引信息对应的目标瓦片数据的存储路径信息;
17.基于所述存储路径信息,在预设分布式存储系统中确定与所述存储路径信息对应的目标瓦片数据,并将所述目标瓦片数据返回客户端。
18.在一个可能的实现方式中,所述从预先构建的瓦片金字塔模型中确定预设层级的目标瓦片数据的存储索引信息,之前还包括:
19.获取原始栅格数据,并基于所述原始栅格数据构建包括至少两层瓦片层的瓦片金字塔模型;
20.将所述瓦片金字塔模型中每一层瓦片层划分出4n个正方形区域,使得所述每一层瓦片层中每一个正方形区域内的数据量不大于预设分布式存储系统的文件块的存储上限阈值,其中每一个正方形区域内的瓦片数据的数量保持一致,n为不小于0的整数;
21.将所述瓦片金字塔模型中每一层瓦片层的每一个正方形区域内的瓦片数据打包,形成瓦片打包文件;
22.确定任意一层瓦片层中正方形区域对应的层级和所述正方形区域在当前层级的行号信息和列号信息,以确定与所述正方形区域对应的四叉树编码;
23.根据与所述正方形区域对应的四叉树编码的字典序的顺序信息,将所述瓦片打包文件按顺序存储至所述预设分布式存储系统中。
24.在一个可能的实现方式中,所述将所述瓦片打包文件按顺序存储至所述预设分布式存储系统中,还包括:
25.确定所述瓦片金字塔模型的任意一层瓦片层的瓦片数据对应的层级和所述瓦片数据在当前层级的行号信息和列号信息,以确定与所述瓦片数据对应的四叉树编码;
26.将所述瓦片数据的层级和四叉树编码作为所述存储索引信息;
27.根据所述存储索引信息中的字典序的顺序信息,将所述瓦片打包文件中的所述瓦片数据按顺序进行存储。
28.在一个可能的实现方式中,所述对与所述存储索引信息对应的瓦片数据进行排序并存储至预设分布式存储系统中,之后包括:
29.获取所述瓦片数据在所述预设分布式存储系统中的存储路径信息;
30.建立第二键值对,所述第二键值对是以所述存储索引信息为键,以所述瓦片数据或所述存储索引信息对应的所述瓦片数据的存储路径信息为值,并将所述第二键值对存储至所述第一缓存系统中。
31.在一个可能的实现方式中,所述以所述瓦片数据或所述存储索引信息对应的所述瓦片数据的存储路径信息为值,包括:
32.若所述瓦片数据为所述瓦片金字塔模型的最底层数据,以所述瓦片数据的存储路径信息作为所述第二键值对的值;
33.若所述瓦片数据不是所述瓦片金字塔模型的最底层数据,以所述瓦片数据作为所
述第二键值对的值。
34.在一个可能的实现方式中,所述建立第二键值对,之前包括:
35.建立第一键值对,所述第一键值对是以所述存储索引信息为键,以所述存储索引信息对应的所述瓦片数据的存储路径信息为值,并将所述第一键值对存储至预设存储系统中。
36.第二方面,提供了一种栅格数据存取装置,该装置包括:
37.接收单元,用于接收检索请求,所述检索请求包括待检索区域的范围信息;
38.确定单元,用于从预先构建的瓦片金字塔模型中确定预设层级的目标瓦片数据的存储索引信息,所述目标瓦片数据的经纬度信息对应所述待检索区域的范围信息,所述存储索引信息包括所述目标瓦片数据的层级和四叉树编码,所述四叉树编码是根据所述目标瓦片数据的层级、行号信息和列号信息确定的;
39.检索单元,用于在服务端的第一缓存系统中检索与所述存储索引信息对应的目标瓦片数据;
40.其中,所述第一缓存系统中包括所述瓦片金字塔模型中除最底层瓦片数据以外的至少一层瓦片数据以及所述金字塔模型中任意一层的瓦片数据的存储路径信息。
41.第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现如第一方面所提供的方法的步骤。
42.第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的方法的步骤。
43.第五方面,本发明实施例提供一种计算机程序,该计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中,当计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行实现如第一方面所提供的方法的步骤。
44.本发明实施例提供的栅格数据存储方法、装置、电子设备及存储介质,通过结合分布式文件系统和分布式内存对象缓存系统实现空间栅格数据的高性能管理,提高空间栅格数据的存取性能和响应速度。
附图说明
45.为了更清楚地说明本技术实施例中的技术方案,下面将对本技术实施例描述中所需要使用的附图作简单地介绍。
46.图1为本技术实施例提供的一种用于国土空间规划的栅格数据管理方法的流程示意图;
47.图2为本技术实施例提供的一种瓦片金字塔模型的构建示意图;
48.图3为本技术实施例提供的一种为瓦片数据设置四叉树编码信息的示意图;
49.图4为本技术实施例提供的一种用于国土空间规划的栅格数据管理方法的流程示意图;
50.图5为本技术实施例提供的一种用于国土空间规划的栅格数据管理装置的结构示意图;
51.图6为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
52.下面详细描述本技术的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本技术,而不能解释为对本发明的限制。
53.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”和“该”也可包括复数形式。应该进一步理解的是,本技术的说明书中使用的措辞“包括”是指存在特征、整数、步骤、操作、元件和/ 或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
54.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
55.首先对本技术涉及的几个名词进行介绍和解释:在下文中提到的“第一”和“第二”只是为了区分下文中不同的缓存系统,而不是对缓存系统本身的数量进行限定。本技术提供的用于国土空间规划的栅格数据管理方法、装置、电子设备和计算机可读存储介质,旨在解决现有技术中存在技术问题。
56.下面以具体地实施例对本技术的技术方案以及本技术的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本技术的实施例进行描述。
57.如图1所示,本技术提供了一种用于国土空间规划的栅格数据管理方法,所述方法可以包括:
58.s101、接收检索请求,所述检索请求包括待检索区域的范围信息。
59.在本技术实施例中,客户端可以接收并根据用户的检索请求中的待检索区域的范围信息检索与之相关的地理信息,其中待检索区域的范围信息可以是某一地区的地区名称,也可以是在客户端的显示界面中的某一片区域对应的范围信息,还可以是经纬度信息,待检索区域的范围信息具体是何种形式,本技术对此不做具体限定,只要客户端能根据检索请求中带检索区域的范围信息进一步确定之后所需信息即可。
60.s102、从预先构建的瓦片金字塔模型中确定预设层级的目标瓦片数据的存储索引信息,所述目标瓦片数据的经纬度信息对应所述待检索区域的范围信息,所述存储索引信息包括所述目标瓦片数据的层级和四叉树编码,所述四叉树编码是根据所述目标瓦片数据的层级、行号信息和列号信息确定的。
61.在本技术的实施例中,根据用户的检索请求中待检索区域的范围信息,可以确定出当前待检索区域对应的分辨率的信息,基于分辨率的信息可以确定出带检索区域中瓦片对应的瓦片金字塔模型中的层级信息,确定瓦片所属的层级后,确定出瓦片在该层级下的坐标,坐标可以是瓦片在该瓦片层的行号信息和列号信息;基于瓦片的层级信息和行号信息以及列号信息可以确定出瓦片对应的四叉树编码,并将瓦片的层级信息和四叉树编码作
为存储索引信息。根据所述存储索引信息来检索与之相对应的瓦片数据。
62.在上述各实施例的基础上,作为一种可选的实施例,瓦片金字塔模型的每一层包含的瓦片数据都对应一个具体的地理范围,而这个地理范围可以是以经纬度信息来表示的,在接受用户的检索请求后,可以确定出待检索区域的范围信息,进而确定待检索区域对应的经纬度信息,根据所述经纬度信息来进一步帮助系统检索出与待检索区域对应的瓦片数据。
63.在上述各实施例的基础上,作为一种可选的实施例,客户端可以根检索请求中的待检索区域的范围信息首先确定出其对应的瓦片金字塔模型的名称,例如:可以基于武汉市和北京市的原始栅格数据构建两个不同的金字塔模型,基于河北省和湖北省的原始栅格数据构建两个不同的金字塔模型。确定出对应的瓦片金字塔模型时,还可以依据当前待检索区域的范围信息确定出当前检索区域对应的瓦片数据的三元组信息,所述三元组信息可以包括:瓦片数据的层级信息、瓦片数据的行号信息和瓦片数据的列号信息,根据三元组信息可以在一个瓦片金字塔模型中确定出唯一的瓦片数据。其中瓦片数据的层级信息可以根据当前客户端设置的地图分辨率信息来确定,瓦片数据的行号信息和列号信息可以认为是瓦片数据的坐标,基于当前层级信息可以获得当前在客户端显示界面中的带检索区域包含的瓦片数据对应的行号信息和列号信息。基于待检索区域中瓦片数据的层级信息和行号信息以及列号信息确定出于瓦片数据对应的四叉树编码,将层级信息和四叉树编码作为瓦片数据的存储索引信息,依据该存储索引信息检索与之对应的瓦片收据。
64.在上述各实施例的基础上,作为一种可选的实施例,检索请求中可以包含时间戳信息,即便是用一个区域对应的瓦片金字塔模型,在不同的时间段内,其瓦片金字塔模型中的数据可以是不同的,所以需要根据时间戳信息和范围信息确定出当前待检索区域对应的是具体哪一个时间段的哪一个位置的瓦片数据。
65.s103、在客户端的第一缓存系统中检索与所述存储索引信息对应的目标瓦片数据;其中,所述第一缓存系统中包括所述瓦片金字塔模型中除最底层瓦片数据以外的至少一层瓦片数据以及所述金字塔模型中任意一层的瓦片数据的存储路径信息。
66.在本技术的实施例中,根据瓦片数据的存储索引信息在第一缓存系统中检索与之相对应的瓦片数据,第一缓存系统可以是服务端缓存系统,其中第一缓存系统存储有瓦片金字塔模型中除最底层的原始栅格数据对应的瓦片层以外的任意一层的瓦片数据,具体包含多少层的瓦片数据,本技术对此不做具体限定,可以根据实际需求来进行设定,同时第一缓存系统也存储有瓦片金字塔模型中任意一层中的每一个瓦片数据的存储路径信息。
67.在上述实施例的基础上,作为一种可选的实施例,不同的瓦片金字塔模型对应的第一缓存系统可以不同,例如:北京市对应的瓦片金字塔模型中的瓦片数据的缓存系统与武汉市对应的瓦片金字塔模型中的瓦片数据的缓存系统不同。
68.在上述各实施例的技术上,作为一种可选的实施例,本技术的第一缓存系统可以是redis缓存系统。
69.进一步的,在第一缓存系统中检索与所述预设索引信息对应的目标瓦片数据,之前可以包括:
70.根据所述存储索引信息在客户端的第二缓存系统中检索与所述存储索引信息对应的目标瓦片数据。
71.在本技术的实施例中,第二缓存系统可以是客户端缓存系统,可以现在第二缓存系统中检索与存储索引信息对应的瓦片数据。
72.若未在客户端的第二缓存系统中检索到与所述存储索引信息对应的目标瓦片数据,则在第一缓存系统中检索与所述存储索引信息对应的目标瓦片数据。
73.在本技术的实施例中,若在第二缓存系统中检索到与存储索引信息对应的瓦片数据,则将瓦片数据返回至客户端;若未在第二缓存系统中检索到与存储索引信息对应的瓦片数据,则根据存储索引信息在第一缓存系统中检索与存储索引信息对应的目标瓦片数据。
74.在上述各实施的基础上,作为一种可选的实施例,本技术的第二缓存系统可以是redis缓存系统。
75.进一步的,在第一缓存系统中检索与所述存储索引信息对应的目标瓦片数据,之后可以包括:
76.若未在所述第一缓存系统中检索到与所述存储索引信息对应的目标瓦片数据,则获取与所述存储索引信息对应的目标瓦片数据的存储路径信息。
77.在本技术实施例中,若未能根据存储索引信息在第一缓存系统中检索到与存储索引信息对应的瓦片数据,则可以根据存储索引信息在第一缓存系统中,确定与存储索引信息对应的瓦片数据的存储路径信息。
78.基于所述存储路径信息,在预设分布式存储系统中确定与所述存储路径信息对应的目标瓦片数据,并将所述目标瓦片数据返回客户端。
79.在本技术实施例中,所述瓦片数据可以存储至预设的分布式存储系统中,所述分布式存储系统可以是hdfs,此时可以获取每一个瓦片数据的存储路径信息;第一缓存系统中存储有与所述存储索引信息对应的瓦片数据,根据存储索引信息可以确定出与存储索引信息对应的瓦片数据的存储路径信息,并依据该存储路径信息在预设的分布式存储系统中检索与之对应的瓦片数据,并将该瓦片数据返回给客户端。
80.具体的,所述从预先构建的瓦片金字塔模型中确定预设层级的目标瓦片数据的存储索引信息,之前还可以包括:
81.获取原始栅格数据,并基于所述原始栅格数据构建包括至少两层瓦片数据的金字塔模型。
82.在本技术实施例中,可以构建如图2所示的瓦片金字塔模型,其中 201可以为瓦片金字塔模型的第1层,202可以为瓦片金字塔模型的第2 层,203可以为瓦片金字塔模型的第3层,204对应原始栅格数据,第3 层203为瓦片金字塔模型的最底层,且第2层202的瓦片数据的数量是第 1层201的4倍,第3层203的瓦片数据的数量是第2层202的4倍。构建瓦片金字塔模型,首先需要获取原始栅格数据,并通过重采样的方法获得不同分辨率下的栅格数据;利用切边程序对每一个分辨率下的栅格数据进行切片,进而获得不同分辨率下的瓦片数据,而不同分辨率下的瓦片数据又构建成不同的瓦片层,根据瓦片数量从多到少,分辨率由高到低,一次堆叠瓦片层,其中相邻瓦片层的瓦片数量的关系可以是高层级的瓦片数量是较低层级瓦片数量的四倍。
83.将所述瓦片金字塔模型中每一层瓦片层划分出4n个正方形区域,使得所述每一层瓦片层中每一个正方形区域内的数据量不大于预设分布式存储系统的文件块的存储上限
阈值,其中每一个正方形区域内的瓦片数据的数量保持一致,n为不小于0的整数。
84.在本技术的实施例中,在基于原始栅格数据构建好瓦片金字塔模型后,需要将瓦片金字塔模型中的每一个瓦片存储至预设的分布式存储系统中,而这个预设的分布式存储系统可以使hdfs,而分布式存储系统在存储时是以文件块的形式进行存储,且文件块对应存在一个存储上限阈值,即文件块中的数据量不得超过所述存储上限阈值,以hdfs为例,则其文件块的存储上线阈值为128m。每一层瓦片层划分的区域的个数除了和区域内的数据量有关系,也可以由当前瓦片层的数据量来决定,例如:若当前瓦片层的数据量不大于128m时,则将该瓦片层作为一个整体区域,将该瓦片层的所有瓦片数据进行打包,获得瓦片打包文件,并将该瓦片打包文件存储于hdfs中;若当前瓦片层的数据量不小于128m且不大于512m,则将当前瓦片层划分为4个区域,每一个区域内的瓦片数据的数量一致,将每一个区域内的瓦片数据进行打包,作为一个瓦片打包文件,即可以获得4个瓦片打包文件,将这4个瓦片打包文件存储至hdfs中;若当前瓦片层的数据量不小于512m且不大于2048m,则将当前瓦片层划分为16 个区域,每一个区域内的瓦片数据的数量一致,将每一个区域内的瓦片数据进行打包,作为一个瓦片打包文件,即可以获得16个瓦片打包文件,将这16个瓦片打包文件存储至hdfs中
…
即当瓦片层的数据量是在 (0,128m)之间,则将瓦片层作为一整个区域,并对区域内的瓦片数据进行打包,获得瓦片打包文件;若当前瓦片层的数据量是在 (32
×4m-1
m,32
×4m
m)之间,则将当前瓦片层划分为4m个区域,每一个区域的瓦片数据的数量保持一致,其中m为不小于2的整数,对每一个区域的瓦片数据进行打包,获得瓦片打包文件,并将瓦片打包文件存储至hdfs中。在存储瓦片打包文件时,将瓦片打包文件的存储索引信息的字典序作为排序依据,并将排序后的瓦片打包文件存储至hdfs中。在上述实施例的基础上,作为一种可选的实施例,若本技术的瓦片金字塔模型中瓦片层中的单个瓦片数据量大于32m但不大于128m,则不适用于本技术上述实施例中提到的存储策略,需将每一个瓦片数据单独作为打包文件进行存储;若瓦片金字塔模型中瓦片层中的单个瓦片数据量大于128m,则不适用于本技术记载的技术方案。
85.将所述瓦片金字塔模型中每一层瓦片层的每一个正方形区域内的瓦片数据打包,形成瓦片打包文件。
86.在本技术实施例中,所述瓦片金字塔模型中每一个区域内的所有瓦片数据都会进行打包,即作为一个集合,形成瓦片打包文件,并将瓦片打包文件存储至预设分布式存储系统的文件块中。
87.确定任意一层瓦片层中正方形区域对应的层级和所述正方形区域在当前层级的行号信息和列号信息,以确定与所述正方形区域对应的四叉树编码。
88.在本技术的实施例中,在对所述瓦片金字塔模型进行区域划分时,可以依据瓦片在当前瓦片层的层级信息、行号信息和列号信息确定出划分区域的层级信息、行号信息和列号信息,例如将瓦片金字塔模型的第4层划分了4个区域,每一个区域又包含有多个瓦片数据,根据从上到下、从左到右的方式为其设置x轴与y轴,进而确定每一个区域的行号信息和列号信息,例如:区域1的行号信息和列号信息即坐标可以为(0,0),区域2 的行号信息和列号信息即坐标可以为(0,1)
…
根据每一个区域的层级信息、行号信息和列号信息,进而可以唯一确定出与每一个区域对应的四叉树编码。
89.根据与所述正方形区域对应的四叉树编码的字典序的顺序信息,将所述瓦片打包
文件按顺序存储至所述预设分布式存储系统中。
90.在本技术的实施例中,预设的分布式存储系统是以文件块的形式进行存储,文件块的存储也需要按照一定的顺序进行存储,进而使得空间位置上邻近的区域,在存储时也邻近存储。例如:所述瓦片金字塔模型的第4 层划分了16个区域,从左到右,从上到下,依次为区域1、区域2、区域 3
…
区域16,其中区域1位于整个瓦片层的左上角,区域16位于整个瓦片层的右下角,而区域1对应的行号信息和列号信息即坐标为(0,0),区域2为(0,1),区域3为(0,2),区域4为(0,3),区域5为(1,0),区域6为(1,1)
…
区域1、区域2、区域5和区域6为空间位置上邻近的四个区域,如果按照每一区域对应的行号信息和列号信息进行存储时,根据每一个区域的坐标的ascii值对其进行排序,即根据其字典序的顺序信息进行排序,则会使得区域1、区域2、区域3和区域4在存储时邻近存储,所以需要对其进行编码,编码的方式可以使用瓦片数据的四叉树编码方案来进行,即可以将区域1的编码为00,区域2的编码为01,区域5 的编码为02,区域6的编码为03,根据每一个区域对应的编码的ascii 值对其进行排序,并将区域按所述顺序存储至预设分布式存储系统中,即可使得区域1、区域2、区域5和区域6在存储时邻近存储。
91.具体的,所述将所述瓦片打包文件按顺序存储至所述预设分布式存储系统中,还可以包括:
92.确定任意一层瓦片数据对应的层级和所述瓦片数据在当前层级的行号信息和列号信息,以确定与所述瓦片数据对应的四叉树编码。
93.在本技术实施例中,每一个瓦片数据均可以由其所在层级和所在层级的行号信息和列号信息唯一确定,基于瓦片数据的层级信息和行号信息以及列号信息可以确定出与所述瓦片数据对应的四叉树编码。
94.将所述瓦片数据的层级和四叉树编码作为所述存储索引信息。
95.在本技术实施例中,将瓦片数据的层级信息和其对应的四叉树编码作为存储索引信息,依据该存储索引信息存储与之对应的瓦片数据。
96.根据所述存储索引信息中的字典序的顺序信息,将所述瓦片打包文件中的所述瓦片数据按顺序进行存储。
97.在本技术的实施例中,预设的分布式存储系统可以是hdfs,而hdfs 系统在存储数据时可以以文件块的形式进行存储,单个文件块的最大存储量为128m,而瓦片金字塔模型的最底层瓦片数据对应原始栅格数据,瓦片金字塔的瓦片层离最底层越远,对应瓦片层的数据量就越小,所以本技术提供一种存储策略,对瓦片金字塔模型的每一个瓦片层进行区域划分,可也以划分4的n次方个区域,其中,n为不小于0的整数,且每一个划分好的区域内的瓦片数据的数量是一致的,且每一个划分后的区域的数据量不大于第一预设阈值也即128m;在此存储策略下,每一个瓦片层都包含有数个区域,进一步的,我们可以确定出每一个区域在该瓦片金字塔模型下的三元组信息即层级信息、行号信息和列号信息,基于每一区域的三元组信息,进而可以确定出与之相对应的四叉树编码,将每一个区域内的瓦片数据进行打包,形成相应的瓦片打包文件,则每一个瓦片打包文件都唯一对应一个四叉树编码,将瓦片打包文件的层级信息和瓦片打包文件对应的四叉树编码作为瓦片打包文件的存储索引信息,该存储索引信息可以是以字符串的形式出现,进而可以根据存储索引信息的字符串的字典序对其进行排序,而每一个存储索引信息都对应唯一一个瓦片打包文件,根
据存储索引信息的顺序来对瓦片打包文件进行排序并存储至hdfs中,使得空间位置上邻近的瓦片打包文件,在存储时也邻近存储。
98.在上述实施例的基础上,作为一种可选的实施例,如图3所示,本技术使用的四叉树编码按如下方式进行构造,例如:瓦片栅格金字塔模型中包含两个瓦片层,从上到下分别是第1层和第2层,第0层将该分辨率下的栅格数据切分成4个瓦片数据,并将这4个瓦片数据标识为0、1、2和 3,每个瓦片数据在该层级下的行号信息和列号信息即坐标为(0,0)、(0,1)、 (1,1)和(1,2),由于瓦片层的分辨率不同但是每个瓦片层对应的地理范围是一致的,且第2层的瓦片的数量是第1层的4倍,也即在第1层划分的4个瓦片数据,在第2层可以划分为16个瓦片数据,而第1层的每一个瓦片数据对应第2层的4个瓦片数据,并将这4个对应的瓦片数据按照第 0层的编码方式进行标识,可以标识为00、01、02和03,而这4个瓦片数据在当前层的坐标分别为(0,0)、(0,1)、(1,0)和(1,1)以此类推,可以获得第2层每个瓦片数据对应的标识,同时依据瓦片层的层级信息和确定的每个瓦片数据的标识,则可以唯一确定出每个瓦片数据的四叉树编码。如果不对瓦片数据进行重新编码,则对第2层的瓦片数据进行排列时,会将坐标为(0,0)、(0,1)、(0,2)和(0,3)的瓦片数据排列在一起,而无法使得空间位置上邻近的坐标为(0,0)、(0,1)、(1,0)和(1,1) 的瓦片数据,在存储时也邻近存储,所以将每个瓦片数据进行按照四叉树编码规则对瓦片数据的坐标和层级信息进行编码,并将瓦片数据的四叉树编码和层级构成的存储索引信息的字典序作为排序依据,按顺序对瓦片数据进行存储,进而使得空间位置上邻近的瓦片数据在存储时也邻近存储。
99.其中,存储索引信息可以是以字符串的形式出现,而字典序是一种字符串的排序方法,且每一个存储索引信息对应的唯一的瓦片数据,所以对存储索引信息按照字典序进行排序时,也就间接存储索引信息对应的瓦片数据按照一定的顺序进行排列。例如:在图3中,第2层瓦片层坐标为(0,0) 的存储索引信息可以是2_00,坐标为(0,1)的存储索引信息可以是2_01,坐标为(1,0)的存储索信息为2_02,坐标为(1,1)的存储索引信息为2_03
…
根据存储索引信息的字符串从左到右第一个不同字符的ascii值的大小关系,对其进行排序,并根据排序后的结果,将与存储索引信息对应的瓦片数据按顺序进行存储。至于四叉树编码的具体形式,本技术对比不做具体限定。
100.在上述各实施例的基础上,作为一种可选的实施例,本技术在构建瓦片金字塔模型时,不仅基于不同的地域对应的原始栅格数据构建瓦片金字塔模型,也可以根据同一地域不同的时间段内的对应的原始栅格数据构建瓦片金字塔模型,即对于同一地域而言,可以有多个版本的瓦片金字塔模型,在获取用户的检索请求后,可以根据用户的请求信息确定待检索区域对应的具体时间段下的瓦片金字塔模型。
101.具体的,所述对与所述存储索引信息对应的瓦片数据进行排序并存储至预设分布式存储系统中,之后可以包括:
102.获取所述瓦片数据在所述预设分布式存储系统中的存储路径信息。
103.在本技术实施例中,将瓦片数据存储至预设分布式存储系统中时,可以获得每一个瓦片数据的存储路径信息。每一个存储路径信息都可以指向唯一的瓦片数据。
104.建立第二键值对,所述第二键值对是以所述存储索引信息为键,以所述瓦片数据或所述存储索引信息对应的所述瓦片数据的存储路径信息为值,并将所述第二键值对存储至所述第一缓存系统中。
105.在本技术实施例中,建立第二键值对,其中第二键值对是以存储索引信息为键,即以每一个瓦片数据的层级信息和每一个瓦片数据的四叉树编码作为第二键值对的键;以每一个瓦片数据对应的存储路径信息或每一个瓦片数据本身为值,并将第二键值对存储至第一缓存系统中。
106.具体的,以所述瓦片数据或所述存储索引信息对应的所述瓦片数据的存储路径信息为值,可以包括:
107.若所述瓦片数据为所述瓦片金字塔模型的最底层数据,以所述瓦片数据的存储路径信息作为所述第二键值对的值;
108.若所述瓦片数据不是所述瓦片金字塔模型的最底层数据,以所述瓦片数据作为所述第二键值对的值。
109.在本技术的实施例中,服务端的第一缓存系统可以是redis缓存系统,考虑到redis缓存系统本身的容量问题,且考虑到瓦片金字塔模型中最底层的瓦片数据为原始栅格数据,占整个金字塔模型数据量的一大半,所以在构建第二键值对时,若瓦片金字塔模型包括至少n层瓦片数据,且最底层也即第0层对应为原始栅格数据,将瓦片金字塔模型的第1层到第n层的瓦片数据进行byte字节流转换,并将其作为第二键值对的值;获取瓦片金字塔模型第0层或第n+i层的瓦片数据的存储路径信息,并将其作为第二键值对的值。其中n与i均为不小于1的整数,n为redis缓存系统可以缓存瓦片金字塔模型中的瓦片数据的最高层数。
110.在上述实施例的基础上,作为一种可选的实施例,第一缓存系统即服务端缓存系统在缓存瓦片金字塔模型的瓦片数据时,可以从最低分辨率的瓦片层进行缓存,直至达到第一缓存系统的缓存上限,也可以从与最底层瓦片数据的相邻层级进行缓存,缓存瓦片数据量的具体层数,本技术对比不做具体限定,只要将为缓存的瓦片数据对应的存储路径信息也缓存至第一缓存系统即可。
111.进一步的,所述建立第二键值对,之前可以包括:
112.建立第一键值对,所述第一键值对是以所述存储索引信息为键,以所述存储索引信息对应的所述瓦片数据的存储路径信息为值,并将所述第一键值对存储至预设存储系统中。
113.在本技术实施例中,在建立第二键值对之前,还需建立第一键值对来存储每一个瓦片数据的存储路径信息,具体的,可以是以每一个瓦片数据对应的存储索引信息为键,以每一个存储索引信息对应的瓦片数据的存储路径信息为值,来构建第一键值对,并将其存储至预设存储系统中。
114.在上述实施例的基础上,作为一种可选的实施例,本技术的预设存储系统可以是hbase存储系统。
115.在上述各实施例的基础上,作为一种可选的实施例,本技术在存储瓦片数据的存储路径信息时,也可以依据瓦片数据的存储索引信息的字典序的顺序信息,对于存储索引信息对应的存储路径信息进行排序并进行存储,是的空间位置上邻近的瓦片数据,其对应的瓦片数据的存储路径信息也临近存储。
116.在上述各实施例的基础上,作为一种可选的实施例,如图4所示,本技术还提供了一种用于国土空间规划的栅格数据管理方法,首先获取原始栅格数据,基于原始栅格数据
构建瓦片金字塔模型,并对瓦片金字塔模型中的瓦片数据进行编码,并基于瓦片数据的层级信息和编码构建第一键值对,将第一键值对和瓦片金字塔模型的瓦片数据存储至服务器端底层数据库中,同时基于第一键值对和瓦片数据的编码,构建第二键值对,并将第二键值对存储至服务端缓存系统中,此外还需保证服务端缓存系统中缓存的数据和服务端底层数据库的数据信息保持一致性;客户端发起请求信息,根据请求信息,确定出瓦片数据的存储索引信息,依据该存储索引信息在客户端缓存中检索相应的瓦片数据,若成功检索到相应的瓦片数据,则将相应的瓦片数据返回给客户端,若未能检索到相应的瓦片数据,则根据存储索引信息在服务端检索相应的瓦片数据,若检索到相应的瓦片数据,则更新客户端缓存,并将瓦片数据返回至客户端,若未能检索到相应的瓦片数据,则检索与存储索引信息对应的瓦片数据的存储路径信息,并基于该存储路径信息在服务端底层数据库中检索相应数据或者基于存储索引信息在服务端底层数据库中进行检索,若能检索到相应的瓦片数据,则将瓦片数据返回至客户端并更新服务端缓存和客户端缓存;若未能在底层数据库中检索到相应的瓦片数据,则返回错误信息至客户端。
117.在上述各实施例的基础上,作为一种可选的实施例,本技术在预设分布式存储系统与第一缓存系统和第二缓存之间设置了系统保持一致性更新原则,具体的,可以采用writeahead-log(wbl),即写前日志协议,来保证第一缓存系统和第二缓存系统与分布式存储系统中的数据保持一致性。
118.本技术实施例提供了一种栅格数据存取装置,如图5所示,该装置可以包括:接收单元301,确定单元302,检索单元303。
119.具体地:
120.接收单元301,用于接收检索请求,所述检索请求包括待检索区域的范围信息;
121.确定单元302,用于从预先构建的瓦片金字塔模型中确定预设层级的目标瓦片数据的存储索引信息,所述目标瓦片数据的经纬度信息对应所述待检索区域的范围信息,所述存储索引信息包括所述目标瓦片数据的层级和四叉树编码,所述四叉树编码是根据所述目标瓦片数据的层级、行号信息和列号信息确定的;
122.检索单元303,用于在客户端的第一缓存系统中检索与所述存储索引信息对应的目标瓦片数据;
123.本发明实施例提供的栅格数据存取装置,具体执行上述方法实施例流程,具体请详见上述栅格数据检索方法实施例的内容,在此不再赘述。本发明实施例提供的栅格数据存取装置,通过结合分布式文件系统和分布式内存对象缓存系统实现空间栅格数据的高性能管理,提高空间栅格数据的存取性能和响应速度。
124.本技术实施例中提供了一种电子设备,该电子设备包括:存储器和处理器;至少一个程序,存储于存储器中,用于被处理器执行时,与现有技术相比可实现:通过结合分布式文件系统和分布式内存对象缓存系统实现空间栅格数据的高性能管理,提高空间栅格数据的存取性能和响应速度,更加方便、高效地对国土空间规划中的栅格数据进行管理。
125.在一个可选实施例中提供了一种电子设备,如图6所示,图6所示的电子设备4000包括:处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。可选地,电子设备4000还可以包括收发器4004。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本技术实施例的限定。
126.处理器4001可以是cpu(central processing unit,中央处理器),通用处理器,dsp(digital signal processor,数据信号处理器),asic (application specific integrated circuit,专用集成电路),fpga(fieldprogrammable gate array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本技术公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001 也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp 和微处理器的组合等。
127.总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是pci(peripheral component interconnect,外设部件互连标准)总线或 eisa(extended industry standard architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
128.存储器4003可以是rom(read only memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,ram(random accessmemory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是eeprom(electrically erasable programmable read onlymemory,电可擦可编程只读存储器)、cd-rom(compact disc readonlymemory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
129.存储器4003用于存储执行本技术方案的应用程序代码,并由处理器 4001来控制执行。处理器4001用于执行存储器4003中存储的应用程序代码,以实现前述方法实施例所示的内容。
130.本技术实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。与现有技术相比,通过结合分布式文件系统和分布式内存对象缓存系统实现空间栅格数据的高性能管理,提高空间栅格数据的存取性能和响应速度更加方便、高效地对国土空间规划中的栅格数据进行管理。
131.本技术实施例提供了一种计算机程序,该计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中,当计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行如前述方法实施例所示的内容。与现有技术相比,通过结合分布式文件系统和分布式内存对象缓存系统实现空间栅格数据的高性能管理,提高空间栅格数据的存取性能和响应速度,更加方便、高效地对国土空间规划中的栅格数据进行管理。
132.应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他
步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
133.以上仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
技术特征:
1.一种用于国土空间规划的栅格数据管理方法,其特征在于,所述方法包括:接收检索请求,所述检索请求包括待检索区域的范围信息;从预先构建的瓦片金字塔模型中确定预设层级的目标瓦片数据的存储索引信息,所述目标瓦片数据的经纬度信息对应所述待检索区域的范围信息,所述存储索引信息包括所述目标瓦片数据的层级和四叉树编码所述四叉树编码是根据所述目标瓦片数据的层级、行号信息和列号信息确定的;在服务端的第一缓存系统中检索与所述存储索引信息对应的目标瓦片数据;其中,所述第一缓存系统中包括所述瓦片金字塔模型中除最底层的瓦片数据以外的至少一层瓦片层的瓦片数据以及所述金字塔模型中任意一层瓦片层的瓦片数据的存储路径信息。2.根据权利要求1所述的用于国土空间规划的栅格数据管理方法,其特征在于,所述在服务端的第一缓存系统中检索与所述预设索引信息对应的目标瓦片数据,之前包括:根据所述存储索引信息在客户端的第二缓存系统中检索与所述存储索引信息对应的目标瓦片数据;若未在客户端的第二缓存系统中检索到与所述存储索引信息对应的目标瓦片数据,则在所述服务端的第一缓存系统中检索与所述存储索引信息对应的目标瓦片数据。3.根据权利要求1所述的用于国土空间规划的栅格数据管理方法,其特征在于,所述在服务端的第一缓存系统中检索与所述存储索引信息对应的目标瓦片数据,之后包括:若未在所述服务端的第一缓存系统中检索到与所述存储索引信息对应的目标瓦片数据,则获取与所述存储索引信息对应的目标瓦片数据的存储路径信息;基于所述存储路径信息,在预设分布式存储系统中确定与所述存储路径信息对应的目标瓦片数据,并将所述目标瓦片数据返回客户端。4.根据权利要求1所述的用于国土空间规划的栅格数据管理方法,其特征在于,所述从预先构建的瓦片金字塔模型中确定预设层级的目标瓦片数据的存储索引信息,之前还包括:获取原始栅格数据,并基于所述原始栅格数据构建包括至少两层瓦片层的瓦片金字塔模型;将所述瓦片金字塔模型中每一层瓦片层划分出4
n
个正方形区域,使得所述每一层瓦片层中每一个正方形区域内的数据量不大于预设分布式存储系统的文件块的存储上限阈值,其中每一个正方形区域内的瓦片数据的数量保持一致,n为不小于0的整数;将所述瓦片金字塔模型中每一层瓦片层的每一个正方形区域内的瓦片数据打包,形成瓦片打包文件;确定任意一层瓦片层中正方形区域对应的层级和所述正方形区域在当前层级的行号信息和列号信息,以确定与所述正方形区域对应的四叉树编码;根据与所述正方形区域对应的四叉树编码的字典序的顺序信息,将所述瓦片打包文件按顺序存储至所述预设分布式存储系统中。5.根据权利要求4所述的用于国土空间规划的栅格数据管理方法,其特征在于,所述将所述瓦片打包文件按顺序存储至所述预设分布式存储系统中,还包括:确定所述瓦片金字塔模型的任意一层瓦片层的瓦片数据对应的层级和所述瓦片数据
在当前层级的行号信息和列号信息,以确定与所述瓦片数据对应的四叉树编码;将所述瓦片数据的层级和四叉树编码作为所述存储索引信息;根据所述存储索引信息中的字典序的顺序信息,将所述瓦片打包文件中的所述瓦片数据按顺序进行存储。6.根据权利要求4所述的用于国土空间规划的栅格数据管理方法,其特征在于,所述对与所述存储索引信息对应的瓦片数据进行排序并存储至预设分布式存储系统中,之后包括:获取所述瓦片数据在所述预设分布式存储系统中的存储路径信息;建立第二键值对,所述第二键值对是以所述存储索引信息为键,以所述瓦片数据或所述存储索引信息对应的所述瓦片数据的存储路径信息为值,并将所述第二键值对存储至所述第一缓存系统中。7.根据权利要求5所述的用于国土空间规划的栅格数据管理方法,其特征在于,所述以所述瓦片数据或所述存储索引信息对应的所述瓦片数据的存储路径信息为值,包括:若所述瓦片数据为所述瓦片金字塔模型的最底层数据,以所述瓦片数据的存储路径信息作为所述第二键值对的值;若所述瓦片数据不是所述瓦片金字塔模型的最底层数据,以所述瓦片数据作为所述第二键值对的值。8.根据权利要求5所述的用于国土空间规划的栅格数据管理方法,其特征在于,所述建立第二键值对,之前包括:建立第一键值对,所述第一键值对是以所述存储索引信息为键,以所述存储索引信息对应的所述瓦片数据的存储路径信息为值,并将所述第一键值对存储至预设存储系统中。9.一种用于国土空间规划的栅格数据管理装置,其特征在于,包括:接收单元,用于接收检索请求,所述检索请求包括待检索区域的范围信息;确定单元,用于从预先构建的瓦片金字塔模型中确定预设层级的目标瓦片数据的存储索引信息,所述目标瓦片数据的经纬度信息对应所述待检索区域的范围信息,所述存储索引信息包括所述目标瓦片数据的层级和四叉树编码,所述四叉树编码是根据所述目标瓦片数据的层级、行号信息和列号信息确定的;检索单元,用于在服务端的第一缓存系统中检索与所述存储索引信息对应的目标瓦片数据;其中,所述第一缓存系统中包括所述瓦片金字塔模型中除最底层瓦片数据以外的至少一层瓦片数据以及所述金字塔模型中任意一层的瓦片数据的存储路径信息。10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至8任一项所述用于国土空间规划的栅格数据管理方法的步骤。11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至8中任意一项所述用于国土空间规划的栅格数据管理方法的步骤。
技术总结
本申请提供了一种用于国土空间规划的栅格数据管理方法、装置及存储介质,涉及栅格数据存储与检索技术领域。该方法包括:接收检索请求,所述检索请求包括待检索区域的范围信息:从预先构建的瓦片金字塔模型中确定预设层级的目标瓦片数据的存储索引信息,所述目标瓦片数据的经纬度信息对应所述待检索区域的范围信息,所述存储索引信息包括所述目标瓦片数据的层级和四叉树编码;在服务端的第一缓存系统中检索与所述存储索引信息对应的目标瓦片数据。本申请能够通过结合分布式文件系统和分布式内存对象缓存系统实现空间栅格数据的高性能管理,提高空间栅格数据的存取性能和响应速度,更加方便、高效地对国土空间规划中的栅格数据进行管理。格数据进行管理。格数据进行管理。
技术研发人员:陈菡 余文富 魏强 欧翔 刘荣虎 丁力 赵嘉伟 徐进
受保护的技术使用者:北京天耀宏图科技有限公司
技术研发日:2022.03.14
技术公布日:2023/9/23
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/