趙蕓 黃丙湖 呂瑞
摘要:準確及時可靠的農情信息是指導人們進行農業(yè)生產的保障。農情遙感信息服務存在太過專業(yè)化的問題,遙感信息的處理過程需要專業(yè)人員的專業(yè)操作,信息的發(fā)布有一定的滯后性,難以滿足用戶多樣化的信息需求。針對這一問題,借助Web技術和GIS組件庫ArcEngine開發(fā)與設計了基于Web的農情遙感監(jiān)測信息服務系統(tǒng),整合了眾多農情遙感模型,為公眾提供了農情遙感數(shù)據處理入口,用戶不需要相關專業(yè)知識,僅僅需要按界面規(guī)則提交參數(shù)即可獲取直觀易懂的農情信息。
關鍵詞:農情遙感;模型整合;Web;ArcEngine
中圖分類號:S29? ? ? ? ?文獻標識碼:A
文章編號:0439-8114(2019)04-0078-04
Abstract: The guarantee for people to conduct agricultural production is accurate, timely, reliable agricultural information. Agriculture remote sensing information serving exists the problem that it is too professional to meet the information demand of diversified users. The process of remote sensing images needs more professional operation by professional. In view of this problem, this paper developed and designed an agriculture remote sensing information serving system based on Web by use of network technique and ArcEngine technique, a GIS component library. The system integrates many agriculture remote sensing model and provides the entrance of agriculture remote sensing data processing for public. By this system users do not need to understand the relevant professional knowledge, just to submit parameters according to the rules of the interface to get visual information.
Key words: agriculture remote sensing; model Integration; Web; ArcEngine
中國人口眾多,是農產品生產與消費的大國,農業(yè)生產的情況關系著國家的糧食安全以及農業(yè)政策的制定,因此,農情信息的及時發(fā)布是十分重要的。農情遙感是遙感技術在農業(yè)上的應用,是遙感科學的重要分支,具有感測范圍大、周期短以及信息豐富的特點,為農情信息的及時、精確獲取提供了重要的技術支撐[1]。
隨著遙感技術的發(fā)展,獲取農情信息的能力逐步得到提升,農情遙感的領域也不斷擴展,與GIS、GPS以及物聯(lián)網技術融合[2],在糧食估產、作物長勢、病蟲害監(jiān)測[3-5]等方面取得了明顯進展。許多組織與國家建立了各自的農情遙感監(jiān)測系統(tǒng)。美國建立了全球農業(yè)監(jiān)控系統(tǒng)GLAM[6];歐盟設立了基于遙感的農業(yè)統(tǒng)計項目“MARS計劃”;在中國,最典型的是“中國農情遙感速報系統(tǒng)”[7]。但是由于農情遙感監(jiān)測工作頭緒多,涉及眾多的農情遙感數(shù)據處理模型,這些系統(tǒng)多是C/S結構的客戶端軟件形式,只有專門人員安裝并輸入專業(yè)指令才可調用模型,專業(yè)性強,應用范圍難以推廣。因此,農情遙感信息的發(fā)布方式往往采用報告或文檔的形式,限制了農情遙感信息傳遞的時效性。而且中國國土遼闊,各地農情區(qū)別明顯,難以建立普適性的農情遙感數(shù)據處理模型,降低了信息的準確性。因此借助Web技術整合農情遙感涉及的眾多模型供用戶實時選擇使用是十分必要的。
農情遙感模型產生的數(shù)據或影像產品雖然包含各類信息,但可讀性較差,目視獲取的有用信息較少,需要專業(yè)人員借助專業(yè)知識及GIS領域的專業(yè)軟件輔助制成專題圖,公眾才能接收并理解其中的農情信息。然而專題圖制作過程工作量大、重復性大,隨著互聯(lián)網的發(fā)展,Web與GIS技術為自動制圖的實現(xiàn)提供了技術支持。
針對農情遙感信息服務過程中存在的上述問題,本研究設計了農情信息服務系統(tǒng),借助網絡技術和嵌入式的GIS組件庫ArcEngine來整合眾多的農情遙感模型并研究專題圖的自動化制作方法,目的在于降低農情遙感過程的專業(yè)化程度,讓用戶僅僅需要按照要求提交參數(shù)就可以得到需要的農情信息,來提高農情遙感監(jiān)測的普適性與農情信息的推送能力。
1? 系統(tǒng)體系結構和功能設計
B/S結構是一種Web結構模式,傳統(tǒng)的B/S體系結構是三層結構,即客戶端、應用服務器以及數(shù)據庫服務器。三層結構將應用劃分為表示層、業(yè)務邏輯層、數(shù)據層,這種體系也可被稱為三層分布式體系[8]。根據用戶的多樣化需求,該結構可以繼續(xù)細化功能層及數(shù)據服務層。如系統(tǒng)功能A、B、C都可以有需要使用的服務器,而這些服務器根據自身的功能需求可以訪問不同的數(shù)據庫服務器a、b、c、d等,通常稱之為多層結構體系,但這僅僅指的是邏輯上多層,物理層面上還是三層的。
該系統(tǒng)采用多層結構體系,細分為3個服務器:用于系統(tǒng)和模型任務管理的任務服務器,用于模型處理計算的模型服務器以及用于專題圖生產的GIS渲染服務器,它們相應地訪問對應的數(shù)據庫服務器。其體系結構如圖1所示。
1.1? 表示層
表示層是用戶界面以及與用戶界面直接相關的部分。由于系統(tǒng)涉及模型較多,用戶往往難以聚焦,因此主頁面采用Win8界面風格,內容頁面采用導航、菜單、內容的經典布局模式。
1.2? 業(yè)務邏輯層
業(yè)務邏輯層,又稱功能層,是整個系統(tǒng)的關鍵。模型調用模塊、任務中心模塊、專題圖生產模塊是系統(tǒng)的核心功能。每個模塊又可以細分成多個子模塊,具體功能如下。
1)模型調用模塊。通過設定模型參數(shù),如起始、結束年、區(qū)域、類型等,選擇待處理農情遙感影像數(shù)據(這里的數(shù)據默認選擇遠程數(shù)據庫的非公開影像數(shù)據,也可以用戶自行上傳)進行模型計算,生成對應的結果數(shù)據及日志。系統(tǒng)整合的模型大致分為兩類,一類是農情氣象指標模型:光合有效輻射、溫度、降水模型,它們反映氣象條件對農業(yè)生產活動的影響,指導農事作業(yè)過程。另一類是農業(yè)遙感指標模型:歸一化植被指數(shù)(NDVI)、植被狀態(tài)指數(shù)(VCI)、復種指數(shù)、作物長勢、作物估產模型等。其中NDVI是模型計算的基礎指數(shù),反映了植被覆蓋度,其余模型或多或少基于NDVI開展數(shù)據處理工作,如VCI,它表達時間尺度上作物生長狀況基于目前NDVI和歷史同期最大最小計算得到;復種指數(shù)是一年內耕地使用的程度,取一年內耕地全部作物的總種植面積與總耕地面積的比值。
2)任務中心模塊。為了約束用戶行為,設置系統(tǒng)管理員來查詢、查看系統(tǒng)當前或歷史的模型計算任務的基本信息,審核任務的可執(zhí)行性,若任務不可執(zhí)行,管理員可以取消或暫停普通用戶提交的任務并予以反饋。
3)專題圖生產模塊。設計地圖文檔,制作專題圖的渲染模版,每種模型對應一種模版,渲染指定的遙感影像數(shù)據生成專題圖,便于用戶閱讀理解。
1.3? 數(shù)據層
數(shù)據層存儲了農情遙感影像處理的基礎數(shù)據,業(yè)務數(shù)據和成果數(shù)據?;A數(shù)據是待處理的基礎遙感影像,業(yè)務數(shù)據是業(yè)務邏輯層中在業(yè)務處理中實時產生的各種中間數(shù)據,成果數(shù)據是影像處理后生成的結果數(shù)據。
2? 關鍵技術及實現(xiàn)
系統(tǒng)以Java、JSP、HTML、JavaScript 等作為基礎開發(fā)語言,在MyEclipse開發(fā)平臺下完成。MyEclipse作為Eclipse的插件,大大簡化了Java EE應用的開發(fā)。并選用PostgreSQL作為數(shù)據庫平臺,它包含多種幾何類型,對于農情遙感復雜的地理空間數(shù)據的存儲而言是很適合的,系統(tǒng)整體界面結構如圖2所示。
2.1? PostgreSQL
PostgreSQL是一種概念先進的對象關系型數(shù)據庫管理系統(tǒng),在支持大部分的SQL標準的基礎上提供了豐富的數(shù)據類型和接口。另外,是純免費的開源數(shù)據庫產品,無論誰都可以依照自身需求免費應用、修改PostgreSQL。
由于PostgreSQL包含豐富的幾何類型,它在地理信息系統(tǒng)(GIS)領域的優(yōu)勢十分明顯。PostgreSQL支持幾乎所有的空間數(shù)據類型,包括點、多點、線、多線、多邊形和集合對象集等,并且提供了簡單的空間分析方法,如坐標轉換、距離測算等。除了幾何類型的數(shù)據類型,PostgreSQL還提供對于大的柵格數(shù)據對象的存儲,說滿足了該系統(tǒng)的需求。
2.2? Secure Shell
由于眾多模型部署在Linux服務器上,Windows用戶如果想要與Linux服務器進行文件傳送,就需要一個Secure Shell(簡稱SSH)。SSH是一個建立在應用層和傳輸層基礎上的安全協(xié)議,它允許Windows用戶通過互聯(lián)網使用公鑰加密來認證遠程的計算機,進而連接到Linux遠程服務器。使用 SSH可以對遠程 Linux 服務器進行全面管理,在保障服務器安全的同時減少了管理人員的工作量[9]。
2.3? 任務分發(fā)調度
每次模型調用都可以看成一個任務,任務執(zhí)行的先后順序遵循以下兩條規(guī)則:先根據用戶級別排序,再按任務提交順序排序。
假設管理員用戶、普通用戶的優(yōu)先級分別用A、B表示,優(yōu)先級A>B,同級任務編號從1開始,依次增大,如A1、A2、A3。某時刻,當前系統(tǒng)中排隊的任務隊列如下:A1、A2、B1、B2,此時管理員用戶提交一個新的任務,任務隊列將變?yōu)锳1、A2、A3、B1、B2。
系統(tǒng)主要是要設計一個任務分發(fā)調度類來實現(xiàn)任務調度及管理,此調度類要設計成單例模式,以保證任務隊列。由于任務執(zhí)行時首先需要通過SSH連接遠程Linux服務器,然后利用IDL語句調用其上的農情遙感監(jiān)測模型,此過程要創(chuàng)建會話(session)并連接到指定的服務器,需要耗費一定的時間,為了提高任務執(zhí)行效率,采取將Runnable接口的子類對象傳遞給Thread構造方法的創(chuàng)建線程的方式[10]創(chuàng)建會話,實現(xiàn)僅僅連接一次服務器,之后任務的執(zhí)行無須再次連接。
2.4? 解決AJAX跨域問題
同域名、同網絡協(xié)議、同端口,三者都滿足就是同一個域,否則就是跨域問題了。由于系統(tǒng)采用多層B/S體系結構,存在跨域問題??缬蛏婕盀g覽器的同源策略[10],它宏觀地限定了瀏覽器的安全邊界,是瀏覽器的基本策略之一。通常所說的兩個站點同域就是指它們同源。
XMLHTTP代理方式可以實現(xiàn)AJAX跨域訪問,XMLHTTP代理是指在本域與異域通訊時加一中間層,由它向異域服務器進行讀取數(shù)據的操作。這種代理機制讓服務器端完成“跨域訪問”的工作,避開了同源策略的限制,如圖3所示。
2.5? 專題圖渲染
在農情遙感領域,專題圖制作十分關鍵,影像產品難以直接獲取有用的數(shù)據信息,往往需要通過ENVI或ArcGIS等3S領域的專業(yè)軟件進行輔助制圖,突出有效信息。而且農情信息具有時變性,需要制作同一類型農情不同區(qū)域、不同時期的專題圖,存在重復作業(yè)、效率不高的問題。系統(tǒng)利用ArcEngine10.2的組件及接口和 Java進行開發(fā),實現(xiàn)了柵格和矢量兩種數(shù)據形式的專題圖自動化生產方法,用戶僅僅需要提供基礎參數(shù)信息,中間過程不需要用戶的參與,達到了去除專題圖制作過程中太過專業(yè)化的目的。
ArcEngine是面向開發(fā)者的ArcGIS的軟件開發(fā)引擎,對于繁雜的GIS開發(fā)而言,提供了基于空間分析接口的實用的開發(fā)框架,能將地理信息功能嵌入到軟件中,可用于構建自定義GIS和制圖應用。
由于同類專題圖上的元素相同,圖上坐標相同,可以制作一個地圖模板,這樣在系統(tǒng)制圖自動化的過程中僅需修改元素的值。地圖模版簡單來說是各種地圖元素的頁面布局,也可以包含底圖。同類型的多張地圖可以公用一個地圖模版來標準化布局,不必手動重新制作地圖的公有部分。地圖模版的渲染包括分級渲染、惟一值渲染等,系統(tǒng)會根據用戶提供的模型參數(shù),自動獲取對應的遙感影像、地圖模版以及渲染模式,由于區(qū)域參數(shù)的限制,往往需要進行區(qū)域選擇和區(qū)域裁剪的地理處理來滿足用戶需求,具體流程為:
1)獲取參數(shù)。用戶根據自身需求輸入相應的參數(shù),包括時間、區(qū)域、模型類型等。
2)加載地圖模版。利用ArcEngine里的Imap
Document接口打開地圖文檔,訪問地圖文檔中的地圖對象,通過IMap接口獲取焦點地圖,管理地圖中的圖層(圖4)。
3)裁剪柵格影像。根據獲取的模型參數(shù),選擇對應模型的柵格影像,判斷是否需要進行影像裁剪,當區(qū)域參數(shù)是影像局部區(qū)域時,利用地理處理工具(GeoProcessor)選擇出區(qū)域并生成shp文件,再利用shp文件裁剪柵格影像得到目標區(qū)域柵格影像;當區(qū)域參數(shù)是全局參數(shù)時,跳轉第四步。
4)添加柵格影像。利用IworkspaceFactory、IrasterDataset、IrasterLayer接口將第三步得到的目標影像添加到地圖文檔中。
5)渲染柵格影像。判斷模型的渲染類型,讀取地圖模版中的渲染樣式渲染柵格影像,必要時可以修改渲染參數(shù),如label、color等等。渲染結果如圖5所示。
6)出圖。利用ExportPNG接口將專題圖導出保存為.jpg格式,方便網頁端獲取并展示。
3? 小結
借助Web技術和GIS技術設計與開發(fā)了農情遙感信息服務系統(tǒng),實現(xiàn)了農情信息及時有效的發(fā)布和利用,為農情遙感信息的普通化、大眾化提供了技術支撐;用戶在使用過程中,不需要關心遙感數(shù)據的獲取渠道與管理方式,也不需要掌握農情遙感監(jiān)測有關的數(shù)據處理模型的原理與流程,只需要簡單填寫模型運行的參數(shù)就可以調用這些模型并且模型運行結果會自動渲染成專題圖以方便獲取對應的農情信息。系統(tǒng)測試運行結果表明,農情遙感監(jiān)測信息服務系統(tǒng)的響應速度較快,可以在使用過程中及時反饋模型運算狀態(tài)信息,為用戶提供了良好的交互感和用戶體驗。
目前,系統(tǒng)有多個用戶端,但只有一個任務服務器來處理用戶請求進行任務調度,一個模型服務器進行模型運算,任務與模型服務器具有一定壓力。后續(xù)將增加多個服務器來擴展模型運算服務器,通過多個任務調度層來進行調度,從而分擔運算服務器的壓力,解決海量遙感數(shù)據的存儲問題,提高模型運算效率。
參考文獻:
[1] 蒙繼華,吳炳方,李強子,等.農田農情參數(shù)遙感監(jiān)測進展及應用展望[J].遙感信息,2010(3):122-128.
[2] 唐華俊.農業(yè)遙感研究進展與展望[J].農學學報,2018,8(1):167-171.
[3] 張淮棟,陳爭光,張成龍.基于高分二號-NDVI的大豆遙感估產的時相選擇[J].湖北農業(yè)科學,2018,57(6):103-108.
[4] 陳? 靜.基于MODIS的農作物面積遙感監(jiān)測及應用[J].湖北農業(yè)科學,2015,54(6):1483-1485,1489.
[5] 洪? 波,張? 鋒,李英梅,等.GIS在農業(yè)病蟲害預警研究中的應用[J].陜西農業(yè)科學,2011,57(3):170-173.
[6] BECKER-RESHEF I,CHRIS J,MARK S,et al.Monitoring global croplands with coarse resolution earth observations:The global agriculture monitoring (GLAM) project[J].Remote sensing,2011,
2(6):1589-1609.
[7] 吳炳方.中國農情遙感速報系統(tǒng)[J].遙感學報,2004,8(6):481-497.
[8] 吳小青.基于B/S體系結構軟件開發(fā)技術研究[D].江蘇無錫:江南大學,2008.
[9] 張國防.基于SSH協(xié)議的Linux遠程管理[J].計算機安全,2014(12):37-39.
[10] 何? 良,方? 勇,方? 昉,等.瀏覽器跨域通信安全技術研究[J].信息安全與通信保密,2013(4):59-61.