摘要:本文应用ArcGIS的组件式开发特点,以Visual Basic为开发语言,编写生成土壤水分运动模型,其可以作为ArcMap中的一个工具载入,通过简单的数据输入项及参数设定就能在ArcMap中应用该模型生成土壤水势、水分含量、不同土层含水量变化以及同一土层不同时间段内含水量的变化量,为土壤水分研究及土壤综合利用提供数据支持和分析手段。
关键词:地理信息系统 模型 土壤水分运动 ArcGIS
1 软件介绍
地理信息系统(Geographic Informat ionSystem,简称GIS)是以计算机为基础的综合处理和空间数据分析的系统,是集计算机科学、管理科学、信息科学、空间科学、地学、环境科学等为一体的新兴边缘研究领域[1]。它能有效地收集、存贮、分析、再现空间信息,不仅利用属性数据,更重要的是利用空间数据,将地理空间模型化并存储在计算机中,便于对地理信息的快速查询、空间分析,以达到对研究对象进行描述、模拟和预测的目的。
一个完整的地理信息系统一般由硬件、软件平台、信息、功能模型4个要素组成。作为一种20世纪60年代才开始出现的新兴技术,GIS表现出了巨大的发展潜力,经过30多年的发展,今天地理信息系统从硬件、平台、信息、功能直到应用领域等方面都发生了革命性变化。
1.1 软件平台
目前,多数地理信息系统都使用某一GIS软件作为开发平台,而起初是没有这样一种通用软件的,自1965年W. L. Garrison 提出了“地理信息系统”这一术语,20世纪60年代中后期,许多研究GIS的组织和机构纷纷建立并开展工作,最初的系统主要是关于城市和土地利用,多是根据各个项目需要分别设计,但随着同类工作的不断重复,开始有人意识到需要开发一种通用的程序来代替有共性的工作,于是不断发展就形成了今天作为地理信息系统开发平台的GIS软件。目前,国外应用较多的GIS产品有ArcoInfo、MapInfo、GenaMa、Idrisi等,这些都是经过市场检验,有一定特色和长处,比较成熟的商业软件。在国家支持下,我国也在开发自己的GIS平台,如北京大学的Citystar,中国地质大学(武汉)中地公司的MapGIS等。但总的来说,国内的GIS软件还不很成熟。
1.2 信息
信息,尤其是空间信息的质量、来源以及更新速度,很大程度影响着GIS的质量。随着GIS及其他高新技术的发展,信息的来源、精度及更新速度也在发生着巨大变化。
早期地理信息系统的信息是依据各种专题地图及其统计信息通过人工输入的,既费人力又费资金,而且速度慢、精度受人为影响大,随着信息采集方式的发展,这种方式所占的比例也将越来越小。遥感技术(RS)的产生和发展,使地学信息的获取和分析处理方法及其研究手段发生了一场革命。RS与GIS的集成,RS以其观测范围广、获取信息量大、速度快、实时性好及动态性强等特点,为GIS支持下的实时决策和研究提供了很大方便。
1.3 功能
早期的GIS只是作为数字化或显示地图的工具使用,但随着实际经验的累积和各种相应技术的不断发展,很多GIS软件都可以很方便的提供一些常规的地理信息系统所必要的功能,如空间数据管理、界面制作、统计图形制作、基本空间分析功能、网络分析以及空间数据复杂统计分析等。一些基本功能如空间数据的输入、编辑、属性数据的管理也变得越来越简单,节省了大量编程工作,使用户可以将精力放在更专业更深层次的功能开发上。
2 土壤水分运动模型原理
土壤水的运动可分为饱和状态和非饱和状态两种,对于一维的垂向运动而言前者可以通过Darcy定律进行描述,对于非饱和状态的土壤水运动,1931年Richards通过试验证明,在稳定流状态Darcy定律同样可以应用于非饱和土壤水的运动,并导出Richards方程。1948年,Childs和George引入扩散率概念,使Richards方程具有了扩散方程的形式:
(1)
(2)
式中:—土壤容积含水率;t—时间;z—距基准面的距离,向上为正;—土壤导水率;—土壤水势;—土壤水分扩散率,即基质势梯度为1时的导水率[2]。
由(1)式可以看出,土壤含水率的变化率可通过输入土壤水势和导水率求出,同时土壤水势和导水率又都是土壤容积含水率的函数,因此通过初始土壤含水率的输入,就可以得出连续土层、连续时间段的土壤水分变化情况。另外,在土壤水的研究中还需要了解垂向连续土层和同一土层不同时间的土壤水势情况,从而得到土壤水的运动趋势,因此在模型中我们通过对Van Genuchten方程中水势与含水率的函数公式(4),以及式(4)的运用来解决土壤含水率与水势及导水率之间的计算问题,并将得到的K值代入(1)式,用Newton[3]—Raphson迭代算法解Richards方程,并通过设定最大模拟深度及模拟最大时段等边界条件得出连续土层和连续时间段的土壤含水量、水势的变化垂向运动状况。
(3)
Van Genuchten水势与含水率函数
(4)
Van Genuchten水势与导水率函数
其中:θ为土壤容积含水率;ψ是土壤水势;和分别代表土壤的剩余体积含水量和饱和体积含水量; K非饱和土壤导水率;Ks饱和导水率;α、n、m是经验拟合参数且m=1-1/n[4]。
3 模型设计
3.1 组件式GIS平台的特征
组件式平台主要有微软的Component Object Model(COM)/Distributed Component Object Model (DCOM)和OMG公司的Common Object RequestB rokerArchitecture (CORBA)。组件式地理信息系统(ComGIS)就是面向对象技术和组件式软件技术在GIS软件开发中的应用。ComGIS不依赖于某一种开发语言,而是嵌入通用的开发环境(如:Visual C++、Visual Basic、Delphi等)中从而实现GIS功能,专业模型的开发则可以使用这些通用开发环境来实现,也可以直接插入其它的专业性模型分析控件。各个GIS控件之间以及GIS控件与其它非GIS控件之间,可以方便地通过可视化的软件开发工具集成起来,形成最终的GIS应用。通过标准的通信接口实现交互,构成应用系统。因此,使用ComGIS进行二次开发可以实现高效、无缝的系统集成,并且具有良好的扩展性[5,6]。
3.2 模型设计
模型设计流程图如图1所示,在Visual Basic可视化开发环境中进行模型机理公式代码的编写并同ArcObjiets控件接口进行整合编译生成土壤水分运动模型基于ArcMap的动态链接库插件(DLL文件) 。运行模型时在ArcMap中将DLL文件载入,设置相应的参数并指定数据源,即将待计算区域的空间数据与相对应的属性数据初始水势数据、土层数据(包括土壤类型及对应的水传导参数)、蒸发数据等,并通过空间插值运算IDW或Kriging[7]方法对初始数据进行插值,然后在设定的时间和深度范围内按照给定的步长利用Richard方程和Van Genuchten公式,逐天、逐层、逐个栅格点的进行土壤水分运算,得到不同土层及相同土层不同时间的土壤水势和含水量数据,并根据需要在ArcMap中输出显示研究区域不同时间,不同土层的水势或含水量分布图,从而反映土壤水分的时空变化。对于插值方法的选择本模型采用菜单形式,可以根据使用者的要求采用Kriging或IDW方法,但由于Kriging方法的计算量颇大[8],在某些情况下无法进行插值运算,此时模型会自动切换到IDW插值法,从而使运算能顺利进行。
图1 土壤水分运动模型设计流程图
此外,对于区域模型不可避免的存在着尺度和分辨率的问题,不同的模拟尺度和分辨率直接影响到最终结果,但分辨率的大小又制约着模型运行的效率和所需的时间,分辨率越高模型运行时越高,而分辨率低模型运行速度越快,但精度就变低。为解决这一矛盾本模型采用手工设置精度的办法,通过对分辨率的设置来达到精度与模拟效率的最优组合,同时又可以为不同的应用目的提供不同精度的产品输出。
4 结束语
本文运用组件式地理信息系统技术及水文模型技术开发出“土壤水分运动模型”。该模型充分考虑了非饱和状态下的土壤水运动情况及其影响因素,并运用ArcGIS的空间分析功能进行处理,实现了土壤水分运动空间和时间的耦合。为土壤水分含量及运动规律的研究提供了较为直观的参考依据。但本模型也存在一些问题如:对于土壤参数的设定依赖于经验,不能很好的优化;没有考虑植被因素;数据的存储和格式转化等,还有待于进一步的研究和探索。
参考文献:
[1]陈述彭,鲁学军,周成虎. 地理信息系统导论[M]. 北京:科学出版社,19991
[2]R H布朗,等.地下水研究[M].北京:科学书刊出版社, 1989.
[3]何光渝·Visual Basic常用数值算法集[M].北京:科学出版社,2002.