靳光才 趙慶展 周文杰 許金霞
摘要:針對棉田病蟲害信息發布時效性差、服務形式單一、針對性不足等問題,基于移動地理信息系統(geographic information systems,簡稱GIS)技術研發了服務器/客戶端(C/S)架構下的棉葉螨病蟲害信息發布系統。服務端運用ArcGIS Server實現對病蟲害專題的統一發布與管理。針對病蟲害專題圖和基礎棉田信息進行交叉分析,然后使用ArcMap中的結構化查詢語言(structured query language,簡稱SQL)語句篩選出蟲害等級較高的區域,并提取對應的農戶信息,最后采用JPush第三方推送平臺,將監測及預警信息直接推送到特定農戶。客戶端基于Android平臺,集成JPush開發包構建應用程序,通過注冊信息可實現推送信息的訂閱,隨后可接收服務端推送的文本預警信息或專題圖。結果表明,系統對服務的發布具有時效性高、針對性強等特點,可為農情信息發布提供參考。
關鍵詞:移動GIS;棉花;病蟲害;服務;推送
中圖分類號: TP274+.2;S126文獻標志碼: A
文章編號:1002-1302(2017)10-0196-03
棉花是新疆重要的經濟作物,棉田病蟲害是造成棉花減產的主要原因之一。及時且準確地將病蟲害的監測及預測等信息傳遞到植保部門及農戶手中,快速采取科學的防治措施,是控制病蟲害發展與蔓延、維護棉花可持續發展的關鍵環節。
近年來,計算機網絡技術與地理信息系統相結合的網絡地理信息系統(web geographic information system,簡稱 WebGIS),充分發揮了GIS強大的快速、實時空間信息獲取分析能力與網絡極為便捷的數據分享能力,極大提高了病蟲害發布的及時性,再加上智能手機的快速普及,GIS在智能終端應用十分廣泛,已成為野外信息采集及信息發布等主流的解決方案。潘潔等基于網絡GIS,構建了森林病蟲害監測系統,實現了病蟲害監測的實時發布[1];陳萬鈞等基于Android系統,針對林業有害生物實現了病蟲害災情上報,以可視化數據形式發布病蟲害預警等功能[2]。但還存在不足:基于WebGIS的信息發布模式雖然內容豐富、共享性強,但實際受眾小、用戶黏性低,并且由于缺少消息推送機制,導致用戶查看信息存在滯后問題[3-4];移動GIS技術目前多用于信息采集,服務接收方面局限于文字或可視化的圖表形式,消息內容單一,缺少個性化的信息服務[5-6]。
本研究充分運用移動GIS的經濟、便捷及位置感知能力等特點,采用服務器/客戶端(C/S)結構構建了棉田病蟲害信息發布系統。服務端統籌管理,負責消息發布與針對病蟲害嚴重區域個性化推送;客戶端可實現對個性化服務的訂閱與接收,基于位置對服務端發布的專題圖在線瀏覽。系統通過消息推送提高了病蟲害信息的時效性,個性化服務訂閱充分發揮了信息的價值,為提升農情服務發布質量提供參考。
1棉田病蟲害信息發布系統設計
1.1系統結構設計
如圖1所示,棉田病蟲害信息發布系統采用C/S結構。空間數據庫存放病蟲害發生數據及農戶信息、基礎棉田信息等。服務端一方面將病蟲害監測及預測專題圖運用ArcMap進行編輯處理,并發布到ArcGIS for Server上供客戶端瀏覽;另一方面,針對病蟲害專題圖和基礎地塊地圖進行交叉分析,并運用QueryLayer通過SQL語句篩選出病蟲害發生嚴重區域的農戶信息,同時編輯提醒消息,借助于極光推送平臺JPush云推送到農戶手機。
1.2系統流程設計
系統以精準而高效地發布蟲害服務為目標,針對蟲害信息專題圖,一方面,使用ArcMap軟件將它制作為專題圖服務,通過ArcGIS Server發布出去,用戶可在PC端通過瀏覽器或者手機APP中瀏覽專題圖;另一方面,將蟲害信息專題圖與包含農戶信息(別名)的棉田地塊地圖進行交叉分析,得到新的兼具兩者的信息地圖。然后使用SQL語句,根據病蟲害等級,篩選出危害嚴重的區域并提取對應的標簽,再通過JPush平臺,依據別名向用戶進行針對性地推送預警及專題圖地址等相關信息。用戶使用APP與JPush推送平臺建立長連接,并在JPush平臺注冊個人標簽加以區分,當推送消息的對象中包含此標簽時,即可接收并在通知欄顯示相應的消息,用戶點擊通知欄后,即可自動讀取消息中內含的專題圖地址,并自動跳轉到專題圖顯示頁面,讀取服務端發布的病蟲害專題圖(圖2)。
2系統詳細設計
2.1服務端功能設計
2.1.1專題圖制作及服務發布
病蟲害專題圖可以簡單有效地顯示病蟲害的發生程度及具體分布,是目前主流農情的發布方式。為了便于在移動端顯示,需要將柵格圖片形式的專題圖轉換為矢量圖,同時添加地理坐標,用戶在移動端瀏覽專題圖時可充分利用可定位性的特點,直接瀏覽當前位置的病蟲害發生情況。
病蟲害專題圖往往通過不同顏色標注不同的等級,為了科學規范區分各個病蟲害等級,首先對原有的專題圖數據進行重分類、簡化或合并某些類別,將柵格中相近的值歸為一類,統一將病蟲害嚴重情況分為5級。然后將柵格形式的專題圖數據轉為矢量數據,并進行配準,添加地理坐標。最后將準備好的矢量格式的病蟲害專題圖數據使用 ArcMap 制作為服務,通過ArcGIS for Server發布出去。
2.1.2病蟲害嚴重區域篩選及推送信息提取
在實際生產過程中,農戶一方面可通過專題圖全面地了解、關注整個區域病蟲害發生趨勢。另一方面,用戶更為關注自己農田的病蟲害發生情況,因此向用戶推送其農田所屬區域病蟲害狀況非常必要。
為了提取病蟲害發生嚴重區域所屬的農戶信息,將上述得到的矢量格式的病蟲害專題圖與基礎農田數據進行交叉分析,得到新的數據層中既包含病蟲害發生區域與等級數據,又包含所屬農田的基本信息,其中,農田的基本信息中包括承包戶的姓名、手機號等。然后針對新的數據層,使用SQL語句,設定病蟲害的類型、等級等條件,篩選出需要向用戶推送的數據,并導出所屬承包戶的基本信息,為信息推送作準備。
2.1.3消息精準推送
服務端的消息往往隨機不定時更新,移動端獲取服務端上的信息一般有2種方法:Pull(拉)和Push(推)。Pull方法即移動端每隔一段時間主動檢查服務器上有沒有信息,有則獲取,無則等待至下個時間點。該方法時間間隔難以掌控,間隔若大容易產生消息滯后問題,間隔太小既浪費電源又消耗流量。Push方法則每有新消息,服務器將消息直接推送到移動端,該方案需通過注冊機制在移動端和服務端之間建立一條長連接。
本系統采用國內較為成熟的極光推送平臺JPush,通過JPush與移動端建立長連接。JPush平臺支持3種靈活的推送方式,分別為廣播推送:向所有的注冊用戶發送1條廣播消息;標簽推送:根據屬性對用戶設置標簽分組,向群組用戶發送;別名推送:綁定用戶別名,向具體的單個用戶推送。為實現精準推送,用戶在移動端與JPush建立連接的同時設置別名,實現個性化的精確推送。
2.2移動端功能設計
移動端的核心功能在于能夠準確地接收服務端推送的文本消息,從服務端加載并瀏覽發布的專題圖服務。為了及時有效地接收服務端推送的信息,需要與服務端建立長連接,而實現精準的個性化推送則需要向服務端注冊特定的標簽。移動端接收推送的消息后,應能及時地從服務端加載專題圖服務并合理地顯示。
2.2.1用戶注冊與服務訂閱
為了及時有效地接收服務端推送的消息,用戶在打開APP后,自動與服務端的JPush平臺建立長連接,并且通過JPush平臺提供的應用程序接口(application programming interface,簡稱API),設置別名與標簽、訂閱服務內容。其中別名與基本農田信息中的用戶手機號對應,每個用戶都是唯一的,標簽則是分組名稱,如按照行政區域進行設置。服務端提取病蟲害發生嚴重區域所屬的農戶信息后,可根據標簽進行分組推送,或根據別名行更加針對性地推送,使得病蟲害服務更為精確、實用。
2.2.2專題圖信息瀏覽
服務端發布新的專題圖后,可在JPush平臺通過廣播向所有用戶發布通知,同時將服務地址內嵌在消息中。用戶可在手機通知欄中接收消息,點擊之后,APP可自動跳轉至服務瀏覽界面。目前,專題圖瀏覽多在瀏覽器中進行,此方法難以讀取位置專題中的位置信息。系統采用ArcGIS runtime for Android sdk進行開發,可通過圖層形式將專題圖展示在界面中,并利用全球定位系統(global positioning system,簡稱GPS)讀取當前位置的信息,方便用戶查看當前位置的病蟲害發生情況。此外,還可接收所注冊的標簽及別名所推送的文本信息。系統功能如圖3所示。
2.3核心功能實現
系統開發環境為JDK 7.0+Android sdk4.0+ArcGIS runtime sdk for Android 10.2.7+Eclipse 6.0;開發平臺操作系統為Windows 8;開發語言為Java;移動終端測試環境為魅藍M1,系統為Android 4.4。
2.3.1病蟲害服務制作與發布
專題圖多為圖片,即柵格格式,為了將專題圖發布至網絡使它便于在移動端顯示,采用ArcMap 10.1中的可視化建模工具(model builder),建立如圖4所示的處理模型。模型輸入為病蟲害專題圖及研究區邊界圖,輸出為矢量格式(shapfile)的病蟲害專題圖。首先使用ArcGIS中提供的重分類工具(reclass),根據實際生產需求,將病蟲害按照要求劃分為5個等級。然后使用柵格轉矢量工具(raster to polygon)得到各個等級的矢量數據形式,使用裁剪工具(clip)截取研究區內的病蟲害數據。最后,使用平滑多邊形工具(smooth polygon)將多邊形輪廓的尖角平滑化,提高制圖質量。
使用ArcMap連接ArcGIS Server,將上述制作的專題圖發布到ArcGIS Server上,值得注意的是,發布過程中需勾選mobile data access選項,否則無法在移動端正常加載。
2.3.2服務訂閱與推送
為實現推送功能,移動端APP開發中集成了JPush for Android SDK 2.1.3,在JPush官網申請Appkey后即可免費使用。調用init(context)接口可實現與JPush平臺建立TCP長連接,通過JPush Interface接口中設置標簽及別名的方法進行個性化服務訂閱,標簽按照行政區設置,別名設定為用戶手機號,與基本棉田數據信息中的承包戶手機號對應。通過JPush Web端設定需要推送的標簽或別名,通過JPush平臺的JPush API,調用Push Engien在已建立連接的移動端中需找相匹配的進行推送。JPush結構如圖5所示。
2.3.3病蟲害服務精確推送及服務瀏覽
精確推送的前提是提取出病蟲害發生嚴重區域所屬的承包戶信息。使用交叉分析(Intersect),輸入病蟲害矢量專題圖和基本農田信息,輸出的結果即可得到每塊田的病蟲害等級情況。處理過程如圖6所示,結果如圖7-a所示,同時,按照植保防治規范,將病蟲害發生程度由輕到重分為1~5級,分別用白色、綠色、黃色、橙色、紅色表示。
獲得交叉分析結果后,根據實際生產需求,在ArcMap中可通過SQL語句,設定病蟲害等級范圍,篩選出病蟲害發生嚴重區域(圖7-b),并導出所屬的承包戶信息。最后,在JPush平臺中,可編輯相關文本信息,設定上述提取的農戶標簽或別名,向移動端進行服務推送,已在JPush平臺訂閱了相關標簽及別名的終端即可在通知欄順利接收到推送消息(圖8-a)。
為了更加便捷地顯示服務端發布的專題圖,移動端集成了ArcGIS runtime for Android,它提供了豐富的地圖顯示及移動、縮放API。采用MapView類作為地圖顯示的容器,使用ArcGISDynamicMapServiceLayer(http://192.168.1.4:6080/arcgis/rest/services/p1/MapServer)方式加載服務地址創建圖層,加載到MapView中即可顯示(圖8-b)。專題圖可定位到當前位置,瀏覽周圍的病蟲害狀況。
2.3.4系統測試
2015年6—8月,在新疆生產建設兵團第八師125團進行了本系統測試試運行。實踐表明,系統可準確提取出病蟲害嚴重區域所屬承包戶信息,準確率在90%以
上;標簽設置為連隊信息,別名設置為用戶的手機號,均可實現準確推送,可在3~5 s內完成;病蟲害專題圖清晰、準確,瀏覽過程中流暢無卡頓,并且可讀取GPS位置,定位到當前點,位置誤差在15 m內。
3結論
系統運用移動GIS技術,使用ArcGIS Server發布病蟲害專題圖服務,集成ArcGIS runtime for Android實現了專題圖瀏覽。使用Model Builder建模及SQL實現了病蟲害嚴重區域的農戶信息提取,并借助JPush推送平臺實現精準推送。在系統試用過程中,用戶可第一時間在移動端瀏覽病蟲害專題圖服務,并接收推送的信息,時效性強、針對性高。今后可進一步集成服務端的專題圖制作、發布、消息推送等功能,實現系統運行業務化、流程化。
[HS2*3][HT8.5H]參考文獻:
[1]潘潔,廖振峰,張衡,等. 基于高光譜數據與網絡GIS應用的森林病蟲害監測系統研究[J]. 世界林業研究,2015,28(3):47-52.
[2]陳萬鈞,張維玲,鐘建華,等. 基于Android系統的林業有害生物防治系統設計[J]. 廣東農業科學,2013,40(18):181-185.
[3]劉小紅,戴小鵬,劉海波,等. 基于WebGIS的水稻病蟲害預警平臺設計[J]. 農業災害研究,2012,2(1):6-8.[HJ1.68mm]
[4]廖振峰,潘潔,張衡. 基于GIS的森林病蟲害監測系統開發的研究進展[J]. 林業資源管理,2013,6(12):174-179.
[5]趙慶展,靳光才,周文杰,等. 基于移動GIS的棉田病蟲害信息采集系統[J]. 農業工程學報,2015,31(4):183-190.
[6]賈桂霞,吳步梅,張文利. 基于Android的經濟林病蟲害防治移動服務平臺的構建[J]. 蘭州工業學院學報,2015,22(3):51-55.
[7]Werts J D,Mikhailova E A,Post C J,et al. An integrated WebGIS framework for volunteered geographic information and social media in soil and water conservation[J]. Environmental Management,2012,49(4):816-832.
[8]Wu A N,Yan X,Zhang X L. Geo-tagged mobile photo sharing in collaborative emergency management[C]. Proceedings of the 2011 Visual Information Communication International Symposium,USA:ACM Digital Library,2011.
[9]李文闖. 基于Android的移動GIS數據采集系統研究[D]. 北京:首都師范大學,2013.
[10]陶瓊,高福宏,李忠環,等. 基于WebGIS的煙草病蟲害監測預警防治技術體系的設計與構建[J]. 安徽農業科學,2013,41(5):2246-2247,2323.
[11]佚名. 極光推送官方文檔[EB/OL].(2015-05-20)[2016-08-10]. http://docs.jiguang.cn.
[FQ)]