CN102446208A - 一种基于分布式的海量遥感影像快速建立金字塔算法 - Google Patents

一种基于分布式的海量遥感影像快速建立金字塔算法 Download PDF

Info

Publication number
CN102446208A
CN102446208A CN201110258127XA CN201110258127A CN102446208A CN 102446208 A CN102446208 A CN 102446208A CN 201110258127X A CN201110258127X A CN 201110258127XA CN 201110258127 A CN201110258127 A CN 201110258127A CN 102446208 A CN102446208 A CN 102446208A
Authority
CN
China
Prior art keywords
tile
palace lattice
pyramid
module
palace
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201110258127XA
Other languages
English (en)
Other versions
CN102446208B (zh
Inventor
吕振华
高峥
胡俊
赵慧
吴健平
黄飞鹏
李波
陈逸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
East China Normal University
Original Assignee
East China Normal University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by East China Normal University filed Critical East China Normal University
Priority to CN 201110258127 priority Critical patent/CN102446208B/zh
Publication of CN102446208A publication Critical patent/CN102446208A/zh
Application granted granted Critical
Publication of CN102446208B publication Critical patent/CN102446208B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

一种涉及地理信息与信息技术的交叉领域,尤其涉及一种应用于“国家空间数据基础设施”建设中的一种基于分布式的海量遥感影像快速建立金字塔算法。该方法利用基于PC集群的数据分布存储以及并行计算能力,通过N*M宫格划分,金字塔创建任务分配及调度和金字塔创建,通过正确划分宫格和计算宫格信息,通过控制节点和计算节点之间的通信传递任务,实现海量遥感影像快速建立金字塔算法,该方法主要解决如何进行N*M宫格划分等有关技术问题。本发明的优点是:基于数据分布存储以及并行计算能力,提高海量遥感影像金字塔生成的速度,解决了影像块文件跨宫格而造成的“黑边”问题,达到加快金字塔的创建速度,并保证了金字塔创建的准确性。

Description

一种基于分布式的海量遥感影像快速建立金字塔算法
技术领域
本发明涉及地理信息与信息技术的交叉领域,尤其涉及一种应用于“国家空间数据基础设施”建设中的基于分布式的海量遥感影像快速创建金字塔算法。
背景技术
作为国家空间数据框架中的重要基础数据,遥感影像为国土规划、测绘遥感、军事交通、水利水电、农林环保等应用中提供基础影像信息服务,因此在“国家空间数据基础设施”建设中的重要性也日益增强。
其中,近年来我国发射的北斗卫星导航定位系统可提供全天候、二十四小时的即时定位服务。其定位精度可达到数十纳秒的同步精度。而作为气象卫星的风云系列三号卫星发回的利用中分辨率光谱成像仪制作的250米分辨率多通道真彩色合成图,可以清晰的监测到大雾、冰凌、积雪、水体、火情等环境和灾害信息,并能提供其具体位置、范围及面积。这些遥感影像在带给我们清晰可见的地物目标的同时,它的数据量也成几何增长,从几十兆、几百兆增长到甚至几十GB。可以说,各种航空航天成像遥感平台所产生的遥感数据正在“如同下雨一样向地面传送”。
遥感数据的有效组织是高效的遥感数据访问及应用的基础。采用“分层分块”策略的瓦片金字塔不但大大缩短了数据访问时间而且能够表示多分辨率数据,是海量遥感数据组织的理想结构。因此金字塔生成的快慢决定着数据更新的能力。
传统金字塔的构造方法是采用了细节层次技术(Level OfDetail,LOD),将原始分辨率大数据量的影像作为金字塔的最底层,通过对原始影像采用特定的重采样方法,建立一系列范围相同但是详尽度和分辨率不同的影像。随着金字塔的层数增加,影像的分辨率逐渐降低。对于同一层的影像,为了提高影像的显示速度,对影像进行分块,显示时只访问可见区域的数据。
但是传统方法的构造过程基于单机环境,受限于单核单CPU的计算能力,只能处理少量遥感影像文件。当遥感影像文件数量成几何增长,数目达到上百上千时,由于大量的I/O操作使得生成金字塔的性能很低。实验证明,当遥感影像文件的大小达到百兆以上时,整个金字塔的创建过程将耗时数小时或者数十个小时,本发明提出的算法正是克服了以上缺陷。
发明内容
为了克服上述不足之处,本发明的主要目的旨在提供一种基于数据分布式存储,为海量遥感影像文件建立金字塔的并行算法,利用基于PC集群的数据分布存储以及并行计算能力,提高海量遥感影像金字塔生成的速度,并在和传统方法生成后的金字塔进行比较后得出本发明,通过N*M宫格划分,金字塔创建任务分配及调度和金字塔创建,通过正确划分宫格和计算宫格信息,达到加快金字塔的创建速度,保证金字塔创建准确性的一种基于分布式的海量遥感影像快速建立金字塔算法。
本发明需要解决的技术问题为:要解决如何进行N*M宫格划分,金字塔创建任务分配及调度和金字塔创建问题,要解决如何正确划分宫格和计算宫格信息问题,要解决影像块文件跨宫格而造成的“黑边”等有关技术问题。
本发明解决其技术问题所采用的技术方案是:海量遥感影像快速建立金字塔算法包括:传统金字塔的构造方法,该方法是对传统金字塔算法的改进,利用分布式数据存储和并行计算能力,通过控制节点和计算节点之间的通信传递金字塔创建任务和原始影像块文件列表,用控制节点来指导计算节点的金字塔创建,实现海量遥感影像快速建立金字塔算法,包括三部分:N*M宫格划分,金字塔创建任务分配及调度,和金字塔创建,其中:
N*M宫格划分:在N*M宫格划分中涉及到“逻辑区域影像”、“子图”、区域影像、影像块及瓦片,上述“逻辑区域影像”、“子图”为逻辑概念,而非物理存在,区域影像、影像块和瓦片是真实的物理存在,按照地理空间顺序排列而成,覆盖一定地理范围的瓦片集合称为“子图”,其记录子图的图幅大小、左上角顶点的经纬度位置的元数据信息,按照地理空间顺序排列而成,覆盖一定地理范围的“子图”集合称为“逻辑区域影像”,是由影像块组成的区域影像的逻辑表示,“逻辑区域影像”记录了区域影像的图幅大小、左上角顶点的经纬度位置的元数据信息,以上五者逻辑包含关系为:区域影像包含子图,子图包含影像块,影像块包含瓦片,利用宫格划分方法,将遥感数据均匀的分配到各个计算节点,将金字塔的创建划分成各项任务并行执行且并行计算,来实现正确划分宫格和计算宫格信息,N*M宫格划分在控制节点上执行;
金字塔创建任务分配及调度:根据N*M宫格划分参数为每个宫格生成对应的逻辑子任务,并将这些子任务加入任务队列,同时控制节点启动监控程序,监控作业的状态,任务调度采用“FIFO”先进先出模式,计算节点以PULL的方式积极向控制节点发送任务计划请求,从任务队列中取出任务计划并执行,在执行成功后,计算节点向控制节点提交状态信息,控制节点作为任务调度模块,读取任务配置参数生成金字塔创建的大作业,金字塔创建任务分配及调度在控制节点上执行;
金字塔创建:根据接收到的任务计划,包括:宫格信息和影像块集合,将分布存储在该计算节点的“子图”,作为金字塔的输入文件并计算节点,按金字塔创建方法来创建金字塔,各个计算节点根据收到的宫格信息,同分布存储在该节点的“子图”一起作为输入文件,并行地创建金字塔的0层,计算节点以指定金字塔的层数作为循环控制条件,上层金字塔文件作为输入,采用4个像素点提取1个像素点写入下层金字塔文件的做法,得到金字塔的下层,金字塔创建在计算节点上执行;
海量遥感影像快速建立金字塔算法的具体工作步骤是:
步骤1:开始
准备就绪:基于PC集群的数据分布存储;
步骤2:输入初始参数
在控制节点指定金字塔创建的相关参数,包括:宫格矩阵的行数N、宫格矩阵的列数M,源文件的磁盘路径,金字塔的目标路径,金字塔层数,瓦片的宽和高;
如果判断模块的金字塔层数<0,则进入异常结束模块,如果判断模块的金字塔层数非<0,则进入源文件存在的判断模块?
如果判断模块的源文件存在,则进入瓦片宽>0的判断模块?如果判断模块的源文件不存在,则进入异常结束模块;
如果判断模块的瓦片宽>0,则进入瓦片高>0的判断模块?如果判断模块的瓦片宽非>0,则进入异常结束模块;
如果判断模块的瓦片高>0,则进入计算“逻辑区域”模块,如果判断模块的瓦片高非>0,则进入异常结束模块;
步骤3:计算“逻辑区域”
控制节点根据源文件的磁盘路径,获取源文件列表,并计算源文件影像块对应的逻辑区域影像;
执行完计算“逻辑区域”模块后,则进入判断模块的宫格矩阵列M>0;
如果判断模块的宫格矩阵列M>0,则进入宫格矩阵行N>0的判断模块?如果判断模块的宫格矩阵列M非>0,则进入异常结束模块;如果判断模块的宫格矩阵行N>0,则进入划分“逻辑区域”成N*M宫格,如果判断模块的宫格矩阵行N非>0,则进入异常结束模块;
步骤4:划分“逻辑区域”成N*M宫格
N*M划分宫格:控制节点按照“宫格中的瓦片是完整的遥感文件”以及“等分矩阵瓦片数”的规则划分逻辑区域影像成N*M个不等大小的宫格,则每个宫格对应区域影像的一部分——子图,属于同一个子图的影像块将分配到同一个计算节点中;
a).计算瓦片个数
按照瓦片指定的宽、高,计算逻辑区域影像所能切割得到的瓦片个数Nnum*Mnum,其中Nnum表示纵向每列瓦片个数,Mnum表示横向每行瓦片个数;
b).等分瓦片个数
等分瓦片个数Nnum*Mnum到N*M个宫格中,其中N为宫格矩阵的行数,M为宫格矩阵的列数,记宫格[i,j]分别为宫格在矩阵中行号和列号,除了最后一行和最后一列的宫格之外,其他宫格的瓦片数均为(Nnum/N)*(Mnum/M),其中,处于矩阵最后一行的宫格其瓦片个数应为 ( Nnum - Nnum N * ( N - 1 ) ) * ( Mnun / M ) , 而处于矩阵最后一列的宫格其瓦片个数应为 ( Nnum / N ) * ( Nnum - Nnum N * ( N - 1 ) ) ;
c).计算子图的经纬度坐标
根据每个宫格包含的瓦片数,瓦片宽、高和逻辑区域影像左上角的顶点经纬度坐标,计算得到所有宫格对应子图的左上角顶点和右下角顶点经纬度坐标;
d).计算宫格子图对应的影像块文件列表
根据步骤c的左上角和右下角顶点的经纬度坐标生成经纬度坐标矩形,同所有待创建金字塔的影像块文件的经纬度坐标外包矩形相比较,包含在该矩形内及与该矩形相交的影像块都属于该宫格;
e).封装宫格信息
将步骤b到d中的瓦片个数、瓦片宽和高、宫格左上角和右下角顶点的经纬度坐标,宫格所属影像块文件列表封装成宫格信息,用于金字塔的创建,并完成从控制节点传递到计算节点的创建任务;
步骤5:循环计算每个宫格的子图
执行完划分“逻辑区域”成N*M宫格模块后,则进入循环计算每个宫格的子图模块;
步骤6:分配创建任务
执行完循环计算每个宫格的子图模块后,则进入分配创建任务模块,分配创建任务模块并行地创建金字塔A、创建金字塔B…及创建金字塔N,并进行并行计算;
步骤7:创建金字塔失败个数>0?
执行完分配创建任务模块后,则进入判断模块的创建金字塔失败个数>0;
如果判断模块的创建金字塔失败个数>0,则进入异常结束模块,如果判断模块的创建金字塔失败个数非>0,则进入成功结束模块;
步骤8:成功结束
当判断模块的创建金字塔失败个数非>0,则成功结束。
进一步的,所述的一种基于分布式的海量遥感影像快速建立金字塔算法的分布式是由以太网连接的一个控制节点和多个计算节点所组成的集群。
进一步的,所述的一种基于分布式的海量遥感影像快速建立金字塔算法的区域影像是航空平台和卫星平台上的遥感器,利用遥感技术所获得关于至少一个区域的高分辨率像片。
进一步的,所述的一种基于分布式的海量遥感影像快速建立金字塔算法的影像块是为了符合浏览窗口尺寸和加快浏览速度,采用地理信息工具在保证原有分辨率的前提下,将区域影像剪裁成至少一个相对区域影像来说小尺寸的遥感像片。
进一步的,所述的一种基于分布式的海量遥感影像快速建立金字塔算法的逻辑区域影像是区域影像的逻辑表示,其记录区域影像的图幅大小、左上角顶点的经纬度位置、仿射地理变换矩阵的元数据信息。
进一步的,所述的一种基于分布式的海量遥感影像快速建立金字塔算法的子图是逻辑区域影像中根据N*M宫格划分规则划分后落入在宫格的瓦片集合,子图的宽是宫格的宽度,子图的高是宫格的高度。
进一步的,所述的一种基于分布式的海量遥感影像快速建立金字塔算法的宫格信息是宫格在宫格矩阵中的编号,该宫格对应的子图的地理坐标、该宫格对应的子图的图幅大小、该宫格所包含的瓦片数、该宫格所包含的瓦片宽和高、该宫格最后一行的瓦片高、该宫格最后一列的瓦片宽及宫格对应子图所包含的影像块列表。
进一步的,所述的一种基于分布式的海量遥感影像快速建立金字塔算法的逻辑区域、子图、影像块及瓦片之间的具体关系为:
一逻辑区域包含子图的影像块为:子图A、子图B、子图C和子图D,其中:子图B的影像块集合包含B1、B2、B3以及与子图相交的影像块,而影像块B1又包含至少一瓦片集合。
进一步的,所述的一种基于分布式的海量遥感影像快速建立金字塔算法的N*M宫格划分和计算子图时,对于宫格[i,j]的具体工作步骤是:
步骤1:判断宫格[i,j]在宫格矩阵最后一列?
如果判断模块的宫格[i,j]不在宫格矩阵最后一列,则进入第一路的每行瓦片数=逻辑区域每行瓦片数/M模块,如果判断模块的宫格[i,j]在宫格矩阵最后一列,则进入第二路的每行瓦片数=逻辑区域每行瓦片数%M模块;
第一路先执行每行瓦片数=逻辑区域每行瓦片数/M模块,执行完每行瓦片数=逻辑区域每行瓦片数/M模块后,则进入最后一行瓦片的宽=输入的瓦片宽模块;
第二路先执行每行瓦片数=逻辑区域每行瓦片数%M模块,执行完每行瓦片数=逻辑区域每行瓦片数%M模块后,则进入最后一行瓦片的宽=剩余宽模块;
步骤2:判断宫格[i,j]在宫格矩阵最后一行?
执行完最后一行瓦片的宽=输入的瓦片宽模块后,则进入判断模块宫格[i,j]在宫格矩阵最后一行?
执行完最后一行瓦片的宽=剩余宽模块后,则进入判断模块宫格[i,j]在宫格矩阵最后一行?
如果判断模块的宫格[i,j]不在宫格矩阵最后一行,则进入第一路的每列瓦片数=逻辑区域每列瓦片数/N模块,如果判断模块的宫格[i,j]在宫格矩阵最后一行,则进入第二路的每列瓦片数=逻辑区域每列瓦片数%N模块;
第一路先执行每列瓦片数=逻辑区域每列瓦片数/N模块,执行完每列瓦片数=逻辑区域每列瓦片数/N模块后,则进入最后一列瓦片的高=输入的瓦片高模块;
第二路先执行每列瓦片数=逻辑区域每列瓦片数%N模块,执行完每列瓦片数=逻辑区域每列瓦片数%N模块后,则进入最后一列瓦片的高=剩余高模块;
步骤3:计算子图的左上角顶点地理坐标
第一路执行完最后一列瓦片的高=输入的瓦片高模块后,则进入计算子图的左上角顶点地理坐标模块;
第二路执行完最后一列瓦片的高=剩余高模块后,则进入计算子图的左上角顶点地理坐标模块;
步骤4:计算子图的右下角顶点地理坐标
执行完计算子图的左上角顶点地理坐标模块后,则进入计算子图的右下角顶点地理坐标。
本发明的有益效果是:本发明利用基于PC集群的数据分布存储以及并行计算能力,提高海量遥感影像金字塔生成的速度,有别于传统的传统金字塔的构造方法;N*M宫格划分是本专利特色之处,考虑到在传统金字塔创建算法中同层瓦片在创建时没有严格的先后顺序依赖关系,继而找到改进传统金字塔创建算法的可能性。利用分布式并行计算能力和大规模分布式数据存储,N*M宫格划分将原金字塔创建算法改进成分布式并行算法,将创建的大作业割裂成若干个小任务分配到各个计算节点进行计算,从而大大提高了算法的执行效率;各个计算节点避免了因为影像块文件跨宫格而造成的“黑边”问题,可以并行地创建金字塔,达到加快金字塔的创建速度,并保证了金字塔创建的准确性。
附图说明
下面结合附图和实施例对本发明进一步说明。
附图1是本发明海量遥感影像快速建立金字塔算法结构的方框示意图;
附图2是本发明逻辑区域、子图、影像块和瓦片关系示意图;
附图3是本发明N*M宫格划分和计算子图时,对于宫格[i,j]的工作流程图;
附图4是本发明集群与单机算法效率比较示意图;
附图5是本发明在8,16,32GB的数据量下,节点数不同的算法效率比较示意图;
附图中标号说明:
1-开始;                41-逻辑区域;
2-输入初始参数;        411-子图A;
21-金字塔层数<0?      412-子图B;
22-源文件存在?         4121-影像块B1;
23-瓦片宽>0?          413-子图C;
24-瓦片高>0?          414-子图D;
3-计算“逻辑区域”;
31-宫格矩阵列M>0?
32-宫格矩阵行N>0?
4-划分“逻辑区域”成N*M宫格;
5-循环计算每个宫格的子图;
6-分配创建任务;
61-创建金字塔A;
62-创建金字塔B;
7-创建金字塔失败个数>0?
8-成功结束;
9-异常结束;
10-宫格[i,j]在宫格矩阵最后一列?
101-每行瓦片数=逻辑区域每行瓦片数/M;
1011-最后一行瓦片的宽=输入的瓦片宽;
102-每行瓦片数=逻辑区域每行瓦片数%M;
1021-最后一行瓦片的宽=剩余宽;
11-宫格[i,j]在宫格矩阵最后一行?
111-每列瓦片数=逻辑区域每列瓦片数/N;
1111-最后一列瓦片的高=输入的瓦片高;
112-每列瓦片数=逻辑区域每列瓦片数%N;
1121-最后一列瓦片的高=剩余高;
12-计算子图的左上角顶点地理坐标;
13-计算子图的右下角顶点地理坐标;
具体实施方式
请参阅附图1、2、3、4、5所示,一种基于分布式的海量遥感影像快速建立金字塔算法包括:传统金字塔的构造方法,该方法是对传统金字塔算法的改进,利用分布式数据存储和并行计算能力,通过控制节点和计算节点之间的通信传递金字塔创建任务和原始影像块文件列表,用控制节点来指导计算节点的金字塔创建,实现海量遥感影像快速建立金字塔算法,包括三部分:N*M宫格划分,金字塔创建任务分配及调度,和金字塔创建,其中:
N*M宫格划分:在N*M宫格划分中涉及到“逻辑区域影像”、“子图”、区域影像、影像块及瓦片,上述“逻辑区域影像”、“子图”为逻辑概念,而非物理存在,区域影像、影像块和瓦片是真实的物理存在,按照地理空间顺序排列而成,覆盖一定地理范围的瓦片集合称为“子图”,其记录子图的图幅大小、左上角顶点的经纬度位置的元数据信息,按照地理空间顺序排列而成,覆盖一定地理范围的“子图”集合称为“逻辑区域影像”,是由影像块组成的区域影像的逻辑表示,“逻辑区域影像”记录了区域影像的图幅大小、左上角顶点的经纬度位置的元数据信息,以上五者逻辑包含关系为:区域影像包含子图,子图包含影像块,影像块包含瓦片,利用宫格划分方法,将遥感数据均匀的分配到各个计算节点,将金字塔的创建划分成各项任务并行执行且并行计算,来实现正确划分宫格和计算宫格信息,N*M宫格划分在控制节点上执行;
金字塔创建任务分配及调度:根据N*M宫格划分参数为每个宫格生成对应的逻辑子任务,并将这些子任务加入任务队列,同时控制节点启动监控程序,监控作业的状态,任务调度采用“FIFO”先进先出模式,计算节点以PULL的方式积极向控制节点发送任务计划请求,从任务队列中取出任务计划并执行,在执行成功后,计算节点向控制节点提交状态信息,控制节点作为任务调度模块,读取任务配置参数生成金字塔创建的大作业,金字塔创建任务分配及调度在控制节点上执行;
金字塔创建:根据接收到的任务计划,包括:宫格信息和影像块集合,将分布存储在该计算节点的“子图”,作为金字塔的输入文件并计算节点,按金字塔创建方法来创建金字塔,各个计算节点根据收到的宫格信息,同分布存储在该节点的“子图”一起作为输入文件,并行地创建金字塔的0层,计算节点以指定金字塔的层数作为循环控制条件,上层金字塔文件作为输入,采用4个像素点提取1个像素点写入下层金字塔文件的做法,得到金字塔的下层,金字塔创建在计算节点上执行;
海量遥感影像快速建立金字塔算法的具体工作步骤是:
步骤1:开始1
准备就绪:基于PC集群的数据分布存储;
步骤2:输入初始参数2
在控制节点指定金字塔创建的相关参数,包括:宫格矩阵的行数N、宫格矩阵的列数M,源文件的磁盘路径,金字塔的目标路径,金字塔层数,瓦片的宽和高;
如果判断模块的金字塔层数<0 21,则进入异常结束9模块,如果判断模块的金字塔层数非<0 21,则进入源文件存在22的判断模块?
如果判断模块的源文件存在22,则进入瓦片宽>0 23的判断模块?如果判断模块的源文件不存在22,则进入异常结束9模块;
如果判断模块的瓦片宽>0 23,则进入瓦片高>0 24的判断模块?
如果判断模块的瓦片宽非>0 23,则进入异常结束9模块;
如果判断模块的瓦片高>0 24,则进入计算“逻辑区域”3模块,如果判断模块的瓦片高非>0 24,则进入异常结束9模块;
步骤3:计算“逻辑区域”3
控制节点根据源文件的磁盘路径,获取源文件列表,并计算源文件影像块对应的逻辑区域影像;
执行完计算“逻辑区域”3模块后,则进入判断模块的宫格矩阵列M>0 31;
如果判断模块的宫格矩阵列M>0 31,则进入宫格矩阵行N>032的判断模块?如果判断模块的宫格矩阵列M非>0 31,则进入异常结束9模块;
如果判断模块的宫格矩阵行N>0 32,则进入划分“逻辑区域”成N*M宫格4,如果判断模块的宫格矩阵行N非>0 32,则进入异常结束9模块;
步骤4:划分“逻辑区域”成N*M宫格4
N*M划分宫格:控制节点按照“宫格中的瓦片是完整的遥感文件”以及“等分矩阵瓦片数”的规则划分逻辑区域影像成N*M个不等大小的宫格,则每个宫格对应区域影像的一部分——子图,属于同一个子图的影像块将分配到同一个计算节点中;
a).计算瓦片个数
按照瓦片指定的宽、高,计算逻辑区域影像所能切割得到的瓦片个数Nnum*Mnum,其中Nnum表示纵向每列瓦片个数,Mnum表示横向每行瓦片个数;
b).等分瓦片个数
等分瓦片个数Nnum*Mnum到N*M个宫格中,其中N为宫格矩阵的行数,M为宫格矩阵的列数,记宫格[i,j]分别为宫格在矩阵中行号和列号,除了最后一行和最后一列的宫格之外,其他宫格的瓦片数均为(Nnum/N)*(Mnum/M),其中,处于矩阵最后一行的宫格其瓦片个数应为 ( Nnum - Nnum N * ( N - 1 ) ) * ( Mnun / M ) , 而处于矩阵最后一列的宫格其瓦片个数应为 ( Nnum / N ) * ( Nnum - Nnum N * ( N - 1 ) ) ;
c).计算子图的经纬度坐标
根据每个宫格包含的瓦片数,瓦片宽、高和逻辑区域影像左上角的顶点经纬度坐标,计算得到所有宫格对应子图的左上角顶点和右下角顶点经纬度坐标;
d).计算宫格子图对应的影像块文件列表
根据步骤c的左上角和右下角顶点的经纬度坐标生成经纬度坐标矩形,同所有待创建金字塔的影像块文件的经纬度坐标外包矩形相比较,包含在该矩形内及与该矩形相交的影像块都属于该宫格;
e).封装宫格信息
将步骤b到d中的瓦片个数、瓦片宽和高、宫格左上角和右下角顶点的经纬度坐标,宫格所属影像块文件列表封装成宫格信息,用于金字塔的创建,并完成从控制节点传递到计算节点的创建任务;
步骤5:循环计算每个宫格的子图5
执行完划分“逻辑区域”成N*M宫格4模块后,则进入循环计算每个宫格的子图5模块;
步骤6:分配创建任务6
执行完循环计算每个宫格的子图5模块后,则进入分配创建任务6模块,分配创建任务6模块并行地创建金字塔A 61、创建金字塔B 62等…及创建金字塔N,并进行并行计算;
步骤7:创建金字塔失败个数>0 7?
执行完分配创建任务6模块后,则进入判断模块的创建金字塔失败个数>0 7;
如果判断模块的创建金字塔失败个数>0 7,则进入异常结束9模块,如果判断模块的创建金字塔失败个数非>0 7,则进入成功结束8模块;
步骤8:成功结束8
当判断模块的创建金字塔失败个数非>0 7,则成功结束8。
进一步的,所述的一种基于分布式的海量遥感影像快速建立金字塔算法的分布式是由以太网连接的一个控制节点和多个计算节点所组成的集群。
进一步的,所述的一种基于分布式的海量遥感影像快速建立金字塔算法的区域影像是航空平台和卫星平台上的遥感器,利用遥感技术所获得关于至少一个区域的高分辨率像片。
进一步的,所述的一种基于分布式的海量遥感影像快速建立金字塔算法的影像块是为了符合浏览窗口尺寸和加快浏览速度,采用地理信息工具在保证原有分辨率的前提下,将区域影像剪裁成至少一个相对区域影像来说小尺寸的遥感像片。
进一步的,所述的一种基于分布式的海量遥感影像快速建立金字塔算法的逻辑区域影像是区域影像的逻辑表示,其记录区域影像的图幅大小、左上角顶点的经纬度位置、仿射地理变换矩阵的元数据信息。
进一步的,所述的一种基于分布式的海量遥感影像快速建立金字塔算法的子图是逻辑区域影像中根据N*M宫格划分规则划分后落入在宫格的瓦片集合,子图的宽是宫格的宽度,子图的高是宫格的高度。
进一步的,所述的一种基于分布式的海量遥感影像快速建立金字塔算法的宫格信息是宫格在宫格矩阵中的编号,该宫格对应的子图的地理坐标、该宫格对应的子图的图幅大小、该宫格所包含的瓦片数、该宫格所包含的瓦片宽和高、该宫格最后一行的瓦片高、该宫格最后一列的瓦片宽及宫格对应子图所包含的影像块列表。
进一步的,所述的一种基于分布式的海量遥感影像快速建立金字塔算法的逻辑区域、子图、影像块及瓦片之间的具体关系为:
一逻辑区域41包含子图的影像块为:子图A 411、子图B 412、子图C 413和子图D 414,其中:子图B 412的影像块集合包含B1、B2、B3等…以及与子图相交的影像块,而影像块B1 4121又包含至少一瓦片集合。
请参阅附图3所示,进一步的,所述的一种基于分布式的海量遥感影像快速建立金字塔算法的N*M宫格划分和计算子图时,对于宫格[i,j]的具体工作步骤是:
步骤1:判断宫格[i,j]在宫格矩阵最后一列10?
如果判断模块的宫格[i,j]不在宫格矩阵最后一列,则进入第一路的每行瓦片数=逻辑区域每行瓦片数/M 101模块,如果判断模块的宫格[i,j]在宫格矩阵最后一列,则进入第二路的每行瓦片数=逻辑区域每行瓦片数%M 102模块;
第一路先执行每行瓦片数=逻辑区域每行瓦片数/M 101模块,执行完每行瓦片数=逻辑区域每行瓦片数/M 101模块后,则进入最后一行瓦片的宽=输入的瓦片宽1011模块;
第二路先执行每行瓦片数=逻辑区域每行瓦片数%M 102模块,执行完每行瓦片数=逻辑区域每行瓦片数%M 102模块后,则进入最后一行瓦片的宽=剩余宽1021模块;
步骤2:判断宫格[i,j]在宫格矩阵最后一行11?
执行完最后一行瓦片的宽=输入的瓦片宽1011模块后,则进入判断模块宫格[i,j]在宫格矩阵最后一行11?
执行完最后一行瓦片的宽=剩余宽1021模块后,则进入判断模块宫格[i,j]在宫格矩阵最后一行11?
如果判断模块的宫格[i,j]不在宫格矩阵最后一行,则进入第一路的每列瓦片数=逻辑区域每列瓦片数/N 111模块,如果判断模块的宫格[i,j]在宫格矩阵最后一行,则进入第二路的每列瓦片数=逻辑区域每列瓦片数%N 112模块;
第一路先执行每列瓦片数=逻辑区域每列瓦片数/N 111模块,执行完每列瓦片数=逻辑区域每列瓦片数/N 111模块后,则进入最后一列瓦片的高=输入的瓦片高1111模块;
第二路先执行每列瓦片数=逻辑区域每列瓦片数%N 112模块,执行完每列瓦片数=逻辑区域每列瓦片数%N112模块后,则进入最后一列瓦片的高=剩余高1121模块;
步骤3:计算子图的左上角顶点地理坐标12
第一路执行完最后一列瓦片的高=输入的瓦片高1111模块后,则进入计算子图的左上角顶点地理坐标12模块;
第二路执行完最后一列瓦片的高=剩余高112 1模块后,则进入计算子图的左上角顶点地理坐标12模块;
步骤4:计算子图的右下角顶点地理坐标13
执行完计算子图的左上角顶点地理坐标12模块后,则进入计算子图的右下角顶点地理坐标13。
本发明的技术特征为:
本发明提供了一种基于数据分布式存储,为海量遥感影像文件建立金字塔的并行算法,包括:N*M宫格划分,金字塔创建任务分配及调度,金字塔创建。
其中,N*M宫格划分是指控制节点首先按照“宫格中的瓦片是完整的遥感文件”以及“等分矩阵瓦片数”的规则将“逻辑区域影像”划分成N*M个瓦片个数大致相等的宫格,则每个宫格对应“逻辑区域影像”中的一部分-——“子图”。地理范围上包含于或与“子图”相交的影像块文件都将属于同一个“子图”。这样的做法体现了数据分布存储和并行计算的特点,为海量遥感影像的快速建立金字塔提供了可能。
本发明中的“遥感数据”是指太阳辐射经过大气层到达地面后被地物反射后再次穿过大气层,被遥感传感器接收的辐射能量,并由传感器将这部分能量的特征传送回地面接受,其被传送回地面的能量特征数据被称为遥感数据。
其中,N*M宫格划分的规则是“宫格中的瓦片是完整的遥感文件”以及“等分矩阵瓦片数”。本发明的创新之一就是,利用这种宫格划分方法,将遥感数据均匀的分配到各个计算节点,可以将金字塔的创建划分成若干任务并行执行,利用了并行计算缩短创建时间。N*M宫格划分规则具体表示为:
1)每个宫格的行和列上都有完整的瓦片,而瓦片的一部分,记宫格宽为cell_w,宫格高为cell_h,宫格行数为r,列数为c,瓦片的平均宽为tile_w,平均高为tile_h,其关系如下所示
cell_w=c*tile_w
                    ①
cell_h=r*tile_h
2)等分矩阵瓦片数,即按照瓦片指定的宽、高,计算逻辑区域影像所能切割得到的瓦片个数Nnum*Mnum均匀的分配到N*M个宫格中,记i,j分别为宫格在矩阵中行号和列号,m为宫格每行应包含的瓦片个数,n为宫格每列应包含的瓦片个数,则每个宫格中包含的瓦片数可以表示为:
i ≠ N , n = Nnum N , i = N , n = Nnum - Nnum N * ( N - 1 )
j ≠ M , m = Mnum M , j = M , m = Mnum - Mnum M * ( M - 1 )
3)在等分瓦片到宫格时,因“逻辑区域影像”图幅大小常常可能不是指定瓦片大小的整数倍,因此会造成最后一行瓦片的高度和最后一列的瓦片宽度不足指定大小,即“边角剩余”。在这里为了后续说明的方便,记最后一行瓦片的高度为“剩余高”,最后一列的瓦片宽度为“剩余宽”。“剩余高”和“剩余宽”需要在进行N*M宫格划分时特别为位于矩阵最后一行和最后一列的宫格指明,记指定瓦片宽w,指定瓦片高h,剩余宽w’,剩余高h’,每个宫格最后一行瓦片的高为last_h,每个宫格最后一列瓦片的宽为last_w,则每个宫格(i,j)中瓦片的图幅大小可表示为:
i≠N,last_h=h;i=N,last_h=h′
                                    ③
j≠M,last_w=w;j=M,last_w=w′
本发明中的“边角剩余”是指在对“逻辑区域影像”进行瓦片切割时,“逻辑区域影像”出现最后一行的瓦片高度小于用户指定的瓦片高度或者最后一列的瓦片宽度小于用户指定的瓦片宽度的情况,记“逻辑区域影像”的图幅高度为H,宽度为W,可表示为如下:
0<h′<h    ④
0<w′<w    ⑤
在本发明中将“逻辑区域影像”出现最后一行的瓦片高度小于用户指定的瓦片高度的情况,称作“边角下剩余”,即如公式(4)所示。
在本发明中将“逻辑区域影像”出现最后一列的瓦片宽度小于用户指定的瓦片宽度的情况,称作“边角右剩余”,即如公式(5)所示。
本发明中的“黑边”是指为荧幕中显示的内容除了正常影像之外,两侧或四周多出来的未显示区域,因是黑色,故称之为“黑边”。黑边的产生是由于原始影像与用户指定的尺寸规格不同,在转换后造成的。
本发明中的“宫格信息”是指宫格对应的子图的“瓦片切割情况”、子图覆盖的地理范围,子图对应的影像块文件列表的描述信息。
本发明中的“瓦片切割情况”是指“逻辑区域影像”经过N*M宫格划分规则后分到该宫格中的瓦片个数n*m(见公式(2)),瓦片的宽w和高h,最后一行瓦片的高last_h和最后一列瓦片的宽last_w(见公式(3))。
本发明中的“子图覆盖的地理范围”是指根据“逻辑区域影像”左上角顶点的经纬度坐标和经纬度坐标系中的单位象元宽及单位象元高,瓦片的宽w、高h,宫格包含的瓦片个数n*m,和宫格的行列号(j,i),计算宫格对应子图的左上角和右下角经纬度坐标。记“逻辑区域影像”左上角顶点的经纬度坐标为(ULX,ULY),单位象元宽为scaleX,单位象元高为scaleY,子图的左上角经纬度坐标为(ulx,uly),右下角经纬度坐标为(rlx,rly):
ulx = ULX + w * i * Mnum M * scaleX
uly = ULY + h * j * Nnum N * scaleY
rlx=ulx+w*(m-1)*scaleX+last_w*scaleX
                                        ⑦
rly=uly+h*(n-1)*scaleY+last_h*scaleY
本发明中的子图对应的影像块列表是指如果影像块文件所覆盖的地理范围处在或和根据公式(6)和(7)计算所得“子图覆盖的地理范围”相交,则该影像块文件属于该子图,将其在磁盘上的位置写入到子图对应的影像块文件列表中。
本发明的创新之一就是通过正确划分宫格和计算宫格信息,保证了金字塔创建的正确性和解决了因宫格划分而导致的“黑边”问题。
其中,金字塔创建任务的分配是由控制节点负责生成任务计划和执行状态的监控。控制节点读取任务配置参数生成金字塔创建的大作业,根据N*M宫格划分参数为每个宫格生成对应的逻辑子任务,并将这些任务加入任务等待队列。任务采用先进先出(First In First Out,FIFO)方式分发给计算节点。而对于失败的任务将存放在任务失败队列中,用于后续再次将任务发送给计算节点。同时控制节点上会监控执行状态,当收到所有计算节点的任务状态信息后,会更新大作业的状态。
计算节点采用pull的方式,积极向控制节点发送任务请求,从任务等待队列中取出任务,在执行成功后,计算节点向控制节点提交状态信息。
其中,金字塔创建是指当控制节点正确划分宫格和计算宫格信息后,宫格信息作为创建任务发送到计算节点,计算节点借鉴E.H.Adelson等在“Pyramid methods in image processing”中所提出的金字塔创建方法并行执行创建任务。
本发明的创新之一就是利用了并行计算能力,大大降低了金字塔采用单线程顺序创建的时间。若a为0层金字塔所得到的瓦片个数,l表示金字塔的层数,M为宫格行数,N为宫格列数,则传统金字塔算法的时间复杂度为O(a+a/2+a/22+......+a/2m),即
Figure BDA0000088587030000261
而本算法的时间复杂度为
Figure BDA0000088587030000262
以下对本发明的实施例作进一步详细描述,但本实施例并不用于限制本实发明,凡是采用本发明的相似结构及其相似变化,均应列入本发明的保护范围。
本发明一种基于分布式的海量遥感影像快速建立金字塔的算法,主要包括N*M宫格划分、金字塔创建任务分配和金字塔创建。其中N*M宫格划分将原金字塔创建算法改进成分布式并行算法,将创建的大作业割裂成若干个小任务分配到各个计算节点进行计算,从而大大提高了算法的执行效率。金字塔创建任务分配是由控制节点生成任务计划,计算节点积极请求任务计划创建金字塔的过程。金字塔创建在各个计算节点上参照传统金字塔创建的算法来完成。
控制节点负责生成任务计划和执行状态的监控。控制节点读取任务配置参数生成金字塔创建的大作业,根据N*M宫格划分参数为每个宫格生成对应的逻辑子任务,并将这些任务加入任务等待队列。任务采用先进先出(First In First Out,FIFO)方式分发给计算节点。而对于失败的任务将存放在任务失败队列中,用于后续再次将任务发送给计算节点。同时控制节点上会监控执行状态,当收到所有计算节点的任务状态信息后,会更新大作业的状态。
计算节点采用pull的方式,积极向控制节点发送任务请求,从任务等待队列中取出任务,在执行成功后,计算节点向控制节点提交状态信息。
各个计算节点根据收到的任务计划(即宫格信息),同分布存储在该节点的“子图”作为输入文件,参照并行地创建金字塔的0层。
各个计算节点以指定金字塔的层数作为循环控制条件,上层金字塔文件作为输入,采用4个像素点提取1个像素点写入下层金字塔文件的做法,得到金字塔的下层。
请参阅附图4、5所示,实施例1:
本发明提出的一种基于分布式的海量遥感影像快速建立金字塔的算法,实现于“海量影像数据管理系统”中。实施例1采用C#语言编写,依赖开源地理数据抽象库(Geospatial Data AbstractionLibrary,GDAL)提供的GeoTIFF等文件格式的读写操作。其中控制节点和计算节点之间通信和远程过程调用采用了.net framework提供的windows通信协议(Windows Communication Foundation,WCF)机制。实例运行在由千兆以太网连接的一个控制节点,5个计算节点组成的集群环境下。节点的硬件配置如下表1所示:
Figure BDA0000088587030000281
表1
实验中,节点数,源文件总体数据量,指定瓦片大小和金字塔层数都会影响到算法的执行效率。其中节点数和总体数据量是关键指标。经过多次实验证明,当瓦片大小选取1024*1024时,算法执行效率较优。同时为了方便实验,金字塔层数统一选取3层。
按照图1所示算法步骤,实施例1分别进行了两类实验:(1),不同总体数据量下,保持宫格每次分配到的数据量基本一致的情况下,随着源文件总体数据量成指数增长,算法执行时间发生的变化,并与在相同的源文件总体数据量下,单机使用传统算法执行的时间做对比;(2),保证源文件总体数据量不变,节点数发生线性变化,即集群大小线性扩张,算法的执行时间发生的变化。
在实验(1)中,如图5所示,为保证尽管总体数据量成指数增长,但每次宫格分配到的数据量基本一致,需要调整N*M。经多次实验所得,在总体数据量成指数增长时,N*M的值在实验中取如下错误!未找到引用源。
Figure BDA0000088587030000291
表2
在错误!未找到引用源。中,从4G增长到8G时,实验影像对应的“逻辑区域影像”横向增长一倍,所以为保证两次宫格分配到的数据量基本一致,宫格N*M的值从3*3变成了9*2。从8G增长到16G时,发生的变化相同,所以宫格N*M的值从9*2变成了15*3。从16G增长到32G时,实验影像对应的“逻辑区域影像”纵向增长一倍,所以宫格N*M的值从15*3变成了15*6。从32G增长到64G时,发生的变化相同,所以宫格N*M的值从15*6变成了12*14。
通过多次实验,得到了两类实验的算法执行时间变化趋势图。图4表示实验(1)在数据量分别为4,8,16,32,64GB下,比较节点数为5的集群和单机的算法执行效率。图5表示实验(2)在源文件总体数据量分别在8,16,32GB的情况下,节点个数由1到5增长的情况下,算法的执行时间变化。
在多次实验中,72GB的影像数据,切割成1024*1024大小的瓦片构成3层金字塔,在节点数为5的集群上执行时间是54分46秒。由此可以推广当集群大小合适时,大数据量的影像生成金字塔的时间是可观的。因此实验证明,本发明中提出的算法不仅大大提高了传统金字塔算法的执行效率,适合于海量影像生成金字塔,还保证了算法的正确性。
本发明利用了分布式数据存储和并行计算能力,通过控制节点和计算节点之间的通信传递金字塔创建任务和原始影像块文件列表,控制节点来指导计算节点的金字塔创建。本发明中的算法分为三大部分,分别在控制节点和计算节点上执行,包括:N*M宫格划分、金字塔创建任务分配及调度和金字塔创建。其中N*M宫格划分,金字塔创建任务分配及调度在控制节点上执行,金字塔创建在计算节点上执行,如错误!未找到引用源。。
N*M宫格划分:在N*M宫格划分中涉及到“逻辑区域影像”、“子图”、区域影像、影像块,瓦片。其中“逻辑区域影像”、“子图”为逻辑概念,而非物理存在。区域影像、影像块和瓦片是真实的物理存在。按照地理空间顺序排列而成,覆盖一定地理范围的瓦片集合称为“子图”,其记录了子图的图幅大小、左上角顶点的经纬度位置等元数据信息。而按照地理空间顺序排列而成,覆盖一定地理范围的“子图”集合称为“逻辑区域影像”,其是由影像块组成的区域影像的逻辑表示。“逻辑区域影像”记录了区域影像的图幅大小、左上角顶点的经纬度位置等元数据信息。所以以上五者按照逻辑包含关系可表示为
Figure BDA0000088587030000311
具体参见错误!未找到引用源。。
首先计算按照指定的瓦片宽、高,宫格矩阵对应的“逻辑区域影像”切割所能得到的瓦片数。根据此瓦片数,按照“宫格中的瓦片是完整的遥感文件”  以及“等分矩阵瓦片数”的规则划分“逻辑区域影像”成N*M个瓦片个数大致相等的宫格,则每个宫格对应“逻辑区域影像”中的一部分--“子图”。属于同一个“子图”的影像块将存放在同一个计算节点上。而对于影像块中存在部分瓦片在一个宫格,另一部分瓦片在另外的宫格中的情况,出于简化算法复杂性的考虑,采取冗余存储的办法将该影像块文件在其所跨的宫格上进行冗余存放。因此一个计算节点上存放一个“子图”,一个“子图”对应着一个宫格。
金字塔创建任务分配:控制节点负责生成任务计划和执行状态的监控,计算节点负责执行任务计划。控制节点作为任务调度模块,读取任务配置参数生成金字塔创建的大作业,  根据N*M宫格划分参数为每个宫格生成对应的逻辑子任务,并这些子任务加入任务队列。同时控制节点启动监控程序,监控作业的状态。任务调度采用“FIFO”先进先出模式,计算节点以PULL的方式积极向控制节点发送任务计划请求,从任务队列中取出任务计划并执行。在执行成功后,计算节点向控制节点提交状态信息。当控制节点收到所有计算节点的任务状态信息后,会更新大作业的状态。
金字塔创建:计算节点根据收到的任务计划,即宫格信息,和分布存储在该计算节点的“子图”,即影像块集合,作为金字塔的输入文件,参照E.H.Adelson等在“Pyramid methods in imageprocessing”中所提出的金字塔创建方法来创建金字塔。
本发明提供了一种基于分布式的海量遥感影像快速建立金字塔的算法。该算法在分布式环境下,利用分布式并行计算能力,为海量遥感影像快速建立金字塔。算法大大提高了海量遥感影像建立金字塔的速度,解决了影像因为宫格划分而产生“黑边”的问题。该算法关键步骤包括:N*M宫格划分、金字塔创建任务分配和金字塔创建。其中N*M宫格划分是本专利特色之处,考虑到在传统金字塔创建算法中同层瓦片在创建时没有严格的先后顺序依赖关系,继而找到改进传统金字塔创建算法的可能性。利用分布式并行计算能力和大规模分布式数据存储,N*M宫格划分将原金字塔创建算法改进成分布式并行算法,将创建的大作业割裂成若干个小任务分配到各个计算节点进行计算,从而大大提高了算法的执行效率。N*M宫格划分分为以下步骤:(1)计算按照指定的瓦片宽、高,宫格矩阵对应的“逻辑区域影像”切割所能得到的瓦片数。根据此瓦片数,按照“宫格中的瓦片是完整的影像文件”以及“等分矩阵瓦片数”的规则将由影像块组成的“区域影像”划分成N*M个瓦片数大致相等的宫格。即每个宫格包含了整个“逻辑区域影像”所对应的瓦片集合中的一个子集,该瓦片子集代表了一个“子图”。(2)根据划分后瓦片集合所覆盖的“子图”的地理范围,将属于同一个“子图”的影像块载入到同一个计算节点上。对于跨宫格的影像文件冗余存放到其所跨的各个宫格内,即计算节点上。(3)将各个宫格所包含的瓦片数,及瓦片宽、高,最后一行瓦片的高,和最后一列瓦片的宽等信息封装成“宫格信息”,记录在控制节点中的宫格信息队列中。(4)、根据(3)控制节点上的所记录的“宫格信息”,各个计算节点避免了因为影像块文件跨宫格而造成的“黑边”问题,可以并行地创建金字塔。金字塔创建任务分配是由控制节点生成任务计划,计算节点积极请求任务计划创建金字塔的过程。金字塔创建在各个计算节点上参照传统金字塔创建的算法来完成。

Claims (9)

1.一种基于分布式的海量遥感影像快速建立金字塔算法,包括:传统金字塔的构造方法,其特征在于:该方法是对传统金字塔算法的改进,利用分布式数据存储和并行计算能力,通过控制节点和计算节点之间的通信传递金字塔创建任务和原始影像块文件列表,用控制节点来指导计算节点的金字塔创建,实现海量遥感影像快速建立金字塔算法,包括三部分:N*M宫格划分,金字塔创建任务分配及调度,和金字塔创建,其中:
N*M宫格划分:在N*M宫格划分中涉及到“逻辑区域影像”、“子图”、区域影像、影像块及瓦片,上述“逻辑区域影像”、“子图”为逻辑概念,而非物理存在,区域影像、影像块和瓦片是真实的物理存在,按照地理空间顺序排列而成,覆盖一定地理范围的瓦片集合称为“子图”,其记录子图的图幅大小、左上角顶点的经纬度位置的元数据信息,按照地理空间顺序排列而成,覆盖一定地理范围的“子图”集合称为“逻辑区域影像”,是由影像块组成的区域影像的逻辑表示,“逻辑区域影像”记录了区域影像的图幅大小、左上角顶点的经纬度位置的元数据信息,以上五者逻辑包含关系为:区域影像包含子图,子图包含影像块,影像块包含瓦片,利用宫格划分方法,将遥感数据均匀的分配到各个计算节点,将金字塔的创建划分成各项任务并行执行且并行计算,来实现正确划分宫格和计算宫格信息,N*M宫格划分在控制节点上执行;
金字塔创建任务分配及调度:根据N*M宫格划分参数为每个宫格生成对应的逻辑子任务,并将这些子任务加入任务队列,同时控制节点启动监控程序,监控作业的状态,任务调度采用“FIFO”先进先出模式,计算节点以PULL的方式积极向控制节点发送任务计划请求,从任务队列中取出任务计划并执行,在执行成功后,计算节点向控制节点提交状态信息,控制节点作为任务调度模块,读取任务配置参数生成金字塔创建的大作业,金字塔创建任务分配及调度在控制节点上执行;
金字塔创建:根据接收到的任务计划,包括:宫格信息和影像块集合,将分布存储在该计算节点的“子图”,作为金字塔的输入文件并计算节点,按金字塔创建方法来创建金字塔,各个计算节点根据收到的宫格信息,同分布存储在该节点的“子图”一起作为输入文件,并行地创建金字塔的0层,计算节点以指定金字塔的层数作为循环控制条件,上层金字塔文件作为输入,采用4个像素点提取1个像素点写入下层金字塔文件的做法,得到金字塔的下层,金字塔创建在计算节点上执行;
海量遥感影像快速建立金字塔算法的具体工作步骤是:
步骤1:开始(1)
准备就绪:基于PC集群的数据分布存储;
步骤2:输入初始参数(2)
在控制节点指定金字塔创建的相关参数,包括:宫格矩阵的行数N、宫格矩阵的列数M,源文件的磁盘路径,金字塔的目标路径,金字塔层数,瓦片的宽和高;
如果判断模块的金字塔层数<0(21),则进入异常结束(9)模块,如果判断模块的金字塔层数非<0(21),则进入源文件存在(22)的判断模块?
如果判断模块的源文件存在(22),则进入瓦片宽>0(23)的判断模块?如果判断模块的源文件不存在(22),则进入异常结束(9)模块;
如果判断模块的瓦片宽>0(23),则进入瓦片高>0(24)的判断模块?如果判断模块的瓦片宽非>0(23),则进入异常结束(9)模块;
如果判断模块的瓦片高>0(24),则进入计算“逻辑区域”(3)模块,如果判断模块的瓦片高非>0(24),则进入异常结束(9)模块;
步骤3:计算“逻辑区域”(3)
控制节点根据源文件的磁盘路径,获取源文件列表,并计算源文件影像块对应的逻辑区域影像;
执行完计算“逻辑区域”(3)模块后,则进入判断模块的宫格矩阵列M>0(31);
如果判断模块的宫格矩阵列M>0(31),则进入宫格矩阵行N>0(32)的判断模块?如果判断模块的宫格矩阵列M非>0(31),则进入异常结束(9)模块;
如果判断模块的宫格矩阵行N>0(32),则进入划分“逻辑区域”成N*M宫格(4),如果判断模块的宫格矩阵行N非>0(32),则进入异常结束(9)模块;
步骤4:划分“逻辑区域”成N*M宫格(4)
N*M划分宫格:控制节点按照“宫格中的瓦片是完整的遥感文件”以及“等分矩阵瓦片数”的规则划分逻辑区域影像成N*M个不等大小的宫格,则每个宫格对应区域影像的一部分——子图,属于同一个子图的影像块将分配到同一个计算节点中;
a).计算瓦片个数
按照瓦片指定的宽、高,计算逻辑区域影像所能切割得到的瓦片个数Nnum*Mnum,其中Nnum表示纵向每列瓦片个数,Mnum表示横向每行瓦片个数;
b).等分瓦片个数
等分瓦片个数Nnum*Mnum到N*M个宫格中,其中N为宫格矩阵的行数,M为宫格矩阵的列数,记宫格[i,j]分别为宫格在矩阵中行号和列号,除了最后一行和最后一列的宫格之外,其他宫格的瓦片数均为(Nnum/N)*(Mnum/M),其中,处于矩阵最后一行的宫格其瓦片个数应为 ( Nnum - Nnum N * ( N - 1 ) ) * ( Mnun / M ) , 而处于矩阵最后一列的宫格其瓦片个数应为 ( Nnum / N ) * ( Nnum - Nnum N * ( N - 1 ) ) ;
c).计算子图的经纬度坐标
根据每个宫格包含的瓦片数,瓦片宽、高和逻辑区域影像左上角的顶点经纬度坐标,计算得到所有宫格对应子图的左上角顶点和右下角顶点经纬度坐标;
d).计算宫格子图对应的影像块文件列表
根据步骤c的左上角和右下角顶点的经纬度坐标生成经纬度坐标矩形,同所有待创建金字塔的影像块文件的经纬度坐标外包矩形相比较,包含在该矩形内及与该矩形相交的影像块都属于该宫格;
e).封装宫格信息
将步骤b到d中的瓦片个数、瓦片宽和高、宫格左上角和右下角顶点的经纬度坐标,宫格所属影像块文件列表封装成宫格信息,用于金字塔的创建,并完成从控制节点传递到计算节点的创建任务;
步骤5:循环计算每个宫格的子图(5)
执行完划分“逻辑区域”成N*M宫格(4)模块后,则进入循环计算每个宫格的子图(5)模块;
步骤6:分配创建任务(6)
执行完循环计算每个宫格的子图(5)模块后,则进入分配创建任务(6)模块,分配创建任务(6)模块并行地创建金字塔A(61)、创建金字塔B(62)…及创建金字塔N,并进行并行计算;
步骤7:创建金字塔失败个数>0(7)?
执行完分配创建任务(6)模块后,则进入判断模块的创建金字塔失败个数>0(7);
如果判断模块的创建金字塔失败个数>0(7),则进入异常结束(9)模块,如果判断模块的创建金字塔失败个数非>0(7),则进入成功结束(8)模块;
步骤8:成功结束(8)
当判断模块的创建金字塔失败个数非>0(7),则成功结束(8)。
2.根据权利要求1所述的一种基于分布式的海量遥感影像快速建立金字塔算法,其特征在于:所述的分布式是由以太网连接的一个控制节点和多个计算节点所组成的集群。
3.根据权利要求1所述的一种基于分布式的海量遥感影像快速建立金字塔算法,其特征在于:所述的区域影像是航空平台和卫星平台上的遥感器,利用遥感技术所获得关于至少一个区域的高分辨率像片。
4.根据权利要求1、3所述的一种基于分布式的海量遥感影像快速建立金字塔算法,其特征在于:所述的影像块是为了符合浏览窗口尺寸和加快浏览速度,采用地理信息工具在保证原有分辨率的前提下,将区域影像剪裁成至少一个相对区域影像来说小尺寸的遥感像片。
5.根据权利要求1所述的一种基于分布式的海量遥感影像快速建立金字塔算法,其特征在于:所述的逻辑区域影像是区域影像的逻辑表示,其记录区域影像的图幅大小、左上角顶点的经纬度位置、仿射地理变换矩阵的元数据信息。
6.根据权利要求1、5所述的一种基于分布式的海量遥感影像快速建立金字塔算法,其特征在于:所述的子图是逻辑区域影像中根据N*M宫格划分规则划分后落入在宫格的瓦片集合,子图的宽是宫格的宽度,子图的高是宫格的高度。
7.根据权利要求1所述的一种基于分布式的海量遥感影像快速建立金字塔算法,其特征在于:所述的宫格信息是宫格在宫格矩阵中的编号,该宫格对应的子图的地理坐标、该宫格对应的子图的图幅大小、该宫格所包含的瓦片数、该宫格所包含的瓦片宽和高、该宫格最后一行的瓦片高、该宫格最后一列的瓦片宽及宫格对应子图所包含的影像块列表。
8.根据权利要求1所述的一种基于分布式的海量遥感影像快速建立金字塔算法,其特征在于:所述的逻辑区域、子图、影像块及瓦片之间的具体关系为:
一逻辑区域(41)包含子图的影像块为:子图A(411)、子图B(412)、子图C(413)和子图D(414),其中:子图B(412)的影像块集合包含B1、B2、B3以及与子图相交的影像块,而影像块B1(4121)又包含至少一瓦片集合。
9.根据权利要求1所述的一种基于分布式的海量遥感影像快速建立金字塔算法,其特征在于:所述的N*M宫格划分和计算子图时,对于宫格[i,j]的具体工作步骤是:
步骤1:判断宫格[i,j]在宫格矩阵最后一列(10)?
如果判断模块的宫格[i,j]不在宫格矩阵最后一列,则进入第一路的每行瓦片数=逻辑区域每行瓦片数/M(101)模块,如果判断模块的宫格[i,j]在宫格矩阵最后一列,则进入第二路的每行瓦片数=逻辑区域每行瓦片数%M(102)模块;
第一路先执行每行瓦片数=逻辑区域每行瓦片数/M(101)模块,执行完每行瓦片数=逻辑区域每行瓦片数/M(101)模块后,则进入最后一行瓦片的宽=输入的瓦片宽(1011)模块;
第二路先执行每行瓦片数=逻辑区域每行瓦片数%M(102)模块,执行完每行瓦片数=逻辑区域每行瓦片数%M(102)模块后,则进入最后一行瓦片的宽=剩余宽(1021)模块;
步骤2:判断宫格[i,j]在宫格矩阵最后一行(11)?
执行完最后一行瓦片的宽=输入的瓦片宽(1011)模块后,则进入判断模块宫格[i,j]在宫格矩阵最后一行(11)?
执行完最后一行瓦片的宽=剩余宽(1021)模块后,则进入判断模块宫格[i,j]在宫格矩阵最后一行(11)?
如果判断模块的宫格[i,j]不在宫格矩阵最后一行,则进入第一路的每列瓦片数=逻辑区域每列瓦片数/N(111)模块,如果判断模块的宫格[i,j]在宫格矩阵最后一行,则进入第二路的每列瓦片数=逻辑区域每列瓦片数%N(112)模块;
第一路先执行每列瓦片数=逻辑区域每列瓦片数/N(111)模块,执行完每列瓦片数=逻辑区域每列瓦片数/N(111)模块后,则进入最后一列瓦片的高=输入的瓦片高(1111)模块;
第二路先执行每列瓦片数=逻辑区域每列瓦片数%N(112)模块,执行完每列瓦片数=逻辑区域每列瓦片数%N(112)模块后,则进入最后一列瓦片的高=剩余高(1121)模块;
步骤3:计算子图的左上角顶点地理坐标(12)
第一路执行完最后一列瓦片的高=输入的瓦片高(1111)模块后,则进入计算子图的左上角顶点地理坐标(12)模块;
第二路执行完最后一列瓦片的高=剩余高(1121)模块后,则进入计算子图的左上角顶点地理坐标(12)模块;
步骤4:计算子图的右下角顶点地理坐标(13)
执行完计算子图的左上角顶点地理坐标(12)模块后,则进入计算子图的右下角顶点地理坐标(13)。
CN 201110258127 2011-09-02 2011-09-02 一种基于分布式的海量遥感影像快速建立金字塔算法 Expired - Fee Related CN102446208B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201110258127 CN102446208B (zh) 2011-09-02 2011-09-02 一种基于分布式的海量遥感影像快速建立金字塔算法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201110258127 CN102446208B (zh) 2011-09-02 2011-09-02 一种基于分布式的海量遥感影像快速建立金字塔算法

Publications (2)

Publication Number Publication Date
CN102446208A true CN102446208A (zh) 2012-05-09
CN102446208B CN102446208B (zh) 2013-08-28

Family

ID=46008709

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201110258127 Expired - Fee Related CN102446208B (zh) 2011-09-02 2011-09-02 一种基于分布式的海量遥感影像快速建立金字塔算法

Country Status (1)

Country Link
CN (1) CN102446208B (zh)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102693319A (zh) * 2012-05-31 2012-09-26 北京拓维思科技有限公司 基于金字塔的海量激光雷达点云存储方法
CN102902491A (zh) * 2012-08-29 2013-01-30 北京地拓科技发展有限公司 遥感影像数据写入及读取的方法及装置
WO2014044092A1 (zh) * 2012-09-20 2014-03-27 中兴通讯股份有限公司 一种数据分布方法和管理节点
CN104159129A (zh) * 2014-08-08 2014-11-19 北京大学 一种遥感数据有限带宽下剖分分块渐进传输方法
CN104597286A (zh) * 2015-01-30 2015-05-06 黄河水利委员会黄河水利科学研究院 一种黄河凌汛期流凌速度测量方法
CN105589951A (zh) * 2015-12-18 2016-05-18 中国科学院计算机网络信息中心 一种海量遥感影像元数据分布式存储方法及并行查询方法
CN105608222A (zh) * 2016-01-12 2016-05-25 中国人民解放军国防科学技术大学 一种大规模栅格数据集的瓦片金字塔快速构建方法
CN106372256A (zh) * 2016-09-30 2017-02-01 浙江大学 一种面向海量Argo数据的分布式存储方法
CN106991135A (zh) * 2017-03-15 2017-07-28 江苏物联网研究发展中心 面向遥感影像数据的快速瓦片生成方法
CN110428453A (zh) * 2019-07-30 2019-11-08 深圳云天励飞技术有限公司 数据处理方法、装置、数据处理设备及存储介质
CN110473146A (zh) * 2019-08-16 2019-11-19 苏州超擎图形软件科技发展有限公司 遥感图像显示方法、装置及存储介质和计算机设备
CN111145180A (zh) * 2019-12-25 2020-05-12 威创集团股份有限公司 一种应用于可视化大屏的地图瓦片的处理方法和相关装置
CN112199528A (zh) * 2020-10-12 2021-01-08 中国科学院空天信息创新研究院 一种大规模遥感数据在线获取方法
CN112215739A (zh) * 2020-10-12 2021-01-12 中国石油化工股份有限公司 一种用于AutoCAD的正射影图文件处理方法、装置及存储介质
CN112308443A (zh) * 2020-11-09 2021-02-02 中国科学院空天信息创新研究院 一种遥感信息产品生成工作流的批量调度方法及装置
CN112487016A (zh) * 2020-11-30 2021-03-12 上海汽车集团股份有限公司 一种无人驾驶车辆局部路径规划方法及装置
CN112991475A (zh) * 2021-05-17 2021-06-18 航天宏图信息技术股份有限公司 一种遥感图像的获取方法及装置
CN117221336A (zh) * 2023-11-08 2023-12-12 江西省水利科学院(江西省大坝安全管理中心、江西省水资源管理中心) 一种遥感影像发布方法及系统
CN112215739B (zh) * 2020-10-12 2024-05-17 中国石油化工股份有限公司 一种用于AutoCAD的正射影图文件处理方法、装置及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101339570A (zh) * 2008-08-12 2009-01-07 北京航空航天大学 一种高效的海量遥感数据分布式组织管理方法
CN101916301A (zh) * 2010-09-01 2010-12-15 中国地质大学(武汉) 基于空间关系的三维空间数据自适应预调度方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101339570A (zh) * 2008-08-12 2009-01-07 北京航空航天大学 一种高效的海量遥感数据分布式组织管理方法
CN101916301A (zh) * 2010-09-01 2010-12-15 中国地质大学(武汉) 基于空间关系的三维空间数据自适应预调度方法

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102693319B (zh) * 2012-05-31 2015-09-16 北京拓维思科技有限公司 基于金字塔的海量激光雷达点云存储方法
CN102693319A (zh) * 2012-05-31 2012-09-26 北京拓维思科技有限公司 基于金字塔的海量激光雷达点云存储方法
CN102902491A (zh) * 2012-08-29 2013-01-30 北京地拓科技发展有限公司 遥感影像数据写入及读取的方法及装置
CN102902491B (zh) * 2012-08-29 2015-09-09 北京地拓科技发展有限公司 遥感影像数据写入及读取的方法及装置
US9684692B2 (en) 2012-09-20 2017-06-20 Zte Corporation Data distributing method and management node
WO2014044092A1 (zh) * 2012-09-20 2014-03-27 中兴通讯股份有限公司 一种数据分布方法和管理节点
CN103678395B (zh) * 2012-09-20 2017-07-11 中兴通讯股份有限公司 一种数据分布方法和管理节点
CN104159129A (zh) * 2014-08-08 2014-11-19 北京大学 一种遥感数据有限带宽下剖分分块渐进传输方法
CN104159129B (zh) * 2014-08-08 2015-06-17 北京大学 一种遥感数据有限带宽下剖分分块渐进传输方法
CN104597286A (zh) * 2015-01-30 2015-05-06 黄河水利委员会黄河水利科学研究院 一种黄河凌汛期流凌速度测量方法
CN105589951B (zh) * 2015-12-18 2019-03-26 中国科学院计算机网络信息中心 一种海量遥感影像元数据分布式存储方法及并行查询方法
CN105589951A (zh) * 2015-12-18 2016-05-18 中国科学院计算机网络信息中心 一种海量遥感影像元数据分布式存储方法及并行查询方法
CN105608222A (zh) * 2016-01-12 2016-05-25 中国人民解放军国防科学技术大学 一种大规模栅格数据集的瓦片金字塔快速构建方法
CN106372256A (zh) * 2016-09-30 2017-02-01 浙江大学 一种面向海量Argo数据的分布式存储方法
CN106991135A (zh) * 2017-03-15 2017-07-28 江苏物联网研究发展中心 面向遥感影像数据的快速瓦片生成方法
CN110428453A (zh) * 2019-07-30 2019-11-08 深圳云天励飞技术有限公司 数据处理方法、装置、数据处理设备及存储介质
CN110428453B (zh) * 2019-07-30 2020-12-15 深圳云天励飞技术有限公司 数据处理方法、装置、数据处理设备及存储介质
CN110473146A (zh) * 2019-08-16 2019-11-19 苏州超擎图形软件科技发展有限公司 遥感图像显示方法、装置及存储介质和计算机设备
CN110473146B (zh) * 2019-08-16 2022-12-27 苏州超擎图形软件科技发展有限公司 遥感图像显示方法、装置及存储介质和计算机设备
WO2021129883A1 (zh) * 2019-12-25 2021-07-01 威创集团股份有限公司 一种应用于可视化大屏的地图瓦片的处理方法和相关装置
CN111145180A (zh) * 2019-12-25 2020-05-12 威创集团股份有限公司 一种应用于可视化大屏的地图瓦片的处理方法和相关装置
CN112199528A (zh) * 2020-10-12 2021-01-08 中国科学院空天信息创新研究院 一种大规模遥感数据在线获取方法
CN112215739A (zh) * 2020-10-12 2021-01-12 中国石油化工股份有限公司 一种用于AutoCAD的正射影图文件处理方法、装置及存储介质
CN112215739B (zh) * 2020-10-12 2024-05-17 中国石油化工股份有限公司 一种用于AutoCAD的正射影图文件处理方法、装置及存储介质
CN112308443A (zh) * 2020-11-09 2021-02-02 中国科学院空天信息创新研究院 一种遥感信息产品生成工作流的批量调度方法及装置
CN112487016A (zh) * 2020-11-30 2021-03-12 上海汽车集团股份有限公司 一种无人驾驶车辆局部路径规划方法及装置
CN112487016B (zh) * 2020-11-30 2023-10-03 上海汽车集团股份有限公司 一种无人驾驶车辆局部路径规划方法及装置
CN112991475A (zh) * 2021-05-17 2021-06-18 航天宏图信息技术股份有限公司 一种遥感图像的获取方法及装置
CN117221336A (zh) * 2023-11-08 2023-12-12 江西省水利科学院(江西省大坝安全管理中心、江西省水资源管理中心) 一种遥感影像发布方法及系统
CN117221336B (zh) * 2023-11-08 2024-01-30 江西省水利科学院(江西省大坝安全管理中心、江西省水资源管理中心) 一种遥感影像发布方法及系统

Also Published As

Publication number Publication date
CN102446208B (zh) 2013-08-28

Similar Documents

Publication Publication Date Title
CN102446208B (zh) 一种基于分布式的海量遥感影像快速建立金字塔算法
Liang et al. An open-source 3D solar radiation model integrated with a 3D Geographic Information System
Yan et al. A cloud-based remote sensing data production system
CN103281376B (zh) 一种云环境下海量时序遥感影像的自动缓存构建方法
CN109829022B (zh) 一种融合监控视频信息的互联网地图服务系统及构建方法
CN101339570B (zh) 一种高效的海量遥感数据分布式组织管理方法
CN106649821B (zh) 空间目标索引构建、碰撞预警、区域和最近邻查询方法
CN110442444A (zh) 一种面向海量遥感影像的并行数据访问方法与系统
Zhang et al. Modulation of western North Pacific tropical cyclone activity by the Atlantic Meridional Mode
Li et al. Urban morphology in China: dataset development and spatial pattern characterization
CN104657436A (zh) 基于MapReduce的静态瓦片金字塔并行构建方法
CN102945570A (zh) 一种全空间三维数字地球模型的构建方法
CN101702245B (zh) 一种可扩展通用三维地景仿真系统
Mai et al. The Canadian surface prediction archive (CaSPAr): A platform to enhance environmental modeling in Canada and globally
Huang et al. Using adaptively coupled models and high-performance computing for enabling the computability of dust storm forecasting
CN113420939A (zh) 云图预报方法、设备及存储介质
CN114417646B (zh) 一种高维异构降水数据融合方法及系统
Guan et al. Process virtualization of large-scale lidar data in a cloud computing environment
CN114912370B (zh) 一种建筑物光伏潜力分析可用面积计算方法
Vo et al. Per-point processing for detailed urban solar estimation with aerial laser scanning and distributed computing
CN103268342A (zh) 基于cuda的dem动态可视化加速系统和方法
CN103714213A (zh) 一种复杂地理信息的并行绘制方法
CN102073645A (zh) 虚拟城市样机及其运行方法
Ali et al. Sentinel-1 data cube exploitation: Tools, products, services and quality control
Liu et al. Analysis of spatial–temporal evolution trends and influential factors of desert-oasis thermal environment in typical arid zone: The case of Turpan–Hami region

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130828

Termination date: 20180902

CF01 Termination of patent right due to non-payment of annual fee