【技术实现步骤摘要】
本申请涉及空间数据处理的
,特别是涉及一种栅格数据的交叉计算方法和装置。
技术介绍
地理信息系统(Geographic Information System,GIS)是一种具有采集空间数据并存储、管理、分析与表现空间信息的计算机系统。在GIS系统应用中,栅格数据有着广泛的应用,尤其是随着硬件技术提高,海量栅格数据的存储与计算已经普遍的存在于很多系统中。对于多个栅格数据的交叉计算,在应用中是一种非常普通的需求。“栅格数据的交叉计算”是指这样的情形假设有一个栅格数据A,其描述的是全国范围的坡度属性,其每个 栅格象素存储的是坡度值,栅格数据的分辨率假设为30米,即每个栅格象素单元代表的实际地理空间范围是30米X 30米=900平方米,栅格象素单元的值含义为该900平方米的地面坡度。同时,还有另外一个栅格数据B,其描述的是全国范围的植被属性,每个栅格象素存储的是地表植被情况代码,比如用代码I表示沙地,代码2表示耕地,等等。栅格数据的分辨率也为30米,即栅格数据B的每个象素单元代表900平方米范围内的植被情况。需要指出的是,进行交叉计算的两个或多个栅格数据需要具有相同的分辨率,否则这两个或多个栅格数据的象素单元在空间上不匹配,是无法进行计算的。在实际项目中,“全国范围内坡度大于10度的耕地的分布情况怎么样?以及总面积多少? ”,类似这样的多个栅格数据的交叉性计算问题很多。但是,现在的GIS系统中,对多个栅格数据的交叉计算,往往涉及到海量数据的多次分析处理,计算性能是个核心的技术瓶颈。因此,本领域技术人员迫切需要解决的问题是如何在目前的GIS系统计算性能条件下,提高多 ...
【技术保护点】
一种栅格数据的交叉计算方法,其特征在于,所述方法涉及至少两组栅格数据的交叉计算,每组栅格数据包括M×N个象素单元,其中,所述M为行,N为列,所述方法包括:分别将每组栅格数据划分成2w×2w个栅格块,其中每个栅格块包括T×T个象素单元;分别针对每组栅格数据的栅格块,建立四叉树结构,形成2w×2w个叶子节点;按照预置规则对所述2w×2w个叶子节点进行赋值;采用每组栅格数据对应栅格块的叶子节点赋值进行交叉计算,获得计算结果。
【技术特征摘要】
1.一种栅格数据的交叉计算方法,其特征在于,所述方法涉及至少两组栅格数据的交叉计算,每组栅格数据包括MXN个象素单元,其中,所述M为行,N为列,所述方法包括 分别将每组栅格数据划分成2WX2W个栅格块,其中每个栅格块包括TXT个象素单元; 分别针对每组栅格数据的栅格块,建立四叉树结构,形成2WX2W个叶子节点; 按照预置规则对所述2WX2W个叶子节点进行赋值; 采用每组栅格数据对应栅格块的叶子节点赋值进行交叉计算,获得计算结果。2.根据权利要求I所述的方法,其特征在于,所述分别针对每组栅格数据的栅格块,建立四叉树结构,形成2WX2W个叶子节点的步骤包括 分别针对每组栅格数据的所有栅格块,按照四叉树进行划分,直到划分到节点只对应I个栅格块为止,获得包括从第I层至第《+I层的四叉树结构,所述第《+I层包括2WX 2W个叶子节点。3.根据权利要求I所述的方法,其特征在于,所述预置规则包括 判断所述叶子节点中各象素单元的值,是否满足预置的计算条件,若是,则对所述叶子节点赋第一特征值;若否,则对所述叶子节点赋第二特征值; 以及, 当属于同一父节点的叶子节点均被赋予第二特征值时,对所述父节点赋第二特征值,并删除所述父节点下的叶子节点。4.根据权利要求I或2或3所述的方法,其特征在于,所述栅格数据包括第一栅格数据rootA和第二栅格数据rootB,所述交叉计算为所述第一栅格数据rootA和第二栅格数据rootB的交集计算,所述采用每组栅格数据对应栅格块的叶子节点赋值进行交叉计算,获得计算结果的步骤包括 子步骤S11,分别从所述第一栅格数据rootA和第二栅格数据rootB四叉树结构的第I层到第《+I层,自上而下逐个读取每一层中相对应的节点的赋值; 子步骤S12,判断所述第一栅格数据rootA和第二栅格数据rootB相对应的节点赋值的状态,若均没有赋值,则执行子步骤S13 ;若均为第一特征值,则执行子步骤S14 ;若均为第二特征值,则执行子步骤S15 ;若其中一节点赋值为第一特征值,另一节点赋值为第二特征值,则执行子步骤S15 ;若其中一节点没有赋值,另一节点有赋值,则执行子步骤S15 ;子步骤S13,继续逐个读取该节点的下一层子节点的赋值,返回子步骤S12 ; 子步骤S14,获得当前节点的交叉计算结果不为空; 子步骤S15,获得当前节点的交叉计算结果为空。5.根据权利要求I或2或3所述的方法,其特征在于,所述栅格数据包括第一栅格数据rootA和第二栅格数据rootB,所述交叉计算为所述第一栅格数据rootA和第二栅格数据rootB的并集计算,所述采用每组栅格数据对应栅格块的叶子节点赋值进行交叉计算,获得计算结果的步骤包括 子步骤S21,分别从所述第一栅格数据rootA和第二栅格数据rootB四叉树结构的第I层到第《+I层,自上而下逐个读取每一层中相对应的节点的赋值; 子步骤S22,判断所述第一栅格数据rootA和第二栅格数据rootB相对应的节点赋值的状态,若均没有赋值,则执行子步骤S23 ;若均为第一特征值,则执行子步骤S24 ;若均为第二特征值,则执行子步骤S25 ;若其中一节点赋值为第一特征值,另一节点赋值为第二特征值,则执行子步骤S24 ;若其中一节点没有赋值,另一节点有赋值,则执行子步骤S24 ;子步骤S23,继续逐个读取该节点的下一层子节点的赋值,返回子步骤S22 ; 子步骤S24,获得当前节点的交叉计算结果不为空; 子步骤S25,获得当前节点的交叉计算结果为空。6.根据权利要求I或2或3所述的方法,其特征在于,所述栅格数据包括第一栅格数据rootA和第二栅格数据rootB,所述交叉计算为所述第一栅格数据rootA和第二栅格数据rootB的差集计算,所述采用每组栅格数据对应栅格块的叶子节点赋值进行交叉计算,获得计算结果的步骤包括 子步骤S31,分别从所述第一栅格数据rootA和第二栅格数据rootB四叉树结构的第I层到第《+I层,自上而下逐个读取每一层中相对应的节点的赋值; 子步骤S32,判断所述第一栅格数据rootA和第二栅格数据rootB相对应的节点赋值的状态,若均没有赋值,则执行子步骤S33 ;若均为第一特征值,则执行子步骤S34 ;若均为第二特征值,则执行子步骤S34 ;若第一栅格数据rootA的节点赋值为第一特征值,第二栅格数据rootB中对应的节点赋值为第二特征值,则执行子步骤S35 ;若第一栅格数据rootA的节点赋值为第二特征值,第二栅格数据rootB中对应的节点赋值为第一特征值,则执行子步骤S34 ;若第一栅格数据rootA的节点没有赋值,第二栅格数据rootB中对应的节点有赋值,则执行子步骤S35 ;若第一栅格数据rootA的节点有赋值,第二栅格数据rootB中对应的节点有赋值,则执行子步骤S34 ; 子步骤S33,继续逐个读取该节点的下一层子节点的赋值,返回子步骤S32 ; 子步骤S34,获得当前节点的交...
【专利技术属性】
技术研发人员:孙成宝,郑国柱,
申请(专利权)人:北京地拓科技发展有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。