遥感影像数据监控系统在遥感产品生产中的应用
2014-04-01,,
, ,
(河南大学 a.计算机中心;b.计算机与信息工程学院;c.空间信息处理研究所,河南 开封 475004)
遥感(Remote Sensing)作为一门新兴的综合性技术学科,无论是在军事领域的目标识别、目标监控、地形地貌侦查等,还是在民用领域的气象预报、资源调查、灾害预报和防止等,都受到了足够的关注[1-3]。随着遥感应用需求的不断扩大和计算机技术的飞速发展,遥感带来的信息和数据所呈现出的海量程度和复杂度都是空前的,因此遥感影像数据面临着复杂化和高速化的挑战[4-8]。但我国卫星遥感应用还缺乏多星多传感器综合处理与深加工处理能力,没有规模化、专业化的快速数据处理加工生产线,不能及时提供高质量的标准遥感影像数据产品[9]。
在遥感产品生产系统中,数据监控主要监控遥感影像数据入库后的动态变化,为遥感产品生产系统判断库中是否存在生成加工单的遥感影像数据提供依据,并为生成加工单的生产提供最新的遥感影像数据,以确保遥感影像数据产品的有效性。数据监控是遥感产品生产系统中非常重要的一部分,数据监控设计与实现直接关系到遥感产品生产系统实时有效地生产遥感影像数据产品,因此数据监控的设计是至关重要的[10]。
传统的数据监控有两种:一种是网络或本地的硬件监控;另一种是生产过程中的流程监控。而对于为遥感影像数据提供依据的数据监控来说,它既不属于硬件监控的范畴,也不属于流程监控的范畴。因此,针对遥感产品生产系统的遥感影像数据监控研究是十分必要的。
针对如何设计与实现遥感产品生产系统中数据监控的问题,本文提出一种解决方案,并对其进行了实现验证。
1 相关技术介绍
(1)XML(Extensible Markup Language)即可扩展标记语言,具有良好的数据描述方法、可扩展性、半结构化及跨平台的特点,能够定义计算机和人方便识别的数据类型,在数据交换、系统集成、Web应用等领域有广泛的应用价值[11]。
(2)文件结构化存储技术实际是把树状文件系统的原理应用到单个的文件中,使得单个文件也能像文件系统一样包含“子目录”,“子目录”还可以包含更深层次的“子目录”,各个“目录”可以包含多个文件,把原来需要多个文件存储的内容按树状结构和层次保存到一个文件中去。本文按照遥感影像数据的操作类型、本地存放目录、文件名和操作时间等信息,将组织层次设为“操作-地址-文件名-操作时间”的消息格式,基于文件结构化存储技术进行存储[12]。
(3)JNotify是一个Java开源类库,能够让Java应用程序监听系统文件变化事件,具体包括:创建文件、修改文件、重命名文件、删除文件等。JNotify支持的操作系统有:Window、Linux、Mac OS。
(4)HQL(Hibernate Query Language)具有丰富灵活的查询特性。在涵盖Criteria所有查询功能的前提下,HQL提供类似标准SQL语句的查询方式,同时还能提供更加面向对象的封装,符合编程人员的思维方式[13]。
2 遥感产品生产系统的数据监控设计
2.1 设计思路
遥感产品生产系统的硬件部署架构包括A服务器、B服务器、C服务器以及若干个生产计算节点,如图1所示。其中,A服务器负责监控库中遥感影像数据的添加、删除、修改等动态信息;B服务器负责整个系统的业务运行管理;C服务器负责系统的任务调度;生产计算节点负责进行遥感影像数据加工处理。
图1 遥感产品生产系统的硬件部署架构图
遥感产品生产系统的遥感影像数据加工处理流程包括:①遥感影像数据入库后,A服务器对入库后的遥感影像数据进行监控;②用户根据需求可以通过B服务器创建遥感影像数据加工单,然后B服务器发送给C服务器进行任务分工;③C服务器根据内定的调度策略从若干个生产计算节点中为该加工单选择一个生产计算节点;④生产计算节点对该加工单进行加工生产。
由此可见,保证遥感影像数据正常加工生产的前提是A服务器能实时获得遥感影像数据入库后的动态信息,并对数据库中遥感影像数据记录进行更新。B服务器接收到用户输入的信息后,首先要核实需要加工的遥感影像数据在库中是否存在,如果存在则根据用户输入的信息生成加工单,发给C服务器,以便C服务器进行任务调度分工;如果不存在,则向用户反馈需要加工的遥感影像数据库中不存在信息,需用户上传相关的遥感影像数据。
考虑到A服务器的功能,该数据监控设计包括系统配置模块、数据监控模块、更新数据信息模块3个子模块。数据监控模块结构如图2所示。
图2 遥感数据监控模块结构图
(1)系统配置模块:配置本地数据监控目录(即遥感影像数据入库后存放根目录)、B服务器IP和端口号。
(2)数据监控模块:监控系统配置模块在本地监控目录下配置遥感影像数据的添加、删除、修改等动态信息。
(3)更新数据信息模块:根据数据监控模块对遥感影像数据动态信息的监控,更新数据库中保存的遥感影像数据信息,以便B服务器能通过访问数据库的方式,查询数据库中的遥感影像数据信息,为B服务器判断是否需要生成加工单提供依据,并为生成加工单后的生产提供最新的遥感影像数据。
2.2 核心模块设计
数据监控模块以及相关类如图3所示[14]。
图3 数据监控的模块以及相关类示意图
DataWatchService是一个主界面,可实现数据监控,提供系统配置、数据监控以及监控信息反馈等功能。它部署在A服务器上。
2.2.1 系统配置模块设计的相关类
ConfigForm:配置信息界面,提供对本地数据的监控目录(即遥感影像数据入库后存放目录)、B服务器IP和端口号等参数信息的查询和修改功能。
Option:系统配置信息类,保存当前系统配置信息,提供读写“SysConfigInfo”XML文件的功能。
SysConfigInfo:它是一个XML文件,用于显示保存的本地遥感影像数据监控目录(即遥感影像数据入库后存放的根目录)、B服务器IP和端口号参数信息。
2.2.2 数据监控模块设计的相关类
DataWatch:A服务器,负责实时监控库中遥感影像数据的添加、删除、修改等动态信息,并将监控到的动态信息显示到主界面上,同时将监控到的遥感影像数据的动态信息传递给新库中的数据信息模块。
2.2.3 更新库中数据信息模块设计的相关类
UpdateDB:接收数据监控模块传来的遥感影像数据动态信息,并将动态信息进行解析,获得遥感影像数据的详细信息,包括传感器类型、卫星、分辨率、时间、区域等,以及对遥感影像数据进行的操作类型(添加、删除、修改),并可根据操作类型,对数据库中的遥感影像数据信息记录进行添加、删除和修改操作。
2.3 实现步骤
遥感产品生产系统采用Eclipse开发平台,其数据监控基于Java语言。
(1)第一步:实现数据监控主界面的界面设计
在数据监控主界面中,上面是“系统配置”菜单,中间是显示信息框,下面是数据监控服务【开启】和【关闭】按钮。
(2)第二步:实现系统配置模块
系统配置模块通过Option类读取系统配置文件SysConfigInfo.xml中当前的系统配置信息,并显示到系统配置界面ConfigForm上。用户根据需求修改后,系统配置模块从界面上获得用户修改的系统配置信息,再次通过Option类写入SysConfigInfo.xml文件中。其中,SysConfigInfo.xml的设计如下[15]:
(3)第三步:实现数据监控模块
由于遥感产品生产系统中的遥感影像数据是基于文件进行存储的,因此在遥感影像数据动态监控的实现中,数据监控模块利用支持动态监控文件的架包JNotify来实现对指定文件目录遥感影像数据的实时监控。
监控的动态信息包括对遥感影像数据的操作类型、本地存放目录、文件名和操作时间等信息。其组织层次为“操作-地址-文件名-操作时间”的消息格式。遥感影像数据文件包括传感器类型、卫星、分辨率、拍摄时间、区域等详细信息。其组织层次为“传感器类型-卫星-分辨率-拍摄时间-区域”[16]。
在数据监控模块中,DataWatch类中定义了开启数据监控服务方法StartDataWatch和关闭数据监控服务方法EndDataWatch。调用它们,能够实现第一步中数据监控主界面的【开启】和【关闭】按钮的响应事件。
(4)第四步:实现更新库中数据信息模块
更新数据信息模块中的类UpdateDB,接收到数据监控模块传来的监控动态信息后,根据其组织层次进行解析,获得操作类型、地址、文件名、操作时间等信息,并再次根据遥感影像数据文件名的组织层次,解析并获得遥感影像数据的传感器类型、卫星、分辨率、拍摄时间、区域等详细信息。
UpdateDB类根据解析获得的操作类型,通过HQL(Hibernate Query Language)向MySQL数据库中添加、删除、修改遥感影像数据的本地存放地址,以及遥感影像数据的传感器类型、卫星、分辨率、拍摄时间、区域等详细信息[17]。
3 遥感产品生产的数据监控系统实现
遥感产品生产系统的数据监控运行在64位Ubuntu12.10操作系统上,以及Eclipse3.7软件和JDK7.0平台上,通常使用Java语言,对遥感产品生产系统的数据监控进行实现[18]。
A服务器运行界面可显示【系统配置】菜单、监控信息动态显示框、【开启服务】按钮和【关闭服务】按钮,为用户提供系统配置、开启或关闭服务,具有监控遥感影像数据、反馈监控信息等功能。
对A服务器进行系统配置,点击“配置”菜单后,弹出的系统配置界面如图4所示。该界面提供浏览A服务器监控目录以及B服务器IP和端口号等信息。用户可根据实际需要修改A服务器监控目录以及B服务器IP和端口号等信息,并可点击【保存】按钮,进行保存。用户点击【保存】按钮后,系统会获得当前的系统配置信息,并更新到SysConfigInfo.xml文件中。
图4 系统配置效果图
系统配置完成后,点击【开启服务】按钮,开启数据监控服务,监控信息的动态显示框内提示“服务已开启!”。在配置好的监控目录内进行添加、修改、删除等操作,监控信息动态显示框内将会显示出相应的操作,如图5所示。
图5 数据监控动态信息效果图
如需关闭数据监控服务,点击A服务器界面上的【关闭服务】按钮即可。监控动态信息“创建 E:监控目录:Modis_Terra_1KM_20110101_8_17.tif 2013/03/31 15:15:13”,是按照“操作-地址-文件名-操作时间”层次进行组织的,并以空格隔开。在文件名“Modis_Terra_1KM_20110101_8_17.tif”中的“Modis”为传感器类型;“Terra”为卫星类型;“1KM”为影像数据分辨率;“20110101”为影像数据的拍摄日期;“8_17”为区域信息,8和17表示区域左下角经纬度坐标;“tif”为文件后缀。
遥感产品生产系统的数据监控实现了对遥感产品生产系统中入库后遥感影像数据动态信息的有效监控,确保了B服务器通过访问数据库的方式查询库中遥感影像数据的信息,为B服务器判断库中是否存在需要生成加工单的遥感影像数据提供依据,并为生成加工单的生产提供最新的遥感影像数据,保证了遥感产品生产系统加工生产遥感影像数据产品的有效性。
图6为遥感产品生产系统加工生产的一种遥感影像数据产品——景观格局指数产品的效果图。
图6 景观格局指数产品图
4 结 语
本文在分析数据监控功能的基础上,结合遥感产品生产系统的硬件部署架构,对遥感产品生产系统的数据监控问题提出了一种解决方案。该方案能正确有效地解决遥感产品生产系统中对入库后的遥感影像数据动态信息的监控问题,确保B服务器通过访问数据库的方式,查询数据库中遥感影像数据的信息,为B服务器判断库中是否存在需要生成加工单的遥感影像数据提供依据,并为生成加工单的生产提供最新遥感影像数据,保证了遥感产品生产系统加工生产遥感影像数据产品的有效性,从而促进了遥感影像数据的有效和广泛应用。
参考文献:
[1] 宫鹏.遥感科学与技术中的一些前沿问题[J].遥感学报,2009,13(1):13-23.
[2] 姜尚堃,李飞,陈立峰.遥感技术在分布式水文模型中的应用研究进展[J].水资源与水工程学报,2013,24(1):173-180.
[3] 曹冬梅.遥感技术及其在环境监测方面的应用[J].环境研究与监测,2013,26(1):16-18.
[4] Stearn B.A new approach for developing rich internet applications[J].IEEE Internet Computing,2007,11(3):67-73.
[5] Plesea L.Remote Access to Very Large Image Repositories, A High Performance Computing Perspective[C]//Proc of ESTC'05/[S.1.]:IEEE Press,2005.
[6] Chang F, Dean J, Ghemawat S, et al.Bigtable: A Distributed Structured Data Storage System[C]//Proc of the 7th OSDI Conf.Berkeley, CA , USA:[s,n],2006:205-218.
[7] 刘伟,刘露,陈荤,等.海量遥感影响数据存数技术研究[J].计算机工程,2009,35(5):236-239.
[8] 周海芳.遥感图像并行处理算法的研究与应用[D].长沙:国防科学技术大学,2003.
[9] 杨邦会,池天河.国产卫星遥感综合应用服务平台及原型实现[J].计算机工程与应用,2011,47(22):236-239.
[10] 王华斌,唐新明,李黔湘.海量遥感影像数据存储管理技术研究与实现[J].测绘科学,2008,33(6):153-156.
[11] 孔令波,唐世渭,杨冬青,等.XML数据索引技术[J].软件学报,2005,16(12):2063-2079.
[12] 西门谷.文件结构化存储技术与应用[EB/OL].(2008-11-19)[2014-06-05].http://blog.sina.com.cn/s/blog_3f770f78010008q6.html.
[13] 孔昊,胡银保.Hibernate应用中查询接口的设计用[J].兰州工业学院学报,2014,21(2):5-9.
[14] 余卫江,陈卫泽,冯辉艺,等.实时数据监控系统在海洋石油勘探开发中的应用[J].计算机与应用化学,2011,28(8):1072-1074.
[15] 成炳花,刘金广.在B/S 网络系统中应用XML技术的研究[J].武汉理工大学学报,2010,32(22):209-212.
[16] 胡文焘,池天河,彭玲.基于元数据的遥感数据自动入库系统设计与实现[J].测绘科学,2012,37(5):222-224.
[17] 李荣国,王见.MySQL数据库在自动测试系统中的应用[J].计算机应用,2011,31(2):169-175.
[18] 刘洪星,谢玉山.Eclipse开发平台及其应用[J].武汉理工大学学报,2005,27(2):89-92.