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