一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种针对大量多元异构的复杂下垫面空间数据的快速读取方法及接口与流程

2021-11-15 19:03:00 来源:中国专利 TAG:


1.本发明属于数据处理技术领域,特别涉及一种针对大量多元异构的复杂下垫面空间数据的快速读取方法及接口。


背景技术:

2.在台风巨灾模型中,台风风场模型是模型的重要环节。由于下垫面的复杂性,针对复杂下垫面典型特征,考虑地面高程、地形起伏和地貌变化,开发适合不同下垫面特征的台风风场模型对于研发台风巨灾模型至关重要。
3.然而,高精度的高程、地形、地貌数据体量相当庞大,因此业内通常分片存储其数据文件,如每100平方公里(或每1经纬度)存储到一个文件中。考虑复杂下垫面的大尺度的台风风场模型算法,在计算某地点风速时,往往需要考虑周围若干距离的高程、地形、地貌等数据。因其数据的分类、分片存储的原因,对风场的计算造成了极大的困难。
4.通常的做法往往是将分片存储的数据拼接成一个大文件,再将不同的数据(如高程、地形、地貌等)按空间位置进行融合。这将大大降低算法计算效率,并对内存、存储提出了更高的要求,往往需要使用超算才能完成计算任务


技术实现要素:

5.针对上述问题,本发明提供一种新的针对大量多元异构的复杂下垫面空间数据的快速读取方法及系统。
6.本发明具体技术方案如下:
7.本发明提供一种针对大量多元异构的复杂下垫面空间数据的快速读取方法,包括如下步骤:
8.s1:访问接口步骤,在外部程序访问分片数据时,获取参数形式的位置信息,所述位置信息包括经纬度信息;
9.s2:检索索引步骤,根据位置信息检索索引,在索引中检索对应的分片文件;
10.s3:读取文件步骤,根据经纬度信息读取检索到的分片文件中具体的多元异构的复杂下垫面空间数据,并将多元异构的复杂下垫面空间数据发送给外部程序。
11.一种针对大量多元异构的复杂下垫面空间数据的快速读取的接口,包括如下部分:
12.访问接口模块,用于在外部程序访问分片数据时,获取参数形式的位置信息,所述位置信息包括经纬度信息;
13.检索索引模块,用于根据位置信息检索索引,在索引中检索对应的分片文件;
14.读取文件模块,用于根据经纬度信息读取检索到的分片文件中具体的多元异构的复杂下垫面空间数据,并将多元异构的复杂下垫面空间数据发送给外部程序。
15.本发明的有益效果如下:
16.本发明提供一种新的针对大量多元异构的复杂下垫面空间数据的快速读取方法及接口,在外部程序访问分片数据时,通过参数形式将位置信息传递给统一文件接口,且根据位置信息检索索引,在索引中检索对应的分片文件,接着,根据经纬度信息读取检索到的分片文件中具体的多元异构的复杂下垫面空间数据,并将多元异构的复杂下垫面空间数据通过统一文件接口发送给外部程序,此时访问分片的数据时就像访问一个文件一样,既能节约大量的数据预处理工作,又能最大程度的保证数据读取的速度。
附图说明
17.图1为本发明中针对大量多元异构的复杂下垫面空间数据的快速读取方法的接口框图;
18.图2为本发明中针对大量多元异构的复杂下垫面空间数据的快速读取方法流程图;
19.图3为本发明中外部程序访问分片数据的结构框图;
20.图4为本发明中计算两个相邻地点的风速信息时分片数据的示意图;
21.图5为本发明中缓存文件的结构框图;
22.图6为本发明中步骤s2的流程图;
23.图7为本发明中文件读取顺序的示意图;
24.图8为本发明中步骤s21的流程图;
25.图9为本发明中步骤s22的流程图;
26.图10为本发明中矢量转换的结构框图;
27.图11为本发明中统一数据接口的结构框图;
28.图12为本发明中针对大量多元异构的复杂下垫面空间数据的快速读取的接口的结构框图。
具体实施方式
29.下面结合附图和以下实施例对本发明作进一步详细说明。
30.在一些实施例中,本发明提供一种针对大量多元异构的复杂下垫面空间数据的快速读取方法,如图2所示,包括如下步骤:
31.s1:访问接口步骤,外部程序访问分片数据时,获取参数形式的位置信息,所述位置信息包括经纬度信息;如图1所示,台风模型程序通过统一文件接口来访问数据,从台风模型程序的视角来看,数据不再是分片的零散文件,而是一个文件或者一个程序api。
32.s2:检索索引步骤,根据位置信息检索索引,在索引中检索对应的分片文件;以等经纬度分片的高程geotiff数据为例,经纬度分别为 (120.05,23.14)的点,其对应的数据必定在文件名为dem_120023.tiff的文件中
33.s3:读取文件步骤,根据经纬度信息读取检索到的分片文件中具体的多元异构的复杂下垫面空间数据,并将多元异构的复杂下垫面空间数据发送给外部程序。如图3所示,通过统一的文件接口,外部程序访问大量分片的高程数据(或地形、地貌数据)就像访问一个文件一样。例如,当检索(120.05,23.14)的点数据时,只需通过参数形式将位置信息传递给统一的文件接口。接口将根据步骤s2的方法,找到对应的分片文件,再根据经纬度信息读
取文件内具体的信息。
34.本发明提供一种新的针对大量多元异构的复杂下垫面空间数据的快速读取方法,在外部程序访问分片数据时,获取参数形式的位置信息,且根据位置信息检索索引,在索引中检索对应的分片文件,接着,根据经纬度信息读取检索到的分片文件中具体的多元异构的复杂下垫面空间数据,并将多元异构的复杂下垫面空间数据通过统一文件接口发送给外部程序,此时访问分片的数据时就像访问一个文件一样,既能节约大量的数据预处理工作,又能最大程度的保证数据读取的速度。
35.考虑到计算两个相邻地点的风速信息时,需要考虑的地形、地貌、高程数据有大量重复。例如图4中黑色点与灰色点,需要考虑的数据有相当的重复,即图4中黑色框与灰色框重复的部分。为了避免反复读取文件,而降低数据读取的速度,如图5、图6所示,本实施例中步骤s2包括如下步骤:
36.s21:将最近访问的文件放在内存中作为缓存文件;
37.s22:在接收到位置信息时,判断内存中是否有对应的缓存文件,若有,则直接向外部程序发送内存中相应的缓存文件,若没有,则根据位置信息检索索引,在索引中检索对应的分片文件。
38.当被需要计算的地点总是随机传递给统一文件接口时候,第5步方案将产生大量的缓存文件,或导致缓存总是被击穿。从而降低读取速度。为此,本发明中程序读取位置的顺序设计如下,以提高缓存的利用率:
39.如图7所示,本实施例中步骤s3中,当总是接收到外部访问程序随机发送的被需要计算地点的位置信息时,根据各地点的经纬度信息按照从左至右,从上至下的顺序读取文件内的多元异构的复杂下垫面空间数据。
40.由于考虑复杂下垫面的大尺度的台风风场模型算法将对大范围 (如全国或东南亚沿海区域)的位置点计算风速,随着程序的执行,缓存会快速增大,短时间超过普通计算机或者服务器内存。因此本发明提出了一种可配置缓存大小、考虑时间局部性的缓存机制来达到高效利用计算资源,又能提高缓存击中率的目的。其方法如下:
41.如图8所示,本实施例中步骤s21包括如下步骤:
42.s211:对内存中的缓存文件编制文件序号;
43.s212:将文件序号放入缓存队列中,且缓存队列的大小根据配置决定;
44.s213:当文件序号从缓存队列中移除时,将文件序号对应的文件从内存的缓存中移除。
45.本实施例中步骤s22中,在判断内存中是否有对应的缓存文件时,根据文件序号在缓存队列中查询,若缓存队列中有相应的文件序号,则内存中有对应的缓存文件并发送文件序号对应的缓存文件,若没有,则内存中没有对应的缓存文件。
46.考虑到多元数据的存储格式往往不一致,如高程信息往往是30米精度的栅格数据,然而土地占用性质等数据往往是矢量数据,为此,如图10所示,本发明在统一文件接口内,封装了栅格矢量转换组件。当发现缓存中无被查询点对应的文件缓存时,则从索引中查询栅格文件,如仍然无栅格文件时,则根据索引规则将指定区域的矢量信息转成栅格信息并缓存到内存中;具体内容如下:
47.本实施例中步骤s21还包括如下步骤:
48.s214:封装栅格矢量转换组件。
49.如图9所示,本实施例中步骤s32包括如下步骤:
50.s221:在内存中没有对应的缓存文件时,在索引中查询栅格文件;
51.s222:判断是否查询到栅格文件,若没有,则根据索引规则,通过栅格矢量转换组件,将指定区域的矢量信息转换成栅格信息形成栅格文件并发送至内存中作为缓存文件,并进行步骤s221。
52.台风风场模型往往需要考虑多元数据,如果高程数据、地形数据、地貌数据等。为此,如图11所示,本发明将为每一类数据建立一个统一数据接口。再在所有的文件接口外封装一个对外的统一文件接口。程序或者ui只需和最外层统一文件接口对接,最外层统一文件接口将返回给定位置的所有下垫面信息;具体内容如下所示:
53.本实施例中步骤s1包括如下步骤:
54.s11:在获取位置信息后,判断需要读取的数据类别;
55.s12:将位置信息发送至相应数据类别对应的统一数据接口。
56.另一实施例中,提供一种针对大量多元异构的复杂下垫面空间数据的快速读取的接口,如图12所示,包括如下部分:
57.访问接口模块,用于在外部程序访问分片数据时,获取参数形式的位置信息,所述位置信息包括经纬度信息;
58.检索索引模块,用于根据位置信息检索索引,在索引中检索对应的分片文件;
59.读取文件模块,用于根据经纬度信息读取检索到的分片文件中具体的多元异构的复杂下垫面空间数据,并将多元异构的复杂下垫面空间数据发送给外部程序。
60.本发明中的接口为开发的接口,为一个文件或者一个程序api。
61.本发明提供一种新的针对大量多元异构的复杂下垫面空间数据的快速读取的接口,在外部程序访问分片数据时,获取参数形式的位置信息,且根据位置信息检索索引,在索引中检索对应的分片文件,接着,根据经纬度信息读取检索到的分片文件中具体的多元异构的复杂下垫面空间数据,并将多元异构的复杂下垫面空间数据通过统一文件接口发送给外部程序,此时访问分片的数据时就像访问一个文件一样,既能节约大量的数据预处理工作,又能最大程度的保证数据读取的速度。
62.本实施例中所述检索索引模块包括如下部分:
63.缓存单元:用于将最近访问的文件放在内存中作为缓存文件;
64.判断管理单元:用于在接收到位置信息时,判断内存中是否有对应的缓存文件,若有,则直接向外部程序发送内存中相应的缓存文件,若没有,则根据位置信息检索索引,在索引中检索对应的分片文件。
65.本实施例的所述检索索引模块中,当总是接收到外部访问程序随机发送的被需要计算地点的位置信息时,根据各地点的经纬度信息按照从左至右,从上至下的顺序读取文件内的多元异构的复杂下垫面空间数据。
66.本实施例中所述缓存单元包括如下部分:
67.序号编制子模块:用于对内存中的缓存文件编制文件序号;
68.移动子模块:用于将文件序号放入缓存队列中,且缓存队列的大小根据配置决定;
69.移出子模块:用于当文件序号从缓存队列中移除时,将文件序号对应的文件从内
存的缓存中移除。
70.本实施例的判断管理单元中,在判断内存中是否有对应的缓存文件时,根据文件序号在缓存队列中查询,若缓存队列中有相应的文件序号,则内存中有对应的缓存文件并发送文件序号对应的缓存文件,若没有,则内存中没有对应的缓存文件。
71.本实施例中所述缓存单元还包括如下部分:
72.转换组件封装子模块:用于封装栅格矢量转换组件。
73.本实施例中判断管理单元包括如下部分:
74.栅格文件查询子模块:用于在内存中没有对应的缓存文件时,在索引中查询栅格文件;
75.转换子模块:用于判断是否查询到栅格文件,若没有,则根据索引规则,通过栅格矢量转换组件,将指定区域的矢量信息转换成栅格信息形成栅格文件并发送至内存中作为缓存文件,并向栅格文件查询子模块发送查询指令。
76.本实施例中所述访问接口模块包括如下部分:
77.类别判断单元,用于在获取位置信息后,判断需要读取的数据类别;
78.信息发送单元,用于将位置信息发送至相应数据类别对应的统一数据接口。
79.以上所述实施例仅仅是本发明的优选实施方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的技术方案作出的各种变形和改进,均应落入本发明的权利要求书确定的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献