基于Web的农情遥感信息服务系统设计
计划”;在中国,最典型的是“中国农情遥感速报系统”[7]。但是由于农情遥感监测工作头绪多,涉及众多的农情遥感数据处理模型,这些系统多是C/S结构的客户端软件形式,只有专门人员安装并输入专业指令才可调用模型,专业性强,应用范围难以推广。因此,农情遥感信息的发布方式往往采用报告或文档的形式,限制了农情遥感信息传递的时效性。而且中国国土辽阔,各地农情区别明显,难以建立普适性的农情遥感数据处理模型,降低了信息的准确性。因此借助Web技术整合农情遥感涉及的众多模型供用户实时选择使用是十分必要的。
农情遥感模型产生的数据或影像产品虽然包含各类信息,但可读性较差,目视获取的有用信息较少,需要专业人员借助专业知识及GIS领域的专业软件辅助制成专题图,公众才能接收并理解其中的农情信息。然而专题图制作过程工作量大、重复性大,随着互联网的發展,Web与GIS技术为自动制图的实现提供了技术支持。
针对农情遥感信息服务过程中存在的上述问题,本研究设计了农情信息服务系统,借助网络技术和嵌入式的GIS组件库ArcEngine来整合众多的农情遥感模型并研究专题图的自动化制作方法,目的在于降低农情遥感过程的专业化程度,让用户仅仅需要按照要求提交参数就可以得到需要的农情信息,来提高农情遥感监测的普适性与农情信息的推送能力。
1 系统体系结构和功能设计
B/S结构是一种Web结构模式,传统的B/S体系结构是三层结构,即客户端、应用服务器以及数据库服务器。三层结构将应用划分为表示层、业务逻辑层、数据层,这种体系也可被称为三层分布式体系[8]。根据用户的多样化需求,该结构可以继续细化功能层及数据服务层。如系统功能A、B、C都可以有需要使用的服务器,而这些服务器根据自身的功能需求可以访问不同的数据库服务器a、b、c、d等,通常称之为多层结构体系,但这仅仅指的是逻辑上多层,物理层面上还是三层的。
该系统采用多层结构体系,细分为3个服务器:用于系统和模型任务管理的任务服务器,用于模型处理计算的模型服务器以及用于专题图生产的GIS渲染服务器,它们相应地访问对应的数据库服务器。其体系结构如图1所示。
1.1 表示层
表示层是用户界面以及与用户界面直接相关的部分。由于系统涉及模型較多,用户往往难以聚焦,因此主页面采用Win8界面风格,内容页面采用导航、菜单、内容的经典布局模式。
1.2 业务逻辑层
业务逻辑层,又称功能层,是整个系统的关键。模型调用模块、任务中心模块、专题图生产模块是系统的核心功能。每个模块又可以细分成多个子模块,具体功能如下。
1)模型调用模块。通过设定模型参数,如起始、结束年、区域、类型等,选择待处理农情遥感影像数据(这里的数据默认选择远程数据库的非公开影像数据,也可以用户自行上传)进行模型计算,生成对应的结果数据及日志。系统整合的模型大致分为两类,一类是农情气象指标模型:光合有效辐射、温度、降水模型,它们反映气象条件对农业生产活动的影响,指导农事作业过程。另一类是农业遥感指标模型:归一化植被指数(NDVI)、植被状态指数(VCI)、复种指数、作物长势、作物估产模型等。其中NDVI是模型计算的基础指数,反映了植被覆盖度,其余模型或多或少基于NDVI开展数据处理工作,如VCI,它表达时间尺度上作物生长状况基于目前NDVI和历史同期最大最小计算得到;复种指数是一年内耕地使用的程度,取一年内耕地全部作物的总种植面积与总耕地面积的比值。
2)任务中心模块。为了约束用户行为,设置系统管理员来查询、查看系统当前或历史的模型计算任务的基本信息,审核任务的可执行性,若任务不可执行,管理员可以取消或暂停普通用户提交的任务并予以反馈。
3)专题图生产模块。设计地图文档,制作专题图的渲染模版,每种模型对应一种模版,渲染指定的遥感影像数据生成专题图,便于用户阅读理解。
1.3 数据层
数据层存储了农情遥感影像处理的基础数据,业务数据和成果数据。基础数据是待处理的基础遥感影像,业务数据是业务逻辑层中在业务处理中实时产生的各种中间数据,成果数据是影像处理后生成的结果数据。
2 关键技术及实现
系统以Java、JSP、HTML、JavaScript 等作为基础开发语言,在MyEclipse开发平台下完成。MyEclipse作为Eclipse的插件,大大简化了Java EE应用的开发。并选用PostgreSQL作为数据库平台,它包含多种几何类型,对于农情遥感复杂的地理空间数据的存储而言是很适合的,系统整体界面结构如图2所示。
2.1 PostgreSQL
PostgreSQL是一种概念先进的对象关系型数据库管理系统,在支持大部分的SQL标准的基础上提供了丰富的数据类型和接口。另外,是纯免费的开源数据库产品,无论谁都可以依照自身需求免费应用、修改PostgreSQL。
由于PostgreSQL包含丰富的几何类型,它在地理信息系统(GIS)领域的优势十分明显。PostgreSQL支持几乎所有的空间数据类型,包括点、多点、线、多线、多边形和集合对象集等,并且提供了简单的空间分析方法,如坐标转换、距离测算等。除了几何类型的数据类型,PostgreSQL还提供对于大的栅格数据对象的存储,说满足了该系统的需求。
2.2 Secure Shell
由于众多模型部署在Linux服务器上,Windows用户如果想要与Linux服务器进行文件传送,就需要一个Secure Shell(简称SSH)。SSH是一个建立在应用层和传输层基础上的安全协议,它允许Windows用户通过互联网使用公钥加密来认证远程的计算机,进而连接到Linux远程服务器。使用 SSH可以对远程 Linux 服务器进行全面管理,在保障服务器安全的同时减少了管理人员的工作量[9]。
2.3 任务分发调度
每次模型调用都可以看成一个任务,任务执行的先后顺序遵循以下两条规则:先根据用户级别排序,再按任务提交顺序排序。
假设管理员用户、普通用户的优先级分别用A、B表示,优先级A>B,同级任务编号从1开始,依次增大,如A1、A2、A3。某时刻,当前系统中排队的任务队列如下:A1、A2、B1、B2,此时管理员用户提交一个新的任务,任务队列将变为A1、A2、A3、B1、B2。
系统主要是要设计一个任务分发调度类来实现任务调度及管理,此调度类要设计成单例模式,以保证任务队列。由于任务执行时首先需要通过SSH连接远程Linux服务器,然后利用IDL语句调用其上的农情遥感监测模型,此过程要创建会话(session)并连接到指定的服务器,需要耗费一定的时间,为了提高任务执行效率,采取将Runnable接口的子类对象传递给Thread构造方法的创建线程的方式[10]创建会话,实现仅仅连接一次服务器,之后任务的执行无须再次连接。
2.4 解决AJAX跨域问题
同域名、同网络协议、同端口,三者都满足就是同一个域,否则就是跨域问题了。由于系统采用多层B/S体系结构,存在跨域问题。跨域涉及浏览器的同源策略[10],它宏观地限定了浏览器的安全边界,是浏览器的基本策略之一。通常所说的两个站点同域就是指它们同源。
XMLHTTP代理方式可以实现AJAX跨域访问,XMLHTTP代理是指在本域与异域通讯时加一中间层,由它向异域服务器进行读取数据的操作。这种代理机制让服务器端完成“跨域访问”的工作,避开了同源策略的限制,如图3所示。
2.5 专题图渲染
在农情遥感领域,专题图制作十分关键,影像产品难以直接获取有用的数据信息,往往需要通过ENVI或ArcGIS等3S领域的专业软件进行辅助制图,突出有效信息。而且农情信息具有时变性,需要制作同一类型农情不同区域、不同时期的专题图,存在重复作业、效率不高的问题。系统利用ArcEngine10.2的组件及接口和 Java进行开发,实现了栅格和矢量两种数据形式的专题图自动化生产方法,用户仅仅需要提供基础参数信息,中间过程不需要用户的参与,达到了去除专题图制作过程中太过专业化的目的。
ArcEngine是面向开发者的ArcGIS的软件开发引擎,对于繁杂的GIS开发而言,提供了基于空间分析接口的实用的开发框架,能将地理信息功能嵌入到软件中,可用于构建自定义GIS和制图应用。
由于同类专题图上的元素相同,图上坐标相同,可以制作一个地图模板,这样在系统制图自动化的过程中仅需修改元素的值。地图模版简单来说是各种地图元素的页面布局,也可以包含底图。同类型的多张地图可以公用一个地图模版来标准化布局,不必手动重新制作地图的公有部分。地图模版的渲染包括分级渲染、惟一值渲染等,系统会根据用户提供的模型参数,自动获取对应的遥感影像、地图模版以及渲染模式,由于区域参数的限制,往往需要进行区域选择和区域裁剪的地理处理来满足用户需求,具体流程为:
1)获取参数。用户根据自身需求输入相应的参数,包括时间、区域、模型类型等。
2)加载地图模版。利用ArcEngine里的Imap
Document接口打开地图文档,访问地图文档中的地图对象,通过IMap接口获取焦点地图,管理地图中的图层(图4)。
3)裁剪栅格影像。根据获取的模型参数,选择对应模型的栅格影像,判断是否需要进行影像裁剪,当区域参数是影像局部区域时,利用地理处理工具(GeoProcessor)选择出区域并生成shp文件,再利用shp文件裁剪栅格影像得到目标区域栅格影像;当区域参数是全局参数时,跳转第四步。
4)添加栅格影像。利用IworkspaceFactory、IrasterDataset、IrasterLayer接口将第三步得到的目标影像添加到地图文档中。
5)渲染栅格影像。判断模型的渲染类型,读取地图模版中的渲染樣式渲染栅格影像,必要时可以修改渲染参数,如label、color等等。渲染结果如图5所示。
6)出图。利用ExportPNG接口将专题图导出保存为.jpg格式,方便网页端获取并展示。
3 小结
借助Web技术和GIS技术设计与开发了农情遥感信息服务系统,实现了农情信息及时有效的发布和利用,为农情遥感信息的普通化、大众化提供了技术支撑;用户在使用过程中,不需要关心遥感数据的获取渠道与管理方式,也不需要掌握农情遥感监测有关的数据处理模型的原理与流程,只需要简单填写模型运行的参数就可以调用这些模型并且模型运行结果会自动渲染成专题图以方便获取对应的农情信息。系统测试运行结果表明,农情遥感监测信息服务系统的响应速度较快,可以在使用过程中及时反馈模型运算状态信息,为用户提供了良好的交互感和用户体验。
目前,系统有多个用户端,但只有一个任务服务器来处理用户请求进行任务调度,一个模型服务器进行模型运算,任务与模型服务器具有一定压力。后续将增加多个服务器来扩展模型运算服务器,通过多个任务调度层来进行调度,从而分担运算服务器的压力,解决海量遥感数据的存储问题,提高模型运算效率。
参考文献:
[1] 蒙继华,吴炳方,李强子,等.农田农情参数遥感监测进展及应用展望[J].遥感信息,2010(3):122-128.
[2] 唐华俊.农业遥感研究进展与展望[J].农学学报,2018,8(1):167-171.
[3] 张淮栋,陈争光,张成龙.基于高分二号-NDVI的大豆遥感估产的时相选择[J].湖北农业科学,2018,57(6):103-108.
[4] 陈 静.基于MODIS的农作物面积遥感监测及应用[J].湖北农业科学,2015,54(6):1483-1485,1489.
[5] 洪 波,张 锋,李英梅,等.GIS在农业病虫害预警研究中的应用[J].陕西农业科学,2011,57(3):170-173.
[6] BECKER-RESHEF I,CHRIS J,MARK S,et al.Monitoring global croplands with coarse resolution earth observations:The global agriculture monitoring (GLAM) project[J].Remote sensing,2011,
2(6):1589-1609.
[7] 吴炳方.中国农情遥感速报系统[J].遥感学报,2004,8(6):481-497.
[8] 吴小青.基于B/S体系结构软件开发技术研究[D].江苏无锡:江南大学,2008.
[9] 张国防.基于SSH协议的Linux远程管理[J].计算机安全,2014(12):37-39.
[10] 何 良,方 勇,方 昉,等.浏览器跨域通信安全技术研究[J].信息安全与通信保密,2013(4):59-61.
推荐访问: 遥感 信息服务 设计 系统 Web