趙蕓 黃丙湖 呂瑞



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