一种栅格数据的数据处理方法和装置与流程

文档序号:17790684发布日期:2019-05-31 20:10阅读:202来源:国知局
一种栅格数据的数据处理方法和装置与流程

本发明涉及计算机技术领域,特别是涉及一种栅格数据的数据处理方法和装置。



背景技术:

在gis应用中,在对水土保持的水蚀模型或风蚀模型的计算过程中,多数是用多因子栅格叠加计算,在保证精度的情况下,大范围的栅格计算由于空间与时间的关系导致数据量极其巨大,从而使结果很难被计算出来。



技术实现要素:

有鉴于此,本发明提供了一种栅格数据的数据处理方法和装置,以解决大范围的栅格计算时结果较为难计算的问题。

为了解决上述问题,本发明公开了一种栅格数据的数据处理方法,包括:

对于待计算的栅格数据,将所述栅格数据中的每个因子进行分割,得到预设数量的数据块;

构建数量与所述数据块的数量相同的多个数据文件,每个所述数据文件包括多个中间波段,所述中间波段的数量与所述因子的数量相同;

将每个所述因子的每个数据块写入每个所述数据文件的对应的所述中间波段上的对应位置;

将多个包含所述数据块的所述中间波段分配给多个计算资源进行计算,得到多个计算结果;

对所有计算结果进行装配,得到最终的成果栅格数据。

可选的,每个所述数据文件还包括一个结果波段,所述结果波段用于记录所述计算结果。

可选的,所述对所述计算结果进行装配,包括:

对所有的所述结果波段所记录的结果数据进行装配,得到所述成果栅格数据。

可选的,在所述将每个所述因子的每个数据块写入每个所述数据文件的对应的所述中间波段的对应位置步骤之后,还包括:

构建索引文件,所述索引文件用于保存每个数据文件及其对应的起始行列与结束行列。

可选的,所述将多个包含所述数据块的所述中间波段分配给多个计算资源进行计算,包括:

根据所述索引文件将多个所述中间波段分配给一个计算设备中的多个计算模块进行并行计算;

或,根据所述索引文件将多个所述中间波段分配被多个计算设备进行并行计算。

另外,还提供了一种栅格数据的数据处理装置,包括:

因子分割模块,用于对于待计算的栅格数据,将所述栅格数据的每个因子进行分割,得到预设数量的数据块;

文件构建模块,用于构建数量与所述数据块的数量相同的多个数据文件,每个所述数据文件包括多个中间波段,所述中间波段的数量与所述因子的数量相同;

数据写入模块,用于将每个所述因子的每个数据块写入每个所述数据文件的对应位置的所述中间波段上;

任务分配模块,用于将多个包含所述数据块的所述中间波段分配给多个计算资源进行计算,得到多个计算结果;

结果装配模块,用于对所有计算结果进行装配,得到最终的成果栅格数据。

可选的,每个所述数据文件还包括一个结果波段,所述结果波段用于记录所述计算结果。

可选的,所述结果装配模块用于对所有的所述结果波段所记录的结果数据进行装配,得到所述成果栅格数据。

可选的,还包括:

索引构建模块,用于在所述数据写入模块将每个所述因子的每个数据块写入每个所述数据文件的对应位置的所述中间波段上之后,构建索引文件,所述索引文件用于保存每个数据文件及其对应的起始行列与结束行列。

可选的,所述任务分配模块包括:

第一分配单元,用于根据所述索引文件将多个所述中间波段分配给一个计算设备中的多个计算模块进行并行计算;

或,第二分配单元,用于根据所述索引文件将多个所述中间波段分配被多个计算设备进行并行计算。

从上述技术方案可以看出,本发明提供了一种栅格数据的处理方法和装置,具体为对于待计算的栅格数据,将其中的每个因子进行分割,得到预设数量的数据块;构建数量与所述数据块的数量相同的多个数据文件,每个所述数据文件包括多个中间波段,所述中间波段的数量与所述因子的数量相同;将每个所述因子的每个数据块写入每个所述数据文件的对应位置的所述中间波段上;将多个包含所述数据块的所述中间波段分配给多个计算资源进行计算,得到多个计算结果;对所有计算结果进行装配,得到最终的成果栅格数据。通过利用波段对任务进行分割,可以将分割后的任务分配给多个计算资源进行计算,从而可以提高计算效率,解决了大范围栅格计算时结果较为难计算的问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例的一种栅格数据的数据处理方法的流程图;

图2为本申请实施例的另一种栅格数据的数据处理方法的流程图;

图3为本申请实施例的一种栅格数据的数据处理装置的框图;

图4为本申请实施例的另一种栅格数据的数据处理装置的框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

图1为本申请实施例的一种栅格数据的数据处理方法的流程图。

参照图1所示,本实施例通过的数据处理方法应用于在基于gis的水蚀模型和风蚀模型的计算中,用于通过对多个因子的计算最终得到计算结果,即结果栅格数据。该数据处理方法包括如下步骤:

s1、将待计算的栅格数据中的因子进行数据分割。

经过对栅格数据中每个因子进行分割,得到预设数量的数据块。例如,如果该栅格数据中包含n个因子,则根据第一个因子n1进行数据分割,分割为m个数据块,例如分割为1024*1024个数据块。值得指出的是,对于每个因子来说,在对n1进行分割确定数据块的数量后,其他因子所分割的数据块与n1的数据块的数量相同。

s2、构建多个数据文件。

构建的数据文件的数量与任一个因子被分割的数据块的数量相同,且每个数据文件中包括多个中间波段,中间波段的数量与该栅格数据中因子的数量相同。例如,对于本实施例来说,每个数据文件中有n个中间波段。

s3、将每个因子的数据块写入对应的中间波段。

具体来说,是将每个因子所分割的相应数据块写入对应的中间波段的对应位置,以使每个因子的所有数据块均匀分布于每个数据文件中。

s4、将中间波段分配给多个计算资源进行计算。

具体来说,是将所有中间波段分配给相应数量的计算资源进行并行计算,从而得到相应的计算结果,得到的计算结果存储于每个数据文件的结果波段中。

具体分配时,可以将所有中间波段分配给一个计算设备中多个计算模块进行并行计算,也可以是将所有中间波段分配给多个计算设备进行并行计算。

s5、将计算结果进行装配,得到结果栅格文件。

在得到计算结果后,将得到的所有计算结果进行装配,从而得到结果栅格文件。具体来说,是将每个数据文件中结果波段中存储的计算结果进行装配,从而得到该结果栅格文件。

从上述技术文件可以看出,本实施例提供了一种栅格数据的处理方法,具体为对于待计算的栅格数据,将其中的每个因子进行分割,得到预设数量的数据块;构建数量与所述数据块的数量相同的多个数据文件,每个所述数据文件包括多个中间波段,所述中间波段的数量与所述因子的数量相同;将每个所述因子的每个数据块写入每个所述数据文件的对应位置的所述中间波段上;将多个包含所述数据块的所述中间波段分配给多个计算资源进行计算,得到多个计算结果;对所有计算结果进行装配,得到最终的成果栅格数据。通过利用波段对任务进行分割,可以将分割后的任务分配给多个计算资源进行计算,从而可以提高计算效率,解决了大范围栅格计算时结果较为难计算的问题。

实施例二

图2为本申请实施例的另一种栅格数据的数据处理方法的流程图。

参照图2所示,本实施例通过的数据处理方法应用于在基于gis的水蚀模型和风蚀模型的计算中,用于通过对多个因子的计算最终得到计算结果,即结果栅格数据。该数据处理方法包括如下步骤:

s1、将待计算的栅格数据中的因子进行数据分割。

经过对栅格数据中每个因子进行分割,得到预设数量的数据块。例如,如果该栅格数据中包含n个因子,则根据第一个因子n1进行数据分割,分割为m个数据块,例如分割为1024*1024个数据块。值得指出的是,对于每个因子来说,在对n1进行分割确定数据块的数量后,其他因子所分割的数据块与n1的数据块的数量相同。

s2、构建多个数据文件。

构建的数据文件的数量与任一个因子被分割的数据块的数量相同,且每个数据文件中包括多个中间波段,中间波段的数量与该栅格数据中因子的数量相同。例如,对于本实施例来说,每个数据文件中有n个中间波段。

s3、将每个因子的数据块写入对应的中间波段。

具体来说,是将每个因子所分割的相应数据块写入对应的中间波段的对应位置,以使每个因子的所有数据块均匀分布于每个数据文件中。

s31、构建索引文件。

这里所构建的索引文件用于保存每个数据文件,以及每个数据文件对应的起始行和起始列,还包括每个数据文件对应的结束行和接收列。

s4、将中间波段分配给多个计算资源进行计算。

具体来说,是根据上述索引文件将所有中间波段分配给相应数量的计算资源进行并行计算,从而得到相应的计算结果,得到的计算结果存储于每个数据文件的结果波段中。

具体分配时,可以根据索引文件将所有中间波段分配给一个计算设备中多个计算模块进行并行计算,也可以是根据该索引文件将所有中间波段分配给多个计算设备进行并行计算。

s5、将计算结果进行装配,得到结果栅格文件。

在得到计算结果后,将得到的所有计算结果进行装配,从而得到结果栅格文件。具体来说,是将每个数据文件中结果波段中存储的计算结果进行装配,从而得到该结果栅格文件。

从上述技术文件可以看出,本实施例提供了一种栅格数据的处理方法,具体为对于待计算的栅格数据,将其中的每个因子进行分割,得到预设数量的数据块;构建数量与所述数据块的数量相同的多个数据文件,每个所述数据文件包括多个中间波段,所述中间波段的数量与所述因子的数量相同;将每个所述因子的每个数据块写入每个所述数据文件的对应位置的所述中间波段上;构建索引文件;将多个包含所述数据块的所述中间波段分配给多个计算资源进行计算,得到多个计算结果;对所有计算结果进行装配,得到最终的成果栅格数据。通过利用波段对任务进行分割,可以将分割后的任务分配给多个计算资源进行计算,从而可以提高计算效率,解决了大范围栅格计算时结果较为难计算的问题。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

实施例三

图3为本申请实施例的一种栅格数据的数据处理装置的框图。

参照图3所示,本实施例通过的数据处理装置应用于在基于gis的水蚀模型和风蚀模型的计算中,用于通过对多个因子的计算最终得到计算结果,即结果栅格数据。该数据处理装置包括因子分割模块10、文件构建模块20、数据写入模块30、任务分配模块40和结果装配模块50。

因子分割模块用于将待计算的栅格数据中的因子进行数据分割。

经过对栅格数据中每个因子进行分割,得到预设数量的数据块。例如,如果该栅格数据中包含n个因子,则根据第一个因子n1进行数据分割,分割为m个数据块,例如分割为1024*1024个数据块。值得指出的是,对于每个因子来说,在对n1进行分割确定数据块的数量后,其他因子所分割的数据块与n1的数据块的数量相同。

文件构建模块用于构建多个数据文件。

构建的数据文件的数量与任一个因子被分割的数据块的数量相同,且每个数据文件中包括多个中间波段,中间波段的数量与该栅格数据中因子的数量相同。例如,对于本实施例来说,每个数据文件中有n个中间波段。

数据写入模块用于将每个因子的数据块写入对应的中间波段。

具体来说,是将每个因子所分割的相应数据块写入对应的中间波段的对应位置,以使每个因子的所有数据块均匀分布于每个数据文件中。

任务分配模块用于将中间波段分配给多个计算资源进行计算。

具体来说,是将所有中间波段分配给相应数量的计算资源进行并行计算,从而得到相应的计算结果,得到的计算结果存储于每个数据文件的结果波段中。

该模块包括第一分配单元和第二分配单元中的任一个。第一分配单元用于将所有中间波段分配给一个计算设备中多个计算模块进行并行计算,第二分片单元用于将所有中间波段分配给多个计算设备进行并行计算。

结果装配模块用于将计算结果进行装配,得到结果栅格文件。

在得到计算结果后,将得到的所有计算结果进行装配,从而得到结果栅格文件。具体来说,是将每个数据文件中结果波段中存储的计算结果进行装配,从而得到该结果栅格文件。

从上述技术文件可以看出,本实施例提供了一种栅格数据的处理装置,具体为对于待计算的栅格数据,将其中的每个因子进行分割,得到预设数量的数据块;构建数量与所述数据块的数量相同的多个数据文件,每个所述数据文件包括多个中间波段,所述中间波段的数量与所述因子的数量相同;将每个所述因子的每个数据块写入每个所述数据文件的对应位置的所述中间波段上;将多个包含所述数据块的所述中间波段分配给多个计算资源进行计算,得到多个计算结果;对所有计算结果进行装配,得到最终的成果栅格数据。通过利用波段对任务进行分割,可以将分割后的任务分配给多个计算资源进行计算,从而可以提高计算效率,解决了大范围栅格计算时结果较为难计算的问题。

另外,如图4所示,本实施例还包括索引构建模块60,。

索引构建模块用于构建索引文件。

这里所构建的索引文件用于保存每个数据文件,以及每个数据文件对应的起始行和起始列,还包括每个数据文件对应的结束行和接收列。

相应的,任务分配模块是根据上述索引文件将所有中间波段分配给相应数量的计算资源进行并行计算,从而得到相应的计算结果,得到的计算结果存储于每个数据文件的结果波段中。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本发明所提供的技术方案进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1