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

一种基于五层十五级遥感瓦片数据的分层分块组织方法与流程

2022-05-18 04:51:02 来源:中国专利 TAG:


1.本发明属于遥感瓦片数据领域,具体涉及一种基于五层十五级遥感瓦片数据的分层分块组织方法。


背景技术:

2.随着五层十五级分层层级的降低,每张瓦片覆盖范围就会变小,遥感影像数据在该层级下需要切分而成的瓦片数据块总数会出现指数型增长,从而产生不可估量的瓦片小文件。由于目前遥感影像系统大多采用分布式文件存储系统,而分布式文件存储系统基本面向大文件的存储,对于海量小文件的存储性能优化上研究有限。为了使gcf数据能够在分布式文件系统上实现高效的存储与访问,根据传统存储设备的数据读写原理,将其进行分层分块组织,形成大数据集文件。
3.gcf数据分层分块组织模型基于分布式文件系统的存储特点,解决了海量小文件或数据块容易导致分布式文件系统的访问效率低下的问题,通过瓦片数据块的唯一编码和二级索引,用户能够快速获取目标区域的五层十五级遥感瓦片数据。


技术实现要素:

4.本发明的目的是克服现有的不足,提供一种基于五层十五级遥感瓦片数据的分层分块组织方法。
5.为实现本发明目的,提供的技术方案如下:
6.一种基于五层十五级遥感瓦片数据的分层分块组织方法,它的步骤如下:
7.s1:针对所有待切片的遥感影像,分布式系统的主节点首先对其影像切片任务进行划分,将不同遥感影像的切片任务分配到切片任务集群的不同节点上,每一个切片节点均独立针对单幅遥感影像的切片任务进行分布式多线程并行切片,待所有遥感影像的切片任务均执行完毕后,得到五层十五级遥感瓦片数据;
8.所述分布式多线程并行切片基于层次归类划分法和排队轮询法实现,首先按照层次归类划分法读取当前切片节点分配到的单幅遥感影像的切片任务,将切片任务中所有需切分的目标瓦片级按照五层十五级的层级划分标准进行分类,将隶属于同一瓦片层的所有瓦片级归为同一类别,然后取出所有类别中各自包含的最高瓦片级分别建立第一优先级的切片任务单元,所有第一优先级的切片任务单元并行通过排队轮询法进行切片任务,当所有第一优先级的切片任务单元均完成切片任务后再将每一类别中的剩余瓦片级各自建立第二优先级的切片任务单元,所有第二优先级的切片任务单元并行通过排队轮询法进行切片任务,最终完成单幅遥感影像中所有目标瓦片级的切片工作;所述排队轮询法执行时,先确定每一个切片任务单元中影像需被切分的瓦片数量,再将这些瓦片的切片任务进行编号和排序以形成任务队列,线程池中的不同线程按照任务队列中的任务排序依次认领瓦片切片任务并执行,每一个线程执行完一个瓦片的切片任务后再按序从任务队列中认领新的任务,直至切片任务单元中所有的瓦片均完成切片;
9.s2:针对s1中得到的五层十五级遥感瓦片数据,对每一张瓦片按照其所处的瓦片级和行列号进行编码;
10.s3:基于s2中获得的每一张瓦片的编码构建两级索引,使用分层分块组织模型实现五层十五级遥感瓦片数据的分层分块组织。
11.作为优选,所述s1的具体实现步骤如下:
12.s11:主节点接收所有待切片的遥感影像的切片请求后,创建切片任务列表,并向kafka集群提交切片任务列表中的切片任务;
13.s13:kafka集群接收到切片任务后将切片任务缓存,并根据均衡策略存储到不同分区(partition)中,每个切片任务对应于单幅遥感影像的切片;
14.s14:切片任务集群中的各个切片节点(consumer)通过与kafka建立的长连接,不断从不同分区中按次序拉取切片任务进行执行,且不同切片节点分配到的分区不同,相互之间互不干扰,并行执行不同的切片任务;每一个切片节点均独立针对拉取到的单幅遥感影像的切片任务基于层次归类划分法和排队轮询法进行所述分布式多线程并行切片,切片过程中每一张瓦片生成的瓦片数据块输出到空瓦片文件中,并存储至分布式文件系统中;
15.s15:kafka集群中缓存的所有切片任务均完成后,通知主节点已完成待所有遥感影像的切片任务,并在分布式文件系统中得到五层十五级遥感瓦片数据。
16.作为优选,所述s14中,切片任务集群中的各个切片节点按照消息接收的先后顺序从kafka集群的不同分区中拉取切片任务。
17.作为优选,所述s14中,每一个切片节点拉取到单幅遥感影像的切片任务后,首先读取影像元数据信息,然后根据元数据信息中的投影坐标判断其投影坐标系是否为目标坐标系,若不是目标坐标系则将其进行投影转换形成目标坐标系下的遥感影像,然后再加载目标坐标系下的遥感影像数据,读取影像的空间范围、波段以及需切分的目标瓦片级,最后基于层次归类划分法和排队轮询法进行所述分布式多线程并行切片。
18.作为优选,所述的目标坐标系为wgs84坐标系。
19.作为优选,所述影像元数据信息包括影像波段数、影像大小和投影坐标。
20.作为优选,所述切片任务集群中每一个切片节点均通过调用gdal库来实现影像的切片。
21.作为优选,所述最高瓦片级为f、c、9、6、3这五个瓦片级中的一个。
22.作为优选,所述s2中,采用64位长整形的编码结构对每一张瓦片对应的瓦片数据块进行唯一编码,每一个瓦片数据块均形成一个64位编码值;所述64位长整形的编码结构中,第0至31位存储瓦片的geohash编码,第32至47位存储瓦片波段号,第48至63位存储瓦片所处的瓦片级号。
23.作为优选,所述s3中,使用分层分块组织模型实现五层十五级遥感瓦片数据的分层分块组织的方法如下:
24.在分布式文件系统中以瓦片数据集文件来分层级存储不同遥感影像中不同瓦片级的瓦片数据块,其中每一个瓦片数据集文件对应存储一幅遥感影像的一个瓦片级中所有瓦片数据块;分布式文件系统中每个瓦片数据集文件均通过两级索引实现分层分块组织,其中以第一键值对构成用于查询不同瓦片数据集文件的第一级索引,以第二键值对构成用于在瓦片数据集文件内查询不同瓦片数据块的第二级索引;所述第一键值对中的键为瓦片
数据集文件的唯一编码,值为指向二级索引存储位置的指针;所述第二键值对中的键为瓦片数据块的所述64位编码值,值为指向瓦片数据块的第三键值对的指针;所述第三键值中的键为瓦片数据块的所述64位编码值,值为瓦片数据块的二进制数据流。
25.相对于现有技术而言,本发明的有益效果如下:
26.1)本发明根据五层十五级遥感瓦片的特征,设计了基于排队轮询法和层级归类划分法的单幅影像并行切片方法。排队轮询法能够减少线程的空闲时间从而提高单机上的单幅影像单层级并行切片效率;层级归类划分法在排队轮询法的基础上,利用五层十五级遥感瓦片层级特点,对单幅影像的多层级并行切片效率做了进一步提升。
27.2)本发明基于kafka提供了一种多幅影像分布式并行切片方法,这种分布式并行切片算法在单机并行切片算法的基础上,结合了kafka消息中间件的特性,使得在分布式切片集群上实现了多幅影像的多层级并行切片。这些切片方法能够很好地适应遥感影像数据与五层十五级遥感瓦片数据的特点,为海量遥感影像数据的共享和应用奠定了基础。
28.3)本发明设计了一种能够实现瓦片数据块唯一编码的64位编码结构以及gridcubefile结构,从而实现了五层十五级遥感瓦片数据统一完整的数据组织存储,便于利用分布式存储系统在大文件存储上的优势。
29.综上,本发明充分结合五层十五级遥感瓦片的切分标准与层级特点,能够解决在低层级时五层十五级遥感瓦片数据块总数迅速增长时产生海量小文件所带来的存储问题,使五层十五级遥感瓦片数据在分布式文件系统中能够高效存储与访问。本发明对于五层十五级遥感瓦片数据的分层分块组织具有十分重要的实际应用价值。
附图说明
30.图1为基于五层十五级遥感瓦片数据的分层分块组织方法的步骤流程图;
31.图2为多幅影像并行切片任务划分示意图;
32.图3为引入kafka的分布式并行切片流程图;
33.图4为层级e瓦片与层级d瓦片示意图;
34.图5为一个示例中层级归类划分法切片任务划分示意图;
35.图6为一个示例中排队轮询法切片任务划分示意图;
36.图7为切片节点中单幅影像切片流程图;
37.图8为五层十五级遥感瓦片数据块编码结构示意图;
38.图9为五层十五级遥感瓦片数据分层分块组织模型示意图。
具体实施方式
39.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似改进,因此本发明不受下面公开的具体实施例的限制。本发明各个实施例中的技术特征在没有相互冲突的前提下,均可进行相应组合。
40.为了便于后续的描述,在论述本发明的具体技术方案之前,先对部分基本定义进行叙述。
41.本发明中遥感瓦片数据的五层十五级的具体层级划分标准可参照其标准定义,其从大的范围划分为1米、10米、100米、1000米、10000米共五层,小的范围每一层分别通过乘以2和除以2形成3个级别,总级数共十五级,每一层内的级别按照0.5:1:2的比例进行分级,上层的最后一级瓦片与下层的第一级瓦片之间的比例为2.5:1。。为了便于叙述,本发明中将这五层定义为瓦片层,而每一个瓦片层中的3个级别定义为瓦片级,因此一共有5个瓦片层(尺度从小到大依次为第1瓦片层、第2瓦片层、第3瓦片层、第4瓦片层、第5瓦片层),15个瓦片级(第1瓦片层中包含尺度从小到大的第1瓦片级、第2瓦片级、第3瓦片级,第2瓦片层中包含尺度从小到大的第4瓦片级、第5瓦片级、第6瓦片级,第3瓦片层中包含尺度从小到大的第7瓦片级、第8瓦片级、第9瓦片级,第4瓦片层中包含尺度从小到大的第a瓦片级、第b瓦片级、第c瓦片级,第5瓦片层中包含尺度从小到大的第d瓦片级、第e瓦片级、第f瓦片级,a、b、c、d、e、f的瓦片级编号在部分其他定义中亦可等价于10、11、12、13、14、15)。
42.另外,这种五层十五级规格模型仅是遥感范围内的分法,实际上还可以向两端扩充,如将分辨率向围观方向以10毫米、1毫米、0.1毫米为层次进行延伸,也可以向10千米、100千米、1000千米为层次向宏观方向进行延伸。延伸后的模型虽然不止五层十五级,但本领域中也将其统称为五层十五级。
43.如图1所示,在本发明的一个较佳实施例中,提供了一种基于五层十五级遥感瓦片数据的分层分块组织方法,其具体做法如s1~s3所示,下面对其进行具体描述:
44.s1:针对所有待切片的遥感影像,分布式系统的主节点首先对其影像切片任务进行划分,将不同遥感影像的切片任务分配到切片任务集群的不同节点上,每一个切片节点均独立针对单幅遥感影像的切片任务进行分布式多线程并行切片,待所有遥感影像的切片任务均执行完毕后,得到五层十五级遥感瓦片数据。
45.上述s1步骤实际是一个多幅影像的分布式并行切片过程,如图2所示,为分布式并行切片任务划分示意图,所有待切片的遥感影像被各自划分成了不同的切片任务,然后由切片任务集群中不同的切片节点分别来执行相应的分布式多线程并行切片。每一个切片节点是一台任务处理服务器,其可以由作为主节点的服务器进行调度。本发明中,每一个切片节点所执行的分布式多线程并行切片都是基于层次归类划分法和排队轮询法实现的,后续将对这种分布式多线程并行切片的具体工作流程进行详细描述。
46.在本实施例中,上述分布式系统内可基于kafka消息中间件来实现对多幅遥感影像的分布式并行切片,由此提高多幅遥感影像的并行切片效率。kafka是一个分布式的消息发布订阅系统,kafka流式平台能够发布和订阅记录流(与消息队列类似),以容错持久的方式存储记录流,还可以在记录流发生时进行处理,即可以实时处理这个平台收到的数据流。在进行五层十五级瓦片切片的过程中,主节点可以将每一条切片任务记作一条记录,然后传给kafka集群,将任务分发至切片节点对应的每台任务处理服务器,由任务处理服务器具体处理所负责的任务数据和请求,完成五层十五级瓦片切片。其中主节点相当于kafka中的生产者(producer),切片任务集群中的切片节点相当于kafka中的消费者(consumer)。kafka的消息归类是以主题(topic)为单位进行的,按照分区规则,一个主题可以被分成一个或几个分区,而不同分区之间的消息是相互独立,互不重复的。kafka集群内部存在不同的分区(partition),在物理存储层面上,可以将每个分区看做是一个log日志文件,分区按照消息的接收顺序被将其依次追加至每个日志文件中。
47.如图3所示,上述分布式系统内引入kafka来实现的分布式并行切片过程具体步骤如下:
48.s11:选择所有待切片的遥感影像,并向主节点提交多幅影像的切片请求,主节点接收所有待切片的遥感影像的切片请求后,创建切片任务列表,并向kafka集群提交切片任务列表中的切片任务。
49.s13:kafka集群接收到切片任务后将切片任务缓存,并根据均衡策略存储到不同分区中,每个切片任务对应于单幅遥感影像的切片。这些分区中存储的切片任务后续可根据切片任务对应的消息接收的先后顺序分配给不同的切片节点,即首先接收到的切片任务先分配给切片节点,后接收到的切片任务后分配给切片节点,以便于按次序执行所有切片任务。
50.s14:切片任务集群中的各个切片节点通过与kafka建立的长连接,不断从不同分区中按次序拉取切片任务进行执行,且不同切片节点分配到的分区不同,相互之间互不干扰,并行执行不同的切片任务。每一个切片节点均独立针对拉取到的单幅遥感影像的切片任务基于层次归类划分法和排队轮询法进行分布式多线程并行切片(具体的分布式多线程并行切片流程后续将详细介绍),切片过程中每一张瓦片生成的瓦片数据块输出到空瓦片文件中,并存储至分布式文件系统中。
51.需注意的是,切片任务集群中的各个切片节点可按照消息接收的先后顺序从kafka集群的不同分区中拉取切片任务。
52.s15:kafka集群中缓存的所有切片任务均完成后,通知主节点已完成待所有遥感影像的切片任务,并在分布式文件系统中得到五层十五级遥感瓦片数据。
53.在本发明的上述每一个切片节点中,均执行了分布式多线程并行切片,而这是基于层次归类划分法和排队轮询法两种改进方法来实现的。下面先对这两种方法的具体实现方式进行介绍。
54.五层十五级遥感瓦片化过程的本质就是按照五层十五级遥感瓦片的层级划分标准,将影像批量裁剪为多幅小影像并存储到分布式文件系统中。与传统四叉树上下层瓦片之间的分辨率是1:2的关系不同,五层十五级的上下瓦片级的映射关系不是简单的1:2或者1:4的关系,不能通过简单的上下瓦片级简单裁剪或拼接得到完整的一套瓦片。如图4所示,瓦片级e与瓦片级d的比例为2.5:1,瓦片级e的4张瓦片空间范围与瓦片级d的25张瓦片空间范围相同,瓦片级d瓦片不能直接由瓦片级e的瓦片切分获得,中间十字区域(红色区域)需要通过瓦片级d的瓦片拼接裁切才能得到;瓦片级e也不能直接由瓦片级d拼接获得,需要对瓦片级d的瓦片先进行拼接再裁切才能得到。因此当对单幅影像需要进行多层级并行切片任务时,本发明并不单一地使用某一层级瓦片来不断向下切分,直至完成所有层级瓦片的切分,而是提出了层级归类划分法。
55.层级归类划分法的主要思想是先对目标层级按照瓦片层进行分类,然后根据不同层级之间的空间范围大小比例进行归类,避免需要瓦片拼接裁切的情况出现。由五层十五级遥感瓦片标准化分级方式可知,f、c、9、6、3级是每一瓦片层中瓦片尺度最大的一个瓦片级,同时与另外两个瓦片级的比例为1:2和1:5,这两个层级的瓦片都能够通过尺度最大的瓦片级直接切分得到。因此,首先将所有层级按照瓦片层归类后,每一类别中的最大瓦片级首先进行切分,剩余的若还有两个瓦片级则直接由最大瓦片级的影像直接切分,而不需要
逐级切分。由此,不同瓦片级的影像切片任务可以被划分为不同优先级的切片任务单元,同一优先级的切片任务单元可以并行执行。实验证明,层级归类划分法相对于不进行层级归类的传统切片做法而言,能够明显提升对单幅影像的多层级并行切片的切片效率,且随着可归类划分的层级越多而提升效果愈发明显。
56.排队轮询法的作用是实现对一个切片任务单元中单幅影像单层级的并行切片,该方法需要与线程池结合,通过多线程来并行执行。排队轮询法的任务划分是在先确定影像切分后的瓦片数量,再确定每一个瓦片的行列号。将这些瓦片进行编号和排队,然后按照顺序依次由线程池中的线程任务执行。当线程执行完被分配的瓦片切片任务后,向瓦片队列请求执行下一张瓦片的切片任务。各线程重复执行上述分配操作,直到没有剩余瓦片需要进行切片,就完成了该幅遥感影像的并行切片任务。这种分配方式与车轮法的按照线程号与瓦片行列号一一对应分配方式相比,能够减少线程的空闲时间,不需要等所有线程都完成一轮切片任务后再进行下一轮瓦片切片任务。实验证明,本发明的排队轮询法相比于单线程切片以及基于openmp的并行切片方法均能够有效提高单幅影像单层级切片的效率。
57.在本实施例中,上述层次归类划分法和排队轮询法是组合使用的,先由层次归类划分法进行切片任务单元的划分,然后再由排队轮询法对切片任务单元进行多线程切片。由此,每一个切片节点基于层次归类划分法和排队轮询法对拉取到的切片任务执行多线程并行切片,具体所采用的工作流程如下:
58.首先按照层次归类划分法读取当前切片节点分配到的单幅遥感影像的切片任务,将切片任务中所有需切分的目标瓦片级按照五层十五级的层级划分标准进行分类,将隶属于同一瓦片层的所有瓦片级归为同一类别,然后取出所有类别中各自包含的最高瓦片级(最高瓦片级为f、c、9、6、3这五个瓦片级中的一个)分别建立第一优先级的切片任务单元,所有第一优先级的切片任务单元并行通过排队轮询法进行切片任务,当所有第一优先级的切片任务单元均完成切片任务后再将每一类别中的剩余瓦片级各自建立第二优先级的切片任务单元,所有第二优先级的切片任务单元并行通过排队轮询法进行切片任务,最终完成单幅遥感影像中所有目标瓦片级的切片工作。如前所述,上述第一优先级的切片任务单元和第二优先级的切片任务单元划分完毕后,同一优先级的切片任务单元划分均需要通过排队轮询法进行切片任务,该排队轮询法执行时,先确定每一个切片任务单元(即前述的第一优先级的切片任务单元或者第二优先级的切片任务单元)中影像需被切分的瓦片数量,再将这些瓦片的切片任务按照每一个瓦片的行列号进行编号和排序以形成任务队列,线程池中的不同线程按照任务队列中的任务排序依次认领瓦片切片任务并执行,每一个线程执行完一个瓦片的切片任务后再按序从任务队列中认领新的任务,直至切片任务单元中所有的瓦片均完成切片。
59.举例而言,如图5所示,在一个切片节点中,获取到切片任务后,该幅待裁剪影像需要切片到第9、8、7、6、5、4共六个层级,由于不同瓦片级之间的比例有1:2和1:5两种,所以根据比例不同将任务先按照层次归类划分法根据瓦片层进行归类,再根据各瓦片级的比例进行划分。9、8、7级的瓦片属于第3层,6、5、4级的瓦片属于第2层,所以先将待切片瓦片按照层数分为两个第一优先级的切片任务单元,一个第一优先级的切片任务单元进行第9级切片,另一个第一优先级的切片任务单元进行第6级切片。当第9级和第6级切片任务完成后,再按照瓦片级数进行任务再划分。在第9级瓦片的基础上,继续分为两个第二优先级的切片任务
单元,其一是按照瓦片边长1:2的比例进行一分为四的切片任务,生产第8级瓦片;其二是按照瓦片边长1:5的比例进行一分为二十五的切片任务,生产第7级瓦片。同理,第5级和第4级瓦片切片任务则是在第6级瓦片的基础上分为两个第二优先级的切片任务单元。所有第二优先级的切片任务单元可以并行执行,不存在先后顺序。当所有层级的瓦片都成功生成时,该待切片影像的多层级并行切片任务结束。
60.当然,上述举例中每一个瓦片层中都有完整的3个瓦片级,但事实上本发明并不要求每一个瓦片层中都需要有完整的3个瓦片级。表2举例了另外几种多层级的组合切片情况。
61.表2多层级组合情况
[0062][0063]
表2中的不同多层级组合情况均可以用本发明的层次归类划分法进行任务单元划分。第1种层级组合在切片过程中,先进行第9层级的切片,然后在第9级的基础上,并行进行第8、7层级的切片;第2种层级组合在切片过程中,先并行进行第9、6层级的切片,然后在第9级的基础上,并行进行第8、7层级的切片;第3种层级组合在切片过程中,先并行进行第9、6层级的切片,然后再并行进行第8、5层级的切片,其中第8层级以第9层级为基础,第5层级以第6层级为基础;第4种层级组合在切片过程中,先并行进行第9、6层级的切片,然后并行进行第8、7、5层级的切片,其中第8、7层级以第9层级为基础,第5层级以第6层级为基础。
[0064]
另外,在上述举例中,不论是第一优先级的切片任务单元还是第二优先级的切片任务单元,每一个切片任务单元执行时均按照排队轮询法调用线程池进行切片任务。如图6所示,以其中一个切片任务单元为例,在五层十五级遥感瓦片分级标准下,待切片的遥感影像在当前层级下需要被切片成30个瓦片,对其进行编号后依次排队形成任务列表,根据服务器性能将线程池的线程数设置为6,所以该影像被6个线程并行切分。第一轮中,编号为0-5的六块瓦片区域被平均分配给6个线程;第二轮中,线程1、3、4、6已执行完当前瓦片的切片任务,并发起新的执行切片请求,所以此轮中6个线程分别执行编号为6、1、7、8、4、9的瓦片区域的切片;第三轮中,线程2、4、5、6结束了当前瓦片的切片任务,继续发起新的执行切片请求,所以此轮中6个线程分别执行编号为6、10、7、11、12、13的瓦片区域的切片;以此类推,直到最后一轮,线程1、3、5分别执行了编号为27、28、29的瓦片区域的切片任务,其余区域的切片任务已经结束。至此,整幅影像在当前目标层级下的所有切片任务全部完成。
[0065]
另外,前述步骤描述了每一个切片节点中对于切片任务的划分方式,而其中具体执行的切片任务做法可参照现有技术中的五层十五级瓦片切片方法来实现。如图7所示,描述了本实施例中,每一个切片节点拉取到单幅遥感影像的切片任务后所执行的切片任务过程:
[0066]
首先,每一个切片节点拉取到单幅遥感影像的切片任务后,读取影像元数据信息,包括影像波段数、影像大小(长度和宽度)和投影坐标。
[0067]
然后,根据元数据信息中的投影坐标判断其投影坐标系是否为wgs84坐标系,若不是wgs84坐标系则将其进行投影转换形成wgs84坐标系下的遥感影像。
[0068]
再后,加载wgs84坐标系下的遥感影像数据,读取影像的空间范围、波段以及需切
分的目标瓦片级。
[0069]
wgs84坐标系的转换属于现有技术,一种可行的影转换算法可采用如下;
[0070][0071]
最后,基于前述的层次归类划分法和排队轮询法进行前述多线程并行切片。具体而言,切片任务集群中每一个切片节点均可通过调用gdal库来实现影像的切片,完成全部切片任务后,通知所有影像切片任务已完成。
[0072]
s2:针对s1中得到的五层十五级遥感瓦片数据,对每一张瓦片按照其所处的瓦片级和行列号进行编码。
[0073]
在本实施例中,可根据瓦片数据的源数据(原始遥感影像数据)的命名的唯一性和目标层级的确定性,可以对五层十五级遥感瓦片数据实现编码。具体而言,本实施例采用64位长整形的编码结构对每一张瓦片对应的瓦片数据块进行唯一编码,编码结构如图8所示。该结构是一个64位长整形的编码结构,第0至31位存储瓦片的geohash编码(下文简称“g码”),第32至47位存储瓦片的波段号,第48至63位存储瓦片所处的层级号即瓦片级编号。设level是瓦片级,band为瓦片所包含的波段号,geohashcode为该瓦片数据块的地理空间位置编码g码。
[0074]
瓦片数据块编码n(简称n码)的计算方式可以表示如下:
[0075]
n=((long)geohashcode)|((long)band)<<32|((long)level)<<48
[0076]
基于上述编码结构,通过对n码进行计算,亦可重新获取瓦片geohash编码、瓦片级、波段号如下:
[0077]
geohashcode=n&0xffffffffffl
[0078]
band=0xffffl&(n>>32)
[0079]
level=0xffffl&(n>>48)
[0080]
s3:基于s2中获得的每一张瓦片的编码构建两级索引,使用分层分块组织模型实现五层十五级遥感瓦片数据的分层分块组织。
[0081]
在本实施例中,针对分层分块组织模型中设计了一种gridcubefile结构,使用gridcubefile结构来实现五层十五级遥感瓦片数据的分层分块组织,具体分层分块组织方法如下:
[0082]
在分布式文件系统中以瓦片数据集文件来分层级存储不同遥感影像中不同瓦片级的瓦片数据块,其中每一个瓦片数据集文件对应存储一幅遥感影像的一个瓦片级中所有
瓦片数据块,不同的瓦片数据集文件对应存储不同遥感影像的不同瓦片级中所有瓦片数据块。分布式文件系统中每个瓦片数据集文件均通过两级索引实现分层分块组织,其中以第一索引键值对构成用于查询不同瓦片数据集文件的第一级索引,以第二索引键值对构成用于在瓦片数据集文件内查询不同瓦片数据块的第二级索引;所述第一索引键值对中的键为瓦片数据集文件的唯一编码,值为指向二级索引存储位置的指针;所述第二索引键值对中的键为瓦片数据块的所述64位编码值,值为指向瓦片数据块的数据块键值对的指针;所述数据块键值中的键为瓦片数据块的所述64位编码值,值为瓦片数据块的二进制数据流。
[0083]
举例而言,本实施例中的分层分块组织模型如图9所示,可根据瓦片数据的源数据(原始遥感影像数据)的命名的唯一性和目标层级的确定性,对五层十五级遥感瓦片数据实现唯一编码,以《ikey,ip》键/值对形成不同影像不同层级的瓦片数据块索引的队列,此为一级索引,ikey为瓦片数据集文件的唯一编码,ip指向瓦片数据块索引的位置。以《n,p》键/值对形成了同一影像同一层级的瓦片数据块索引的队列,此为二级索引,p指向瓦片数据块的唯一编码n(即前述n码)所存储的位置。进而通过《n,d》键/值对形成了瓦片数据块的队列(d为瓦片数据块二进制流),将五层十五级遥感瓦片根据不同层级形成层级瓦片大数据集文件,便于实现在分布式文件系统中的存储。由此,在图9中可见,gridcubefile数据通过分层分块组织模型将五层十五级遥感瓦片实现分层级存储,每个层级的所有瓦片数据块进行分块组织,形成对应的瓦片数据集文件。[ikey1,ikey2,

,ikeyn]是五层十五级遥感瓦片数据集文件(遥感影像在五层十五级组织模型下某层级的全部瓦片数据集合)通过瓦片所处层级数和源数据的名称确定的唯一编码;[n1,n2,

,nn]为五层十五级遥感瓦片数据块对应n码,[d1,d2,

,dn]为与n码对应的五层十五级遥感瓦片数据块的二进制流表示结果,每个《ni,di》存储一个五层十五级遥感瓦片数据块。在一级索引中,以《ikeyi,ipi》键/值对保存五层十五级遥感数据集的唯一编码,同时保存了指向二级索引存储位置的指针ipi。在二级索引中,以《ni,pi》键/值对保存五层十五级遥感瓦片数据块的n码和指针pi,指针pi指向了五层十五级遥感瓦片数据块队列中相应键/值对。
[0084]
由此,上述gridcubefile结构在索引数据中记录了记录的位置信息,gridcubefile在读取索引数据时,放弃将其全部加载至内存再遍历的方式,而是采用了一种新的做法,即根据指针获取一个指定位置(targetposition)从而直接获取键值对《key,position》,进而找到数据集中记录的位置,然后直接访问。
[0085]
为了进一步便于理解,下面叙述将五层十五级遥感瓦片数据写入gridcubefile的一种可实现流程如下:
[0086]
step 1:gridcubefile数据初始化
[0087]
连接分布式文件服务器集群,设定索引文件的起始位置以及标准偏移量,创建索引文件(index linerfile)和瓦片数据块存储文件(data linerfile)。
[0088]
step 2:写入gridcubefile数据的元数据
[0089]
将元数据信息作为瓦片数据块存储文件的首个记录,通过二进制流的形式写入瓦片数据块存储文件中。在写入元数据二进制流之前,需要先写入元数据的长度,保证元数据读取的正确性。
[0090]
step 3:循环写入索引数据和遥感瓦片数据块
[0091]
分别将索引键/值对《ni,pi》和遥感瓦片数据块键/值对《ni,di》写入索引文件和瓦
片数据块存储文件中。首先将《ni,di》键/值对写入瓦片数据块存储文件,再将遥感瓦片数据块键/值对《ni,di》实际存储位置pi以《ni,pi》键/值对的形式写入索引文件中。在写入目标遥感瓦片数据块二进制流之前,需要先写入目标遥感瓦片数据块的长度,保证数据块读取的正确性。
[0092]
step 4:关闭gridcubefile数据读写
[0093]
完成所有遥感瓦片数据块的写入后,关闭索引文件和瓦片数据块存储文件,释放资源。
[0094]
另外,以上索引和层级瓦片数据集最终可以存储在分布式文件系统中。在存储过程中,可以将层级瓦片数据集按照数据块进行拆分后分散存储至分布式存储节点中。若需要进一步节省存储资源,可以采用一定的压缩策略。
[0095]
以上所述的实施例只是本发明的一种较佳的方案,然其并非用以限制本发明。有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型。因此凡采取等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。
再多了解一些

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

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

相关文献