时间:2024-05-22
宋 健,秦 奋,韩志刚
(1.黄河中下游数字地理技术实验室,河南 开封 475004;2.河南大学 环境与规划学院,河南 开封 475004)
基于插件式土壤侵蚀经验模型系统的探讨与实现
宋 健1,2,秦 奋1,2,韩志刚1,2
(1.黄河中下游数字地理技术实验室,河南 开封 475004;2.河南大学 环境与规划学院,河南 开封 475004)
插件式土壤侵蚀经验模型系统结合了GIS技术和插件技术,再现土壤侵蚀经验性表达过程。在.NET开发环境中, 利用 ArcGIS Engine开发包,借助插件技术的松散耦合机制,赋予了系统动态扩展特性,从而实现了宿主程序、插件模块和通信契约的设计,完成了基础地图操作插件、基本文件管理插件、基础地形分析插件以及年产沙经验模型插件的开发设计,方便了其他模型和框架平台的集成,进而验证了构建插件式系统的可行性。
框架平台;插件;接口;土壤侵蚀经验模型
土壤侵蚀经验模型能够从侵蚀产沙的基本成因出发,根据实际观测到的数据,采用数理统计方法,建立不同流域侵蚀产沙量与主要影响因素之间的经验关系,指导人们合理利用土地,对于维持人类生存环境具有重要作用[1-3]。在土壤侵蚀经验模型开发过程中,传统的方法只是根据系统的总体设计,按部就班地完成软件的各个功能,最终开发出一个完整的软件系统。而这样的软件框架并没有很好的模块化、可重用性、可扩展性、简单性和可维护性[4]。采用基于插件式GIS土壤侵蚀经验模型的开发方法,对于编写结构复杂、需求多变的土壤侵蚀经验模型而言不失为最佳选择之一。
本文将插件技术引入到土壤侵蚀经验模型开发当中,并在模型的选取与方法的运用上,开发了平台宿主程序,插件连接器和不同的插件模块。探索基于ArcGIS Engine的GIS软件搭建土壤侵蚀经验模型插件平台的关键技术与方法,实现了插件式土壤侵蚀经验模型的开发。
基于ArcGIS Engine的插件式框架平台主要由宿主程序、插件契约、插件容器及插件引擎组成。宿主程序是不同插件的依附对象,可以独立存在,在不改变主程序框架的情况下,可以通过增减插件和改变插件的方式来管理系统功能。插件契约作为插件式GIS框架中宿主程序和插件层的通信桥梁,主要以接口的形式表示。插件容器的设计是插件式应用框架的重要组成部分。通过对框架平台的搭建,实现了对GIS控件管理以及解析基础地图操作插件、工程文件管理插件、基础地形分析插件和年产沙经验模型插件的功能。其中框架平台的主体结构如图1所示。
图1 框架平台基本结构图
2.1 土壤侵蚀经验模型流程设计
土壤侵蚀经验模型一般由模型、数据处理及模型计算成果演示3部分组成。模型开发选择具有代表性的入黄支流孤山川为典型研究区,以流域DEM、流域土地利用数据、土壤类型数据、流域雨量站空间数据、流域工程因子数据、年降雨观测数据、年NDVI数据等基础数据为依托,基于经验模型算法,结合各类模型因子的计算以及经验模型可视化技术,形象直观地展示了土壤侵蚀经验模型的计算过程。
在模型计算之前,最为重要的是获取有关模型计算的数据。其中,关键的流域DEM数据,可利用地形图进行数字化处理,然后再内插生成DEM[5,6]。土地利用数据参考流域土地利用图等相关资料,建立对应的分类体系与解译标准,再基于遥感影像进行监督分类和交互式解译,从而完成土地利用类型提取。土壤类型数据是流域侵蚀产沙的一个重要基础数据,采用Williams的K值估算法提取。雨量站数据的获取,是利用经纬度坐标生成相应的点要素类,并赋以站名属性,从而获取相应的数据。流域工程因子数据以流域治理规划图为基础,参照野外采样的标准流域治理措施图片、采样表等,再进行影像人工解译、勾绘来获取。流域降雨观测资料是进行土壤侵蚀预报不可缺少的关键资料,多以表格的形式加以记录。年NDVI数据主要是TM影像经过几何校正,从TM影像中计算分析所得。
在模型的计算结果演示中,主要包括基础地形分析插件和年产沙经验模型插件计算。基础地形分析插件完成了地形填洼中DEM预处理和坡度分析,并计算出相应结果。年产沙经验模型对应3个不同的部分,每个部分实现了不同的接口,主要完成年产沙经验模型的因子计算及模型计算,以及计算成果的可视化功能,有关功能设计如图2所示。
图2 年产沙经验模型插件模块设计
2.2 宿主程序设计
参照一般的插件式应用程序框架设计,本文的宿主程序设计包含主控程序、插件引擎和通信契约的设计。
主控程序包含一个EXE的可执行程序,也是整个框架程序的接入口,负责调用插件库中不同类型的插件对象,并以用户接口(UI)的形式显示,配合宿主程序上的GIS控件、其他UI控件以及不同插件对象之间的相互交互。其中,主控程序解析UI对象,生成相应的工具、按钮和菜单等。最后加载模拟工程文件,生成宿主程序界面,如图3所示。
插件引擎负责对插件程序集进行解析,提取其中的插件类型信息并生成对应的插件对象,存储到插件容器中,采用.NET的反射机制和接口技术来实现插件模块的动态加载,再交给界面程序处理。
图3 插件式土壤侵蚀经验模型系统
通信契约是宿主程序和插件之间互相认可的一种标准,以接口形式存在。根据插件式土壤侵蚀经验模型框架需求,要实现不同的插件表现形式,需要定义以下5种接口:IPlugin、ICommand、ITool、IToolBarDef、IMenuDef。这些接口是以ESRI.ArcGIS.SystemUI中定义的扩展插件接口为模仿对象,同时也为了设计的简单化,本文合并了一些接口的定义,设计了对应的自定义插件对象接口。
2.3 功能插件设计
基于黄土高原水土流失经验模型的研究,开发插件式土壤侵蚀经验模型,能够实现对区域土壤侵蚀的经验性表达,分析出区域土壤侵蚀产沙特征,对整个土壤侵蚀经验模型研究都有十分重要的意义。此外,本系统需要集成一些GIS常用功能,在数据的预处理过程中,为用户提供交互式操作,而插件又是系统的承载者。因此,土壤侵蚀经验模型系统包含基础地图操作插件、基本文件管理插件、基础地形分析插件以及年产沙经验模型插件。
2.3.1 基础地图操作插件
通过调用ArcGIS Engine内置组件,GIS基础地图操作插件,实现添加数据、地图放大、地图缩小、平移、全局视图、刷新功能。该插件是一个通用插件,每一个土壤侵蚀经验模型系统,都能够加载此插件实现GIS基本功能。
2.3.2 基本文件管理插件
基本文件管理插件是整个土壤侵蚀经验模型的基础,通过配置各项参数,运行模型,实现工程文件新建、打开、另存和关闭功能。只有实现了该插件功能,才能为后续的基础地形分析插件和年产沙经验模型插件提供先决条件。同时,该插件也是一个通用插件,任何土壤侵蚀经验模型插件都能加载此插件来管理模拟工程功能。
2.3.3 基础地形分析插件
基础地形分析插件包含地形填洼和坡度分析两个功能。首先,在地形填洼中,需要搜索原始DEM矩阵用来确定洼地单元格,从洼地集水区域中找出潜在的出流点,通过对洼地的有效处理生成无洼地DEM,从而完成地形填洼运算。在坡度分析中,采用拟合曲面法,即3×3的窗口,每个窗口中心是一个高程点,利用对应的坡度计算公式来进行坡度分析算法的计算。
2.3.4 年产沙经验模型插件
年产沙经验模型插件完成模型因子分析、经验模型侵蚀评价以及模型成果可视化功能。该插件根据年产沙经验模型的原理,在进行模型开发时,设计 了 RFactor、KFactor、BFactor、EFactor、TFactor、LSFactor、GFactor类库,定义了一系列年产沙经验模型的计算方法,封装了模型的计算过程。根据设定好的计算参数,可直接调用相关算法,分步骤计算各类因子、进行经验模型计算,再完成相应的成果可视化。
该组件集中各组件类的详细结构图如4所示。
图4 组件类结构示意图
在完成了宿主程序和其他功能插件的开发之后,再将年产沙经验模型插件放到平台存放插件的plugin目录文件夹中。启动插件式土壤侵蚀经验模型系统后,加载基本文件管理插件,添加对应的模拟工程,进而在“年产沙经验模型插件”中进行模型运算。图5以“耕作因子”计算为例,展示年产沙经验模型的计算过程。
插件式土壤侵蚀经验模型基于.Net技术和ArcGIS Engine平台搭建,将不同的功能模块以插件的形式集成到框架中,实现了宿主框架在软件应用工程方面的扩展。本文根据土壤侵蚀经验模型在系统开发方面存在的问题,在深入研究GIS、土壤侵蚀经验模型和插件技术基础上,提出将土壤侵蚀经验模型和插件技术相结合的开发设想,实现了主程序和插件间的无缝连接,大大提高了系统的灵活性和扩展性,验证了构建插件式系统的可行性,从而为黄土高原土壤侵蚀预测预报提供技术支撑。
图5 耕作因子计算结果图
[1] 朱连奇,冯文峰,朱文博.土壤侵蚀研究中的“3S”技术应用进展[J].地理科学进展,2008,27(6):57-62
[2] 蔡强国,刘纪根.关于我国土壤侵蚀模型研究进展[J].地理科学进展,2003,22(3):242-250
[3] 李景玉,张楠,王荣彬. 黄河流域土壤侵蚀产沙模型研究进展[J].地理科学进展,2006,25(2):103-111
[4] 汤国安,刘学军,闾国年.数字高程模型及地学分析的原理与方法[M].北京:科学出版社,2005
[5] 李志林,朱庆. 数字高程模型[M].武汉:武汉测绘科技大学出版社,2000
[6] Peel T C.The Relation of Certain Physical Characteristics to the Erodibility of Soils[J]. Soil Science Society Proceedings,1937,26(2):79-84.
[7] 蒋波涛.插件式 GIS 应用框架的设计与实现[M].北京:电子工业出版社,2008
[8] 闻平,王媛,王冲. 插件式GIS 应用框架的实现与应用[J].地理空间信息,2012,10(4):118-119
[9] 惠广裕,邓跃进,蔡京晶. GIS由COM框架向.NET框架迁移的研究[J].地理空间信息,2008,6(6):56- 58
[10] 陈红华,李满春,李飞雪. 插件式GIS应用框架的设计与实现[J].地理空间信息,2011,9(2):26-28
P208
B
1672-4623(2014)05-0098-03
10.3969/j.issn.1672-4623.2014.05.036
宋健,硕士,主要从事基础测绘、地理信息系统软件应用与开发、遥感应用研究。
2014-01-15。
项目来源:水利部公益性行业专项经费资助项目(201201081)。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!