冯惠妍,陈争光,王淑云
(1.黑龙江八一农垦大学信息技术学院,大庆163319;2.黑龙江省科学技术情报研究所)
土壤肥力评价是精准农业的重点和热点问题。针对土壤肥力评价问题,韩磊等[1]建立了基于matlab的BP神经网络的土壤养分综合评价参考模型,李政等[2]建立了东湖沉积物营养状况的BP神经网络模型。庞永青等[3]立了基于WebGIS的农田测土配方施肥管理系统的设计。目前基于matlab的土壤肥力评价方法得到广泛的使用,但很少将基于BP神经网络的土壤肥力评价方法和WebGIS技术相结合。使用matlab实现BP神经网络模型的构建,再根据WebGIS技术特点及土壤肥力评价的实际需要,实现matlab2009a和VS2008的混合编程,实现对该区域土壤肥力进行综合评价。基于WebGIS评价平台的建立,可为用户提供准确、科学的施肥指导。
黑龙江850农场位于虎林市境内,北依完达山南麓、南傍穆棱河畔,地处著名的三江平原。地理位置东经132 015′~132 051′,北纬45 041′~45 054′,属三江平原完达山亚区地带。土壤肥沃,水资源充足,自然资源丰富,取采样点1 500个,对其进行土壤测定。土壤测定项目包括pH值、有机质、速效氮、有效磷、速效钾五个项目,测定方法按《测土配方施肥理论与实践》中的方法进行[4]。土壤肥力等级的划分依据北京市第二次土壤普查结果的指标等级,并结合土壤质量的实际状况,将土壤等级分为:{极高、高、中、低、极低},对应等级{一等、二等、三等、四等、五等}[5-6]。
误差反向传播神经网络模型(BP)是近年应用最广泛的网络之一,它通过对有代表性例子的学习、训练,能够掌握事物的本质特征,进而解决问题[3],由输入层、输出层和若干个隐含层构成。采用BP人工神经网络技术构建的非线性评价模型,可以避免人为确定各指标的权重带来的主观性,使评价结果的准确性提高。
因BP方法在权重的确定上不依赖于人为因素,根据表1的分级指标在matlab中使用Linspace函数,均匀分布内插生成5个级别的样本,没个级别样本300个,共计1 500个训练样本,从中随机抽取1 200个样本作为训练样本,剩下的300个作为检验样本,为了便于利用matlab神经网络工具箱中的训练函数,应用最大最小函数premnmx对训练样本、检测样本进行预处理,将各参数量化到[-1,1]内,进行归一化处理,然后再作为输入单元。
表1 土壤养分含量分级标准Table1 Classification criterion of soil nutrient content
采用三层BP神经网络模型,因研究参评的土壤养分指标为5个,故输入层节点数为5,目标输出为土壤养分等级,故输出层节点确定为1。隐层节点数的确定过程是将神经网络的算法学习速率设定为0.01,学习速率增加比率为10,减少比率为10,期望误差为0.000 01,网络最大训练次数设定为50 000次,输入层到隐含层的激活函数为非线性Sigmoid函数,隐含层到输出层的激活函数为线性Purlin函数[7],使用matlab中的nntool工具箱进行验证,结果表明模型在隐含层节点数为7时,在速度和精度两方面达到最优。故模型为5-7-1的拓扑结构。结果用postmnmx函数进行反归一化处理,训练之后的BP神经网络的权值(如表2所示),相应的阈值为:{20.93,-88.90,15.86,-9.56,5.50,57.78,24.86}。
表2 BP神经网络的权值Table2 Weightof BP neural network
将训练好的BP网络模型应用到黑龙江850农场的土壤肥力评价上。该农场的基本地理信息已建立,包括地理空间数据以及养分属性数据信息[8]。
使用VS中调用matlab com组件达到数据共享编程,com组件的建立和VS中引用该组件如下:
(1)预测函数文件:因BP神经网络模型的3层结构(5-7-1)、权值、阈值已确定,编写预测函数文件(M文件)。函数头为:Funntion[m]=bpnet(a),其中a为输入的养分,m为输出的预测结果,函数保存为bpnet.m。
(2)将bpnet.m生成com组件,并发布组件,设置目标为.net Assemby,并注册组件。
(3) 在VS2008中添加对该com组件的引用using Bpnet;为满足程序需要还需要添加引用如using MathWorks.MATLAB.NET.Arrays;(把C#中的数组转化为matlab中的数组);using MathWorks;等。
(4)在VS中编写代码,完成功能。
实现“选中”地块,并高亮显示如图1所示,读取该地块的养分信息并作为com组件的输入参数调用组件,经BP模型的预测得到输入养分的等级预测结果m,之后将该预测结果返回并显示,如表3所示。
图1 选择地块Fig.1 Selection of plot
表3 返回地块级别信息Table3 Return plot level information
经神经网络确定的地块等级,各个等级部分数据如表4所示。经直方图检验(图2所示)标准方差0.974,偏度0.12(0.47),峰度-0.17(0.92),W检验值为0.263>0.05,服从正态分布。
图2 直方图检验Fig.2 Histogram test
用GS+7.0对地块等级进行半方差Gaussian函数模拟(如图3所示),将模拟的参数在Arcgis9.3中进行克里格插值[9],得到了该研究区域的在线等级分布图,如图4所示。
图3 Gaussian函数模拟Fig.2 Gaussian functional simulation
图4 土壤肥力等级在线空间分布Fig.4 Online spatial distribution of soil fertility grade
主要和文献[8]中的模糊评判法进行了结果预测比较,从数据库中抽取其中一部分数据(如表3所示)由表3可知两种方法进行等级评价得出的结果基本一致,但BP神经网络方法因在整个评价过程中不需要人为干预因素,因此更可信更客观。
造成其中有等级预测结果不一致现象,分析其可能原因:(1)文献[8]中计算权重使用的是层次分析法(AHP),该方法在计算过程中舍弃了方差较小的主成分,从而造成了一定的人为因素影响,而BP神经网络的权重的获得是在反复的调整,直到满足条件要求,整个过程自动完成,没有人为干预,所以结果更客观。(2)克里格插值方法是在有限区域内对区域化变量进行无偏最优的估计进行取值,原因1造成有限区域内的数值有误差,导致在该方法下的插值也会有误差。
针对黑龙江850农场的土壤肥力评价的实际应用,建立了BP神经网络模型,确定了模型的三层结构,并给出了模型的权值和阈值。在此基础上,建立了基于webgis的土壤肥力评价的空间信息平台,实现了地块等级的在线评价及等级的地理空间分布。与相关方法的比较得出,此方法能够更有效地进行土壤肥力评价。研究结果为实现网络化、数字化、广适性的精确农作决策支持提供了基本平台。
[1]韩磊,李锐,朱会利.基于BP神经网络的土壤养分综合评价模型[J].农业机械学报,2011,42(7):109-115.
[2]庞永青,欧阳欢,闫林,等.基于WebGIS的农田测土配方施肥管理系统的设计[J].南方农业学报,2012,43(1):117-119.
[3]李政,方涛,王坎,等.湖沉积物营养状况的BP神经网络模型研究[J].环境科学与技术,2011,34(12):110-114.
[4]谢卫国.测土配方施肥理论与实践[M].长沙:湖南科学技术出版社,2006.
[5]吕新,寇金梅,李宏伟.模糊评判方法在土壤肥力综合评价中的应用研究[J].干旱地区农业研究,2004,22(3):56-59.
[6]董文涛,路明浩,韦大山,等.基于模糊数学方法的土壤肥力综合评价及应用[J].资源开发与市场,2011,27(6):511-513.
[7]肖钢,钟洛,陈立耀.神经网络结构与训练参数选取[J].武汉工业大学学报,1997,19(2):108-110.
[8]冯惠妍,陈争光.基于WebGIS的模糊评判法的土壤肥力评价研究[J].黑龙江八一农垦大学学报,2012,24(6):65-67.
[9]刘东海,梁国庆,周卫,等.基于神经网络的土壤肥力综合评价[J].中国土壤与肥料,2011(5):12-19.
[10]丁毓峰.精通MATLAB混合编程[M].北京:电子工业出版社,2012.