1.海量遥感影像分布式几何纠正方法,基于以下系统,包括数据交换中心,任务管理中心,工程中心和所有作业节点;
数据交换中心连接任务管理中心、工程中心和所有作业节点,数据交换中心由若干网络交换机组成,负责系统中各节点的相互通信;
任务管理中心部署在单独的机器上,负责调度每一个子任务在作业节点上的分配工作,并且实时监听作业节点的工作状态,如果有任务执行失败,任务管理中心负责调度该子任务重新在该作业节点上重新运行或选择新的作业节点运行;
工程中心部署在单独的节点,负责在影像几何纠正阶段将遥感影像切分成子影像块;
工程中心会把每一个任务的引用数据和配置参数打包成Java文件存储起来,提供给任务管理中心进行任务调度;任务管理中心还负责把用户在客户端选取的几何纠正模型和控制点信息等数据打包成配置文件进行保存,并负责对原始遥感影像队列L1,带有配置信息的待操作影像队列L2以及待纠正影像队列L3进行管理;
作业节点是系统中计算和存储的基础单位,遥感影像数据进入任意一个作业节点后,该节点对遥感影像进行虚拟切分,然后将数据更新信息通过心跳发送到工程中心;任务管理中心对作业节点进行任务分配后,作业节点根据任务信息对遥感影像的几何纠正模型进行解析,判断遥感影像对应的控制点信息是否符合精度要求,以及对各个子影像块进行几何纠正操作;
工程中心和任务管理中心、任务管理中心和作业节点、工程中心和作业节点之间的数据交互是由Hadoop的心跳通信机制实现的;作业节点周期性地通过心跳消息向任务管理中心报告节点和任务运行状态信息;任务管理中心通过心跳消息了解作业节点当前的运行状态,判断作业节点是否存活,并通过心跳返回值作出相应的动作指令;工程中心通过心跳机制向任务管理中心发送任务的引用数据和配置参数,供任务管理中心进行任务调度;
其特征在于该方法包括以下步骤:
步骤a)、选择一个几何纠正模型并确定控制点范围,然后把影像块依次输送到控制点选取终端,各终端协同选取控制点;
步骤b)、选择空闲子节点进行几何纠正模型参数计算,得到坐标转换关系;
步骤c)、将坐标转换关系发送到各个子节点,开始并发进行影像几何纠正;
步骤d)、将各块纠正结果归约为一个完整的遥感影像;
所述步骤a)包括以下具体步骤:
步骤a1)、原始遥感影像由任意作业节点进入,作业节点根据切分规则对原始遥感影像进行虚拟切分,并通过心跳向工程中心提交数据更新的消息;
步骤a2)、工程中心接收到心跳消息后,记录原始遥感影像存储地址和影像切分信息,并放入原始影像队列L1;
步骤a3)、任务管理中心从原始影像队列L1中取出影像地址和切分信息,选择空闲控制点选取节点传递任务信息,该节点提示用户选择几何纠正模型,然后选取初始控制点将整个待纠正遥感影像控制在一个规则的坐标范围内,确定控制点范围;
步骤a4)、用户确定需要选取的最少控制点数量;
步骤a5)、对于影像子块的控制点数量,在控制点均匀分布的前提下,每个子块中的控制点数量可以通过q=(m-a)/t确定,m是原始影像需要的控制点个数,a是设定的初始控制点数,t是子块的总数;
步骤a6)、任务管理中心根据影像切分信息向空闲控制点选取节点分配任务,选取节点在收到任务信息后,抓取分配到本节点的影像块及其在原始影像中的位置到本地并显示,同时选取节点会实时抓取已选取的控制点信息显示在影像上,用户在本节点影像块上选取用来几何纠正的控制点,并且可以通过查看其他终端的控制点选取信息来选择本终端影像区域的控制点选取位置;
步骤a7)、当影像的所有子块控制点全部选取完成时,把用户选取的纠正模型和控制点打包成配置信息和影像地址放入待操作队列L2,等待任务管理中心对影像作出操作指令;
步骤a8)、当工程中心监听到队列L2有未被遍历过的影像,且从队列L2中取出的影像的分块结果没有在影像分块结果树中找到时,通知任务管理中心向空闲作业节点下达影像分块的指令,作业节点将分块结果存储在本地并将分块信息传递给工程中心,工程中心将影像分块信息放入平衡二叉树。
2.如权利要求1所述的方法,其特征在于所述步骤a1)原始遥感影像切分规则:采用虚拟切分,将一整幅遥感影像分成一块块连续的矩形部分,对于右边缘和下边缘,将右边缘并入左边的影像子块,将下边缘并入上方的影像子块。
3.如权利要求1所述的方法,其特征在于所述步骤b)包括以下具体步骤:
步骤b1)、任务管理中心从待操作队列L2中取出队首影像信息,向系统中的某个空闲作业节点发出工作指令,对该影像几何纠正模型进行解析;
步骤b2)、作业节点根据任务管理中心发出的指令从相关位置取出影像信息以及控制点等相关配置信息;作业节点每隔一定时间会向任务管理中心发出心跳消息,向任务管理中心反馈作业节点的工作状态,数据更新信息,作业节点是否正常等信息;
步骤b3)、任务管理中心持续接收作业节点传递回来的心跳消息,判断作业节点是否对几何纠正模型解析完成;如果作业节点已经完成几何纠正模型的解析,作业节点便将该影像以及相关配置信息传递给工程中心,并放入待纠正队列L3。
4.如权利要求1所述的方法,其特征在于所述步骤c)包括以下步骤:
步骤c1)、工程中心收到该作业节点返回的心跳消息,在几何纠正模型解析完成且符合精度要求时,会查找分块结果平衡二叉树T判断是否已经完成该影像的切分工作,当纠正模型的提取工作和影像的切分工作都完成后;工程中心通知任务管理中心根据影像分块结果把影像切分为多个纠正任务,并负责调度每一个子任务在作业节点上运行;任务管理中心通过向作业节点发送心跳返回值来调度分配任务,其中心跳返回值包含了任务执行指令,几何纠正模型和待纠正影像块所在的位置信息;
步骤c2)、作业节点接收到任务管理中心返回的心跳返回值,判断自己是否被分配任务;若被分配任务,作业节点就会根据心跳返回值中的几何纠正模型和待纠正影像块位置信息,自行从其他作业节点存储的数据中抓取所有引用数据将其直接复制到本地工作文件夹,然后运行每一个影像块几何纠正任务。
5.如权利要求1所述的方法,其特征在于所述步骤d)包括以下步骤:
步骤d1)、任务管理中心接收到作业节点影像纠正完毕的消息,在某个空闲节点创建归约任务,并告知归约任务节点所有已经完成影像纠正任务的作业节点的位置信息;
步骤d2)、归约任务节点接收到已经完成影像纠正任务的作业节点的位置信息,通过获取到的位置信息从完成纠正任务的作业节点中获取纠正结果,并将该影像的纠正结果归约为完整的影像纠正结果;
步骤d3)、归约任务节点完成了归约任务后,存储最终完整的影像纠正结果;并通过心跳消息通信机制把结果存储信息传递给工程中心。