馬 鋒,韓姍姍,萬 慧,賀亞雄,劉 敏
(榆林市氣象局,陜西榆林 719000)
榆林耕地資源豐富,北部為風(fēng)沙草灘區(qū),南部為丘陵溝壑區(qū),旱地多,水地少,土壤瘠薄,生態(tài)脆弱,災(zāi)害頻繁。近年來,隨著現(xiàn)代農(nóng)業(yè)示范園區(qū)的不斷壯大,農(nóng)業(yè)科技支撐能力不斷增強(qiáng),產(chǎn)業(yè)化程度不斷提高,農(nóng)業(yè)綜合生產(chǎn)能力顯著增強(qiáng),糧食生產(chǎn)實(shí)現(xiàn)了“十二連豐”,農(nóng)民人均收入快速提升,榆林農(nóng)業(yè)的地位進(jìn)一步提高。同時(shí),農(nóng)業(yè)對氣象服務(wù)需求發(fā)生了很大變化,現(xiàn)行的農(nóng)業(yè)氣象工作的內(nèi)容、方法、途徑已適應(yīng)不了新形勢的要求[1]。隨著現(xiàn)代農(nóng)業(yè)園區(qū)的建設(shè)和發(fā)展,現(xiàn)代化農(nóng)、林、牧多種類型生產(chǎn)方式和經(jīng)營模式,都需要將精細(xì)化的氣象信息與不同種植品種作物的生長發(fā)育指標(biāo)、病蟲害發(fā)生閾值、氣象致災(zāi)閾值等有機(jī)融合的氣象服務(wù)。建設(shè)智能化、精細(xì)化的農(nóng)業(yè)氣象服務(wù)系統(tǒng),以實(shí)現(xiàn)監(jiān)測自動(dòng)化、預(yù)報(bào)精細(xì)化、評估定量化、服務(wù)系列化、傳輸網(wǎng)絡(luò)化和人員專業(yè)化等為核心,推進(jìn)基于‘互聯(lián)網(wǎng)+’的智慧農(nóng)業(yè)氣象服務(wù),滿足現(xiàn)代農(nóng)業(yè)生產(chǎn)對氣象服務(wù)的需求。
榆林現(xiàn)代農(nóng)業(yè)精細(xì)化服務(wù)平臺基于現(xiàn)代農(nóng)業(yè)園區(qū)展示系統(tǒng),加入作物生長發(fā)育氣象服務(wù)指標(biāo)、病蟲害研究等成果,接入了各類氣象監(jiān)測數(shù)據(jù)、格點(diǎn)預(yù)報(bào)產(chǎn)品,實(shí)現(xiàn)農(nóng)業(yè)氣象服務(wù)產(chǎn)品一體化制作發(fā)布。通過預(yù)設(shè)策略,實(shí)現(xiàn)電子郵件、FTP服務(wù)等多渠道的“一鍵式”發(fā)布。用戶可通過榆林農(nóng)業(yè)氣象APP實(shí)時(shí)獲取所需的監(jiān)測、預(yù)報(bào)等信息。可實(shí)時(shí)上傳農(nóng)情、災(zāi)情信息,與在線專家實(shí)時(shí)互動(dòng)交流,解決農(nóng)業(yè)生產(chǎn)中遇到的技術(shù)問題。平臺設(shè)計(jì)市縣一體化分級管理,對不同用戶設(shè)置不同權(quán)限,功能模塊可靈活設(shè)置,不同級別用戶可操作不同的模塊,同時(shí)對部分模塊的維護(hù)采取開放式設(shè)置,方便氣象監(jiān)測站點(diǎn)、農(nóng)業(yè)園區(qū)的刪除、增加以及氣象服務(wù)要點(diǎn)、服務(wù)指標(biāo)的修改完善。平臺基于地理信息、實(shí)時(shí)氣象數(shù)據(jù)、網(wǎng)格預(yù)報(bào)產(chǎn)品、農(nóng)業(yè)氣象指標(biāo)等多源數(shù)據(jù)開展建設(shè),通過平臺建設(shè)進(jìn)一步提升了氣象服務(wù)現(xiàn)代農(nóng)業(yè)在數(shù)據(jù)環(huán)境、技術(shù)手段等方面的科技支撐,為新型農(nóng)業(yè)經(jīng)營主體提供直通式、精準(zhǔn)化氣象服務(wù)。
平臺基于B/S結(jié)構(gòu),采用JAVA語言實(shí)現(xiàn),總體分為四層,如圖1所示。基礎(chǔ)層為整個(gè)系統(tǒng)提供運(yùn)行所需的網(wǎng)絡(luò)通信、虛擬服務(wù)器、操作系統(tǒng)、軟件開發(fā)平臺等基礎(chǔ)支撐。數(shù)據(jù)層主要由CIMISS業(yè)務(wù)數(shù)據(jù)庫、本地SQLServer數(shù)據(jù)庫、緩存數(shù)據(jù)庫組成,提供各類數(shù)據(jù)的統(tǒng)一存儲、管理、服務(wù)和交換[2]。CIMISS提供氣象觀測數(shù)據(jù),本地SQLServer數(shù)據(jù)庫主要用來存儲氣象觀測數(shù)據(jù)、預(yù)報(bào)產(chǎn)品數(shù)據(jù)、農(nóng)業(yè)業(yè)務(wù)數(shù)據(jù)以及系統(tǒng)運(yùn)維數(shù)據(jù);緩存數(shù)據(jù)庫主要實(shí)現(xiàn)監(jiān)測數(shù)據(jù)的統(tǒng)計(jì)查詢結(jié)果緩存,加快查詢速度,方便用戶端快速顯示。通過多源基礎(chǔ)業(yè)務(wù)數(shù)據(jù)庫的搭建,服務(wù)層以數(shù)據(jù)層為基礎(chǔ),通過對各類氣象數(shù)據(jù)、預(yù)報(bào)數(shù)據(jù)的加工處理,進(jìn)行可視化展示,并對不同需求不同級別的用戶進(jìn)行精準(zhǔn)化服務(wù)。界面層通過WEB網(wǎng)站和手機(jī)APP兩種方式為用戶提供交互式界面。
圖1 榆林現(xiàn)代農(nóng)業(yè)精細(xì)化服務(wù)平臺架構(gòu)圖
平臺設(shè)置農(nóng)業(yè)園區(qū)、格點(diǎn)預(yù)報(bào)、氣象數(shù)據(jù)、農(nóng)業(yè)服務(wù)、特色服務(wù)、產(chǎn)品制作發(fā)布等模塊(圖2)。通過將國家站、區(qū)域站、農(nóng)業(yè)站、衛(wèi)星云圖、新一代天氣雷達(dá)等各類監(jiān)測數(shù)據(jù),溫度、濕度、降水等格點(diǎn)預(yù)報(bào)產(chǎn)品以及農(nóng)業(yè)氣象服務(wù)要點(diǎn)、生育期、農(nóng)業(yè)服務(wù)指標(biāo)等數(shù)據(jù)進(jìn)行融合處理,形成監(jiān)測服務(wù)一體化平臺,實(shí)現(xiàn)精準(zhǔn)化、智能化的現(xiàn)代農(nóng)業(yè)氣象服務(wù)與產(chǎn)品輸出。通過WEB系統(tǒng)和榆林農(nóng)業(yè)氣象APP為廣大用戶提供氣象監(jiān)測信息、預(yù)報(bào)預(yù)警信息、專業(yè)服務(wù)產(chǎn)品。
圖2 榆林現(xiàn)代農(nóng)業(yè)精細(xì)化服務(wù)平臺功能模塊布局圖
以實(shí)時(shí)在線地圖為地理信息系統(tǒng)載體,建立榆林現(xiàn)代農(nóng)業(yè)園區(qū)展示系統(tǒng)。根據(jù)每個(gè)園區(qū)的所在位置,在地理信息系統(tǒng)中對榆林市45個(gè)省級現(xiàn)代農(nóng)業(yè)園區(qū)進(jìn)行標(biāo)識繪制,錄入每個(gè)園區(qū)的名稱、所在地、管理單位、聯(lián)系人、聯(lián)系電話等基本資料。實(shí)時(shí)顯示榆林市已建成的區(qū)域站或農(nóng)業(yè)小氣候站監(jiān)測信息,根據(jù)園區(qū)的所在位置可對附近站點(diǎn)的氣溫、濕度、風(fēng)向風(fēng)速、降水和未來預(yù)報(bào)信息實(shí)時(shí)查詢,掌握氣象要素和天氣變化情況。
利用陜西省秦智系統(tǒng)3 km×3 km氣溫、濕度、降水、風(fēng)向、風(fēng)速等網(wǎng)格預(yù)報(bào)產(chǎn)品結(jié)果為現(xiàn)代農(nóng)業(yè)園區(qū)提供精細(xì)化服務(wù)。系統(tǒng)采用反距離權(quán)重插值、克里金插值等生成要素等值面,格點(diǎn)要素圖形產(chǎn)品與榆林行政地圖疊加分析、裁剪生成氣象預(yù)報(bào)產(chǎn)品等專業(yè)格點(diǎn)數(shù)據(jù)處理技術(shù)和圖形處理技術(shù),根據(jù)不同參數(shù),從陜西省氣象局FTP服務(wù)器中根據(jù)查詢條件獲取格點(diǎn)預(yù)報(bào)產(chǎn)品數(shù)據(jù),通過自動(dòng)化調(diào)用、處理、加工,生成等值線、等值面、格點(diǎn)值為主的可視化產(chǎn)品,最終實(shí)現(xiàn)網(wǎng)格預(yù)報(bào)產(chǎn)品在地理信息系統(tǒng)中顯示與輸出。用戶可選擇1、3、6、12、24 h時(shí)間間隔,選取填色、等值線、格點(diǎn)值等方式獲取所選要素的預(yù)報(bào)結(jié)果,也可對任意位置的天氣狀況、溫度、濕度、風(fēng)速、降水量、能見度等未來一周預(yù)報(bào)信息通過綜合圖進(jìn)行直觀顯示。
定時(shí)從陜西省綜合氣象信息共享平臺(China integrated meteorological information service system,簡稱CIMISS)中調(diào)取榆林市各縣區(qū)國家站、區(qū)域站的整點(diǎn)和逐日觀測數(shù)據(jù),進(jìn)行本地存儲和管理,通過逐日數(shù)據(jù)計(jì)算形成旬?dāng)?shù)據(jù)、月數(shù)據(jù)等基礎(chǔ)數(shù)據(jù)。采集華云和無錫廠商不同型號的農(nóng)業(yè)小氣候站觀測數(shù)據(jù)入庫,通過數(shù)據(jù)整理融合,形成格式統(tǒng)一的數(shù)據(jù)資料。實(shí)時(shí)顯示不同園區(qū)氣象監(jiān)測數(shù)據(jù),提供棚內(nèi)外溫度、濕度、光和輻射、CO2、土壤溫度、土壤濕度等資料的對比分析。平臺提供的數(shù)據(jù)服務(wù)同時(shí)接入市縣氣象局發(fā)布的預(yù)警信號實(shí)時(shí)顯示,并提供紅外、三維衛(wèi)星云圖產(chǎn)品和反射率、組合反射率等多種雷達(dá)產(chǎn)品以及各站點(diǎn)歷史數(shù)據(jù)統(tǒng)計(jì)查詢等。
農(nóng)業(yè)服務(wù)包括逐月氣象服務(wù)、生育期服務(wù)、指標(biāo)庫設(shè)置、實(shí)時(shí)農(nóng)情幾個(gè)模塊。逐月氣象服務(wù)模塊包括各月基本氣象條件、不利氣象條件、月內(nèi)服務(wù)重點(diǎn)、物候期、易發(fā)氣象災(zāi)害、主要農(nóng)事活動(dòng)、災(zāi)害防御指南等,用戶可查閱當(dāng)月氣候、災(zāi)害、農(nóng)事、服務(wù)等內(nèi)容。對本地大宗作物玉米、馬鈴薯和特色經(jīng)濟(jì)作物紅棗等根據(jù)生長發(fā)育時(shí)間設(shè)置生育期時(shí)段。通過農(nóng)情資料、氣象資料的分析研究,形成包含溫濕度、降雨等氣象因子的氣象服務(wù)指標(biāo)。根據(jù)格點(diǎn)預(yù)報(bào)結(jié)果和作物當(dāng)前生育期,自動(dòng)對比氣象服務(wù)指標(biāo),實(shí)現(xiàn)作物生長發(fā)育適宜性判別及服務(wù)提示。實(shí)時(shí)農(nóng)情模塊,可查詢境內(nèi)園區(qū)設(shè)施農(nóng)業(yè)、大田作物等生長發(fā)育情況,為農(nóng)業(yè)氣象服務(wù)提供第一手資料。
特色服務(wù)包括專家在線、病蟲害防治、農(nóng)業(yè)新聞、種植技術(shù)、農(nóng)業(yè)氣象科普幾個(gè)模塊。專家在線模塊建立本地大宗作物玉米、馬鈴薯、小雜糧以及設(shè)施農(nóng)業(yè)等種植領(lǐng)域的權(quán)威農(nóng)業(yè)專家?guī)?,可?shí)現(xiàn)對農(nóng)業(yè)種植戶提出的種植技術(shù)、管理措施、病蟲害防治等相關(guān)問題進(jìn)行解答。手機(jī)用戶可通過榆林農(nóng)業(yè)氣象APP與在線氣象、農(nóng)業(yè)專家實(shí)時(shí)互動(dòng)交流,解決農(nóng)業(yè)生產(chǎn)中遇到的問題。病蟲害防治模塊,通過對玉米、馬鈴薯、紅棗等氣象服務(wù)指標(biāo)與病蟲害相關(guān)性研究,形成各類病害、蟲害的危害癥狀、發(fā)病規(guī)律、發(fā)病氣象因子及防治辦法等病蟲害知識庫。農(nóng)業(yè)新聞、種植技術(shù)模塊不定期發(fā)布當(dāng)前最新農(nóng)業(yè)政策、糧食安全動(dòng)態(tài)、作物生長發(fā)育等相關(guān)農(nóng)業(yè)技術(shù)[3]。農(nóng)業(yè)氣象科普模塊面向廣大社會公眾宣傳氣象常識、氣象災(zāi)害、天氣成因、氣候與氣候變化、氣象與生產(chǎn)生活、人工影響天氣、雷電防護(hù)等氣象知識。通過flash、視頻、圖片、文字內(nèi)容等形式,針對民眾關(guān)注的熱點(diǎn)天氣、氣象災(zāi)害的成因、影響、危害和科學(xué)防御進(jìn)行科普,讓廣大農(nóng)業(yè)生產(chǎn)者、經(jīng)營者從不同角度了解氣象科普內(nèi)容,提升農(nóng)業(yè)防災(zāi)抗災(zāi)能力。
建立包括市縣農(nóng)業(yè)管理部門、農(nóng)業(yè)園區(qū)、廣大種植戶為對象的用戶服務(wù)庫。開展農(nóng)業(yè)氣象情報(bào)、農(nóng)業(yè)災(zāi)害預(yù)警、農(nóng)業(yè)氣象預(yù)報(bào)、農(nóng)業(yè)氣象專報(bào)、氣候評價(jià)等服務(wù)產(chǎn)品制作。自動(dòng)判識作物所處的生長發(fā)育期,根據(jù)天氣情況、影響分析、專家建議等個(gè)性化信息,利用錄入的各類產(chǎn)品模板,形成相應(yīng)的服務(wù)產(chǎn)品,通過預(yù)設(shè)策略,實(shí)現(xiàn)電子郵件、FTP服務(wù)、傳真、手機(jī)APP等不同渠道的“一鍵式”發(fā)布。同時(shí)根據(jù)園區(qū)特點(diǎn)嘗試開展農(nóng)作物播種、收獲期預(yù)報(bào),土壤水分預(yù)報(bào),灌溉期、灌溉量等田間活動(dòng)適宜期預(yù)報(bào)以及病蟲害、旱澇趨勢等自然災(zāi)害預(yù)報(bào)。
平臺同步建設(shè)Android版榆林農(nóng)業(yè)氣象客戶端。用戶可通過手機(jī)客戶端實(shí)時(shí)掌握所在區(qū)域的氣象實(shí)況信息、天氣預(yù)報(bào)信息、氣象預(yù)警信息、氣象服務(wù)產(chǎn)品。后臺系統(tǒng)對災(zāi)害發(fā)生區(qū)域的用戶可主動(dòng)推送預(yù)報(bào)、預(yù)警信息,在手機(jī)服務(wù)端實(shí)時(shí)報(bào)警顯示。手機(jī)用戶可實(shí)時(shí)上傳基于文字、圖像、視頻等多種類別的農(nóng)情、災(zāi)情、病蟲害信息,與在線氣象、農(nóng)業(yè)專家實(shí)時(shí)互動(dòng)交流。
系統(tǒng)采用B/S架構(gòu)進(jìn)行設(shè)計(jì),基于J2EE(JAVA 2 Platform,Enterprise Edition)架構(gòu)體系進(jìn)行業(yè)務(wù)和數(shù)據(jù)資源的整合及集成,構(gòu)建一套成熟的、靈活的、高效的系統(tǒng)。業(yè)務(wù)處理部分,采用MVC(Model-View-Controller)三層框架進(jìn)行研發(fā),方便系統(tǒng)后期功能擴(kuò)展及升級。
氣象數(shù)據(jù)統(tǒng)一服務(wù)接口(meteorological unified service interface community,簡稱“MUSIC”)是基于國家級-省級統(tǒng)一的CIMISS數(shù)據(jù)環(huán)境,面向氣象業(yè)務(wù)和科研,提供了統(tǒng)一、標(biāo)準(zhǔn)、豐富、具有多種調(diào)用形式的數(shù)據(jù)訪問服務(wù)和應(yīng)用編程接口,為各級應(yīng)用系統(tǒng)提供直接支撐的數(shù)據(jù)接入服務(wù)[4]。目前,MUSIC提供了多協(xié)議、跨平臺、多語言的服務(wù)方式,系統(tǒng)采用MUSIC的C#客戶端和REST服務(wù)調(diào)用數(shù)據(jù),屏蔽了底層業(yè)務(wù)庫變更帶來的影響,使功能模塊的移植更加方便,標(biāo)準(zhǔn)化程度更高。本系統(tǒng)通過MUSIC接口調(diào)取數(shù)據(jù),進(jìn)行本地化存儲、管理、加工,為用戶提供氣象數(shù)據(jù)服務(wù)。
榆林農(nóng)業(yè)氣象Android客戶端通過Tinker熱更新、Glide圖片加載庫、MPAndroidChart框架等技術(shù)實(shí)現(xiàn)與WEB系統(tǒng)的同步服務(wù)。
4.3.1 Tinker熱更新 Tinker是Android軟件開發(fā)熱補(bǔ)丁的一種解決方案,支持動(dòng)態(tài)下發(fā)布代碼、So 庫以及資源,讓APP能夠在不需要重新安裝的情況下實(shí)現(xiàn)更新。榆林農(nóng)業(yè)氣象APP通過Tinker 平臺提供的熱更新服務(wù),可以隨時(shí)下發(fā)補(bǔ)丁包,實(shí)時(shí)高效修復(fù)程序BUG,實(shí)時(shí)更新已發(fā)布版本的APP。更新后用戶不需要下載新的應(yīng)用,減少了用戶下載安裝成本。
熱更新實(shí)現(xiàn)部分代碼:
provided("com.tencent.tinker:tinker-android-anno:1.7.9")
compile("com.tinkerpatch.sdk:tinkerpatch-android-sdk:1.1.6")
apply from: ’tinkerpatch.gradle’
android {
defaultConfig {
buildConfigField "boolean", "TINKER_ENABLE",
"${tinkerpatchSupport.tinkerEnable}"
}
}
4.4.2 Glide圖片加載庫 Glide是一個(gè)快速高效的Android主流圖片加載庫。Glide提供了易用的API、高性能、可擴(kuò)展的圖片解碼管道以及自動(dòng)的資源池技術(shù),支持拉取、解碼和展示視頻快照、圖片和GIF動(dòng)畫。系統(tǒng)采用Glide圖片加載庫技術(shù),使圖片不會失真,并且減少內(nèi)存資源占用,支持多種圖片格式顯示,從而達(dá)到平滑的圖片列表滾動(dòng)效果。
4.4.3 MPAndroidChart框架 MPAndroidChart是一個(gè)基于Android強(qiáng)大且容易使用的圖表庫,支持線狀圖、柱狀圖、散點(diǎn)圖、燭狀圖、氣泡圖、餅狀圖和蜘蛛網(wǎng)狀圖,支持縮放、拖動(dòng)(平移)、選擇和動(dòng)畫。系統(tǒng)采用MPAndroidChart第三方插件,使氣象數(shù)據(jù)在圖表上快速的展示,更加形象、靈活。
針對榆林現(xiàn)代農(nóng)業(yè)發(fā)展迅猛,農(nóng)業(yè)種植品種多、布局分散、規(guī)模化程度相對低等特點(diǎn),開展研究與建設(shè)榆林現(xiàn)代農(nóng)業(yè)氣象服務(wù)平臺。該平臺由多個(gè)子系統(tǒng)組成,以地理信息系統(tǒng)、監(jiān)測預(yù)報(bào)數(shù)據(jù)綜合處理為核心,形成集監(jiān)測、服務(wù)于一體的智能化現(xiàn)代農(nóng)業(yè)氣象服務(wù)系統(tǒng)。通過對氣象數(shù)據(jù)進(jìn)行快速傳輸與管理,實(shí)現(xiàn)氣象分析與災(zāi)害預(yù)警[5],為榆林現(xiàn)代農(nóng)業(yè)生產(chǎn)提供保障服務(wù)。平臺自2017年投入試運(yùn)行以來,為當(dāng)?shù)噩F(xiàn)代農(nóng)業(yè)生產(chǎn)和新型農(nóng)業(yè)經(jīng)營主體提供了更為直通式、精準(zhǔn)化的氣象服務(wù),收效良好,平臺的建設(shè)對推動(dòng)榆林智慧農(nóng)業(yè)氣象工作具有積極意義。后期,將根據(jù)運(yùn)行情況對平臺功能進(jìn)一步優(yōu)化完善,全面提高平臺的可用性和受眾面。