靳光才+趙慶展+周文杰+張清+許金霞
摘要: 為解決棉田朱砂葉螨預警中信息采集量少、短期預測不準確、預警信息發(fā)布困難等問題,設計并實現(xiàn)了基于馬爾科夫鏈和移動GIS的棉田朱砂葉螨預警系統(tǒng)。基于移動GIS平臺實現(xiàn)了棉田朱砂葉螨信息的快速、準確、實時采集,然后采用基于馬爾科夫鏈的方法對棉田朱砂葉螨蟲情進行短期預測,再使用克里格插值方法得到大范圍的預測結(jié)果。基于Python語言建立耦合的預警模型,能夠為用戶提供大面積的預警專題圖,同時可根據(jù)用戶輸入的棉田朱砂葉螨等級生成相應的短期預測結(jié)果并推薦科學的防治措施。初步應用表明,準確度可達80%,系統(tǒng)具有簡單實用、預測準確、大眾參與等良好特性,可廣泛應用于農(nóng)業(yè)病蟲害預警系統(tǒng)的構(gòu)建。
關鍵詞: 棉田;朱砂葉螨;移動地理信息系統(tǒng);馬爾科夫鏈;空間插值;預警系統(tǒng)
中圖分類號: S127;S126 文獻標志碼: A 文章編號:1002-1302(2016)03-0417-04
棉田朱砂葉螨俗稱紅蜘蛛,是棉花的三大蟲害之一,平均每年使棉花減產(chǎn)可達10%~68%,給棉農(nóng)造成重大的經(jīng)濟損失。及時、準確地掌握病蟲害的發(fā)生發(fā)展情況非常必要[1-2]。目前,病蟲害監(jiān)測及預警系統(tǒng)大多基于WebGIS(Web Geographic Information System)模式[3-4],這種模式下的病蟲害信息采集工作需野外填寫蟲害采集紙質(zhì)表格,在能夠連接網(wǎng)絡時通過瀏覽器登錄系統(tǒng)再提交數(shù)據(jù),往往費時費力。目前,病蟲害的GIS分析模型多用于中長期預測,在短期預測方面,精確預測病蟲害發(fā)生的地點及嚴重程度上還有所欠缺[5-6]。病蟲害監(jiān)測及預測信息的發(fā)布主要通過網(wǎng)頁,而基層農(nóng)戶往往缺少計算機及網(wǎng)絡連接條件,也沒有習慣登錄某個網(wǎng)站查詢相關的信息,因此,病蟲害測報信息鏈最后的信息發(fā)布環(huán)節(jié)是該類系統(tǒng)的瓶頸問題。移動GIS已廣泛應用在野外數(shù)據(jù)采集、移動辦公等領域[7-9]。目前,能夠通過移動手機終端快速獲得病蟲害發(fā)生位置和等級,但病蟲害發(fā)生發(fā)展的預測仍然是該應用領域的關鍵問題。馬爾科夫鏈(Markov Chain)在病蟲害預測領域已經(jīng)得到了廣泛應用且取得了良好的效果[10-12]??死锔瘢↘riging)插值法可將采樣點的結(jié)果擴展到整個區(qū)域[13],適用于棉田朱砂葉螨發(fā)生與傳播存在空間相關性的特點。
本研究提出基于移動GIS進行信息采集與服務接收的方法。對采集的棉田朱砂葉螨蟲害發(fā)生數(shù)據(jù)首先用馬爾科夫鏈對發(fā)生趨勢進行預測,然后運用克里格插值法進行插值處理,得到整體區(qū)域的棉田朱砂葉螨預測結(jié)果,再按照嚴重程度的分級標準對棉田朱砂葉螨蟲害的發(fā)生情況進行預警。系統(tǒng)在移動端設計了棉田朱砂葉螨防治支持功能,能夠提供快速準確的預測及推薦科學的防治信息。
1 系統(tǒng)結(jié)構(gòu)設計
本系統(tǒng)對棉田朱砂葉螨蟲害信息進行采集、存儲,運用預測模型制作病蟲害服務發(fā)布給用戶,并且為用戶提供防治建議。系統(tǒng)分為棉田朱砂葉螨信息采集、預警服務生成以及服務發(fā)布3個子模塊。系統(tǒng)采用C/S架構(gòu),移動端基于Android開發(fā)App,一方面可實現(xiàn)棉田朱砂葉螨空間信息及屬性信息的采集,并通過網(wǎng)絡傳輸至服務端,另一方面可根據(jù)用戶輸入的蟲害特征值快速地生成防治建議。服務端負責解析移動端傳入的蟲害數(shù)據(jù)并存儲到構(gòu)建的蟲害時空數(shù)據(jù)庫中,管理人員以蟲害數(shù)據(jù)庫中的信息作為輸入,病蟲害分析模型作為工具,進行分析、處理,并得到蟲害監(jiān)測及預測結(jié)果,最后通過ArcGIS Server以專題圖形式發(fā)布給用戶。系統(tǒng)結(jié)構(gòu)見圖1。
2 系統(tǒng)功能設計
系統(tǒng)功能結(jié)構(gòu)見圖2。主要分為蟲害信息采集、防治措施推薦、服務發(fā)布3個模塊。用戶通過在移動端安裝App,實現(xiàn)瀏覽棉田地圖、利用手機GPS定位及編輯蟲害發(fā)生區(qū)域,實現(xiàn)蟲害的空間信息及屬性信息采集,并提交到服務端的蟲害數(shù)據(jù)庫中;通過讀取用戶輸入的蟲害屬性信息(如紅葉株率),結(jié)合監(jiān)測及預測算法對數(shù)據(jù)進行快速處理,以圖表形式展示病蟲害預測結(jié)果,并根據(jù)結(jié)果提供預存在App中的防治措施,此外,還可以將系統(tǒng)生成的防治措施以短信的形式分享給其他用戶;服務發(fā)布功能處理流程為,管理員在后臺服務端連接蟲害數(shù)據(jù)庫,運用Python腳本語言編寫的預測模型對數(shù)據(jù)進行處理,將蟲害發(fā)生情況按照標準生成預警服務專題圖向移動端發(fā)布,提供在線瀏覽功能。
2.1 信息采集
ArcGIS Mobile是美國Esri公司的移動GIS解決方案之一,可將ArcGIS 的應用范圍擴展到野外。本系統(tǒng)通過其提供的開發(fā)工具包,調(diào)用相應的API可實現(xiàn)個性化的地理空間信息采集功能。
對于位置信息,借助于ArcGIS提供的API加載棉田地圖,通過調(diào)用手機內(nèi)置的GPS模塊獲得經(jīng)緯度信息定位到當前地點,農(nóng)戶根據(jù)病蟲害發(fā)生的具體情況,在地圖上繪制幾何形狀,描述蟲害的發(fā)生區(qū)域;對于屬性信息,主要為棉田朱砂葉螨發(fā)生的嚴重程度,用戶通過輸入特征信息,如紅葉株率,系統(tǒng)自動判別其嚴重程度所屬等級。采集時間默認為系統(tǒng)當前時間,也可設置時間,方便后續(xù)補充數(shù)據(jù)。完成上述信息采集后,系統(tǒng)將三者封裝為JSON格式的數(shù)據(jù),通過移動網(wǎng)絡發(fā)送至服務端的數(shù)據(jù)服務器中并自動錄入蟲害數(shù)據(jù)庫[8]。
2.2 基于馬爾科夫鏈棉田朱砂葉螨發(fā)生預測
馬爾科夫鏈將時間序列數(shù)據(jù)看作是隨機變量的一個數(shù)列,具有“無后效性”的特點,即已知某隨機過程“當前”的條件下,其“過去”和“將來”是獨立的。通過對事物不同狀態(tài)的初始概率和狀態(tài)之間轉(zhuǎn)移概率的研究,確定狀態(tài)變化的趨勢,從而預測事物的未來[11-12]。
農(nóng)作物病蟲害的信息采集過程中,經(jīng)常使用定點采樣的方法,即在固定地點以相等時間間隔下連續(xù)采樣,其形成的病蟲害時間序列數(shù)據(jù),恰好可以運用馬爾科夫法進行病蟲害發(fā)生發(fā)展情況的預測處理。
在棉田朱砂葉螨的馬爾科夫預測中,狀態(tài)可表示為他發(fā)生的不同等級,代表棉田朱砂葉螨的嚴重程度。狀態(tài)轉(zhuǎn)移概率為事件發(fā)展過程中,從某一狀態(tài)出發(fā),下一刻轉(zhuǎn)移到其他狀態(tài)的可能性。棉田朱砂葉螨蟲害的狀態(tài)轉(zhuǎn)移過程可對應隨著時間推移,棉田朱砂葉螨嚴重或減弱的變化過程,即等級之間的狀態(tài)變化。每次狀態(tài)轉(zhuǎn)移只與前一時刻的狀態(tài)相關而與過去無關,即狀態(tài)轉(zhuǎn)移過程為無后效性。關鍵問題則為計算棉田朱砂葉螨蟲害等級的狀態(tài)轉(zhuǎn)移概率矩陣。根據(jù)條件概率的定義,由狀態(tài)Ei轉(zhuǎn)移至狀態(tài)Ej的狀態(tài)轉(zhuǎn)移概率P(Ei→Ej)就是條件概率P(Ei|Ej),即
將滿足條件式(3)的任何矩陣都稱為概率矩陣。如棉田朱砂葉螨共分5個等級,記為5種狀態(tài),E1、E2、E3、E4、E5,由E1轉(zhuǎn)移到E2,記做P12,即為棉田朱砂葉螨蟲害由等級1轉(zhuǎn)變?yōu)榈燃?,計算狀態(tài)轉(zhuǎn)移概率矩陣Pij,即求出每個狀態(tài)轉(zhuǎn)移到其他任何一個狀態(tài)的轉(zhuǎn)移概率Pij(i,j =1,2,…,n) 。為求出每一個Pij,可用頻率替代概率的方法實現(xiàn),通過對歷史蟲害信息統(tǒng)計,用狀態(tài)轉(zhuǎn)移的頻率來代替狀態(tài)轉(zhuǎn)移概率[10-11]。
2.3 棉田朱砂葉螨發(fā)生位置的空間插值方法
基于移動GIS 的棉田朱砂葉螨信息采集方法提升了數(shù)據(jù)采集的數(shù)量并精確地定位了采樣點病蟲害的發(fā)生位置,雖然基于這些采樣點能夠得到小范圍、小尺度的預測結(jié)果,但在實際工作中,農(nóng)作物病蟲害防治往往需要掌握大范圍、大尺度的蟲害發(fā)生情況。因此,我們運用克里格插值方法將馬爾科夫鏈預測的結(jié)果進行擴展。
克里格插值法是空間統(tǒng)計分析方法中的重要內(nèi)容之一,是對有限區(qū)域內(nèi)的區(qū)域化變量取值進行無偏最優(yōu)估計的一種方法?;谶@種方法不僅考慮了待測點與鄰近樣點數(shù)據(jù)的空間距離關系,還考慮了各參與預測的樣點間的位置關系,充分利用了各點數(shù)據(jù)的空間分布結(jié)構(gòu)特征,使其估計結(jié)果比傳統(tǒng)方法更精確,更符合實際,有效地避免了系統(tǒng)誤差的出現(xiàn)。
在克里格插值中,待估點的估計值為其周圍由n個已知的樣點觀測值構(gòu)成的線性組合,即:
本系統(tǒng)充分利用二者的特點,在小的采樣點范圍,運用馬爾科夫鏈預測方法預測未來病蟲害等級的轉(zhuǎn)移狀況,然后通過普通克里格插值,對未采集到的區(qū)域進行插值處理,得到整個區(qū)域的病蟲害預測分布情況。系統(tǒng)采用Esri公司推出的基于Python的腳本工具箱ArcPy,能夠執(zhí)行地理數(shù)據(jù)分析、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)管理和地圖自動化。在計算出棉田朱砂葉螨狀態(tài)轉(zhuǎn)移矩陣的基礎上,采用Python語言,借助ArcPy編寫耦合的預測方法腳本,實現(xiàn)基于馬爾科夫鏈預測并進行插值,經(jīng)過處理后得出棉田朱砂葉螨預警專題圖。
3 系統(tǒng)實現(xiàn)與應用
3.1 研究區(qū)概述
本系統(tǒng)以新疆生產(chǎn)建設兵團第七師一二五團為示范區(qū),于2014年5月上旬至2014年9月上旬進行了推廣試用。一二五團位于新疆烏蘇縣境內(nèi),氣候比較干燥,無霜期長、降雨量少、熱量適中、日照充足。全團總面積約4.73萬hm2,棉花種植面積常年在0.67萬hm2以上,是最重要的經(jīng)濟作物。棉田朱砂葉螨一直為該種植區(qū)棉花的主要蟲害。一二五團設有植保站,有植保員負責對病蟲害信息進行采樣、監(jiān)測及發(fā)布病蟲害監(jiān)測及預測報告,積累了2004—2014年的病蟲害數(shù)據(jù)以及氣象信息,在棉花病蟲害防治方面已構(gòu)建了知識庫。
3.2 棉田朱砂葉螨信息采集
該模塊開發(fā)環(huán)境為JDK 6.0+Android SDK+ArcGIS for Android+Eclipse 6.0,開發(fā)平臺操作系統(tǒng)為Window 8,開發(fā)語言為Java,移動終端測試環(huán)境為三星Galaxy S3,系統(tǒng)為 Android 4.3。田間信息采集點按“Z”字形設計。每塊田查 8~10點,每點查100株,按照紅葉株率進行分級。紅葉株率≤5%為1級,6%~10%為2級,11%~20%為3級,21%~40%為4級,>40%為5級。
具體信息采集功能實現(xiàn)見圖3,位置信息通過ArcGIS for Android提供的MapView類可加載矢量或者影像地圖(離線方式或在線方式)。通過調(diào)用LocationListener可實現(xiàn)讀取GPS當前位置,并且讓地圖移動到當前位置,用戶可根據(jù)棉田朱砂葉螨發(fā)生情況,繪制點或者多邊形;屬性信息主要為棉田朱砂葉螨發(fā)生的嚴重程度,用戶可按照紅葉株率選擇對應的棉田朱砂葉螨發(fā)生等級。通過調(diào)用Android系統(tǒng)的Calendar提供的API可讀取系統(tǒng)當前時間,也可通過實現(xiàn)DatePickerDialog類,向用戶提供時間設定功能。當用戶錄入所有采集的信息后,系統(tǒng)自動將信息按照JSON格式封裝,開啟一個線程,通過HttpClient類,用HttpPost類將信息發(fā)送至服務端制定的Servlet地址,服務端通過JDBC(Java Data Base Connectivity)技術(shù)將信息插入到棉田朱砂葉螨時空數(shù)據(jù)庫中。
3.3 棉田朱砂葉螨預警專題圖生成
實現(xiàn)基于馬爾科夫鏈和克里格插值的耦合方法為制作預警專題圖的核心,而計算棉田朱砂葉螨等級的概率轉(zhuǎn)移矩陣是前提條件。本研究收集并整理了一二五團2004—2014年的棉田朱砂葉螨定點采樣數(shù)據(jù),對同一采樣點,時間間隔為5 d的棉田朱砂葉螨等級數(shù)據(jù)計入頻率矩陣(圖4-a),最終得出棉田朱砂葉螨等級概率轉(zhuǎn)移矩陣(圖4-b)。由棉田朱砂葉螨等級的概率轉(zhuǎn)移矩陣可得到,若當前發(fā)生的等級為1級的時候,那么5 d后等級為1的概率為0.79,遠遠高于矩陣中的其他值,一方面是因為在實際計算中,一般默認棉田朱砂葉螨發(fā)生等級為1,另一方面,在棉田朱砂葉螨發(fā)生初期,有個緩慢的增長過程;等級為2~4時未來將會向嚴重一級發(fā)展,等級為5時則基本會保持在該程度。
在計算出采樣點未來5 d棉田朱砂葉螨發(fā)生情況的基礎上,為了對整個種植區(qū)域進行預測,如前所述,使用克里格插值方法來實現(xiàn)。本系統(tǒng)運用Esri公司提供的Python工具箱ArcPy,調(diào)用克里格插值API實現(xiàn)棉田朱砂葉螨的空間插值,用Python語言編寫馬爾科夫鏈和克里格插值的耦合腳本。核心代碼示例如下:
import arcpy
>>> fc=“xpcc/cotton.gdb/spider/20140715.shp”
>>> f1=“等級”
>>> f2=“mar”
>>> cursor=arcpy.UpdateCursor(fc)
>>> row = cursor.next()
>>> while row:
... x = row.getValue(f1)
... if x == 1:
... row.setValue(f2,1)
... cursor.updateRow(row)
... elif x == 2:
... row.setValue(f2,3)
... cursor.updateRow(row)
... elif x == 3:
... row.setValue(f2,4)
... cursor.updateRow(row)
... elif x == 4:
... row.setValue(f2,5)
... cursor.updateRow(row)
... elif x == 5:
... row.setValue(f2,5)
... cursor.updateRow(row)
... row = cursor.next()
... oking = KrigingModelOrdinary(“CIRCULAR”,70000,250000,180000,34000)
... outking = Kriging(“20140715.shp “,”等級“,oking,200,RadiusVariable(),”“)
...outking.save(”xpcc/cotton.gdb/prewarning/spider/20140715.shp“)
本系統(tǒng)參照棉田朱砂葉螨蟲害分級標準,將預警結(jié)果劃分為5級,分別為白色、綠色、黃色、橙色、紅色預警。白色代表棉田朱砂葉螨尚未發(fā)生或發(fā)生比較輕微;綠色預警為棉田朱砂葉螨已經(jīng)有生長擴散的趨勢,需要重點關注;黃色預警為棉田朱砂葉螨發(fā)生比較嚴重,需要進行藥物防治;橙色和紅色預警表示非常嚴重,已經(jīng)造成災情,必須進行藥物防治。圖5-a為某一天的棉田朱砂葉螨監(jiān)測信息,圖5-b為其5 d后的預警專題圖, 實際應用中,等級誤差為1級可算作有效,該條件下預測精度達到80%。
3.4 棉田朱砂葉螨防治建議生成
棉田朱砂葉螨預警專題圖可在大尺度下反映棉田朱砂葉螨等級的整體狀況,但往往需要一定的時間且空間插值難免出現(xiàn)誤差。棉田朱砂葉螨防治措施推薦模塊為用戶提供了防治措施及建議,該模塊是馬爾科夫鏈預測在移動端應用的一個延伸。棉田朱砂葉螨的分級臨界點、等級概率轉(zhuǎn)移矩陣、防治知識存儲于SQLite數(shù)據(jù)庫中。軟件開發(fā)過程中建立數(shù)據(jù)操作層實現(xiàn)具體的數(shù)據(jù)讀取操作,使用業(yè)務邏輯層調(diào)用數(shù)據(jù)操作層并增加輸入判別等條件實現(xiàn)業(yè)務邏輯操作,在Android中的Activity類中實現(xiàn)對頁面輸入的讀取。創(chuàng)建控制層,當用戶輸入棉田朱砂葉螨紅葉株率并點擊確定按鈕時,控制層讀取輸入的數(shù)據(jù)當做參數(shù),調(diào)用業(yè)務邏輯層的劃分病蟲害等級業(yè)務進行處理,通過數(shù)據(jù)操作層讀取病蟲害防治知識,并將其顯示到界面中。
當用戶點擊預測按鈕時,控制層將劃分的病蟲害等級當做參數(shù),通過業(yè)務邏輯層調(diào)用數(shù)據(jù)層的棉田朱砂葉螨等級概率轉(zhuǎn)移矩陣,讀取5 d后每個等級發(fā)生的概率,并開啟新的界面繪制柱狀圖,同時提供未來5 d的棉田朱砂葉螨防治措施。系統(tǒng)可將預測的信息存入SQLite數(shù)據(jù)庫中,方便后續(xù)查看。點擊發(fā)送即可將防治建議、時間、條田名稱等信息以短信的形式發(fā)送給其他人,方便信息傳播,棉田朱砂葉螨防治服務查看界面見圖6。
3.5 系統(tǒng)測試
信息采集方面,地圖的加載、屬性選擇、棉田朱砂葉螨發(fā)生區(qū)域編輯、發(fā)送可在3~5 s時間完成,實現(xiàn)了蟲害信息的實時采集,并且耗費的網(wǎng)絡流量十分有限。棉田朱砂葉螨預測專題圖方面,管理員只需執(zhí)行寫好的Python腳本即可輕松實現(xiàn)數(shù)據(jù)處理,再經(jīng)過渲染等處理生成棉田朱砂葉螨預警專題圖并將其發(fā)布到ArcGIS Server中,用戶在移動端即可瀏覽預警信息,并根據(jù)GPS定位到當前位置。棉田朱砂葉螨防治措施生成方面,界面交互友好,處理迅速,可快速生成棉田朱砂葉螨防治建議及未來5 d各個等級發(fā)生概率及防治建議,在實際應用中,準確度可達80%以上。
4 結(jié)論與討論
系統(tǒng)采用移動GIS模式使棉田朱砂葉螨信息采集點及預測樣本大為增多,使用馬爾科夫鏈的棉田朱砂葉螨預警方法可為用戶提供準確度可達80%的預警服務。運用克里格插值則將預警服務擴展至大范圍,得到大尺度的預警信息,用戶可在第一時間通過手機瀏覽預警專題圖服務。
棉田朱砂葉螨的發(fā)生發(fā)展與氣象因素存在很大的相關性,下一步擬結(jié)合氣象信息,運用隱馬爾科夫鏈等方法,提供更準確的預測服務。此外在預警信息發(fā)布方面應更加具有針對性,如農(nóng)戶在某個區(qū)域上傳棉田朱砂葉螨蟲害信息,可默認該區(qū)域為該農(nóng)戶的興趣點,若隨后的預警分析得出該區(qū)域為橙色或紅色預警則自動向該農(nóng)戶推送預警結(jié)果。
參考文獻:
[1]曹 煥. 棉田朱砂葉螨發(fā)生規(guī)律及綜合防治技術(shù)[J]. 農(nóng)村科技,2014(12):45-45,46.
[2]楊 軍. 滴灌棉田棉葉螨的發(fā)生與綜合防治[J]. 現(xiàn)代農(nóng)業(yè)科技,2011(24):192,194.
[3]楊澤平,劉德強,王 茜,等. 基于地理信息系統(tǒng)技術(shù)的數(shù)據(jù)采集與監(jiān)視控制系統(tǒng)設計[J]. 計算機應用,2013,33(2):567-570,574.
[4]Petros T D,Matilda S S. Development and statistical evaluation ofmodels in forecasting moth phenology of major lepidopterous peachpest complex for Integrated Pest Management programs[J]. Crop Protection,2010,29(10):1190-1199.
[5]Wang N H,Li D,Pan H. Information service platform of forest pest forecast based on WebGIS[J]. Journal of Forestry Research,2009,20(3):275-278.
[6]張競成,袁 琳,王紀華,等. 作物病蟲害遙感監(jiān)測研究進展[J]. 農(nóng)業(yè)工程學報,2012,28(20):1-11.
[7]郭 琳,王 飛,張 寅,等. 農(nóng)作物遙感監(jiān)測業(yè)務管理系統(tǒng)設計與實現(xiàn)[J]. 農(nóng)業(yè)工程學報,2013,29(3):132-138.
[8]陳桂鵬,嚴志雁,瞿華香,等. 基于Android手機的農(nóng)業(yè)環(huán)境信息采集系統(tǒng)設計與實現(xiàn)[J]. 廣東農(nóng)業(yè)科學,2014,41(13):178-181,219.
[9]趙慶展,靳光才,周文杰,等. 基于移動GIS的棉田病蟲害信息采集系統(tǒng)[J]. 農(nóng)業(yè)工程學報,2015,31(4):183-190.
[10]張 碩,羅阿理. 基于Android平臺的天文觀測信息集成系統(tǒng)[J]. 計算機應用,2014,34(增刊2):339-343.
[11]占衛(wèi)國. 基于馬爾科夫模型的鄂東南水稻病蟲害預測方法研究[J]. 安徽農(nóng)業(yè)科學,2012,40(6):3343-3344,3731.
[12]劉映寧,王景紅,李艷莉,等. 運用馬爾科夫鏈方法預測陜西蘋果花期凍害年型[J]. 干旱地區(qū)農(nóng)業(yè)研究,2011,29(2):272-275,280.
[13]Luo S Z,Wang C. Forest pests and diseases forecasting based on GIS[J]. Advanced Materials Research,2011,250(5):2945-2948.
[14]劉 剛,趙 榮,劉紀平,等. 瀾滄江流域降水量空間分布的克里格插值分析[J]. 測繪科學,2007,32(3):104-105,113.