沈超 曹婷婷 王一萌 闕艷紅 李文雅
摘 要:針對農業(yè)氣象觀測中無法實時監(jiān)測數(shù)據(jù)完整性及人工觀測資料存在誤差的問題,分析了業(yè)務應用的功能需求及應用特點,建立了一套農業(yè)氣象自動化觀測系統(tǒng)國家級平臺移動應用APP軟件,通過React Native框架實現(xiàn)了開發(fā)協(xié)同,提高了開發(fā)效率,實現(xiàn)了農業(yè)氣象自動化觀測人工資料及時上傳、作物長勢自動獲取的目標。
關鍵詞:農業(yè)氣象觀測;React Native;長勢速取
中圖分類號:S163
文獻標識碼:A
DOI:10.19754/j.nyyjs.20190930052
引言
我國是農業(yè)大國,農業(yè)發(fā)展是我國國民經濟發(fā)展的基礎,提高農業(yè)氣象觀測自動化水平對提高農作物產量實現(xiàn)農產品增產增收具有現(xiàn)實意義[1]。
中國氣象局綜合觀測司于2016年下發(fā)的《關于組織開展農業(yè)氣象觀測自動化試點工作的通知》(氣測函〔2016〕46號文),中國氣象局氣象探測中心開展了一系列農業(yè)氣象自動化觀測試點工作,經過2a多的持續(xù)建設,現(xiàn)已實現(xiàn)臺站端全部試點廠家儀器設備的原始觀測數(shù)據(jù)采集、省級中心站針對原始觀測數(shù)據(jù)的作物生長狀況判識、原始觀測數(shù)據(jù)及判識結果按照國家氣象信息中心提供的編碼格式生成農業(yè)氣象觀測XML數(shù)據(jù)上傳至國家級的全流程業(yè)務體系建設。因現(xiàn)有傳輸方式不規(guī)范造成數(shù)據(jù)傳輸鏈路節(jié)點過多,造成數(shù)據(jù)傳輸不及時、上傳信息不對稱等問題,所以,亟需建立一套統(tǒng)一的農業(yè)氣象自動化觀測數(shù)據(jù)收集存儲系統(tǒng),實現(xiàn)原始數(shù)據(jù)來源可追溯、產品數(shù)據(jù)去向可追蹤,及可對所有監(jiān)測站點的作物生長發(fā)育分析統(tǒng)計的平臺顯得至關重要。
通過建立農業(yè)氣象自動化觀測系統(tǒng)國家級平臺,可實時監(jiān)控農業(yè)氣象觀測XML數(shù)據(jù)的傳輸情況、及時掌握作物生長狀況對開展農業(yè)氣象科學研究及作物產量評估提供數(shù)據(jù)支撐。
1?總體設計
農業(yè)氣象自動化觀測系統(tǒng)國家級平臺移動終端APP是一套實時監(jiān)控農業(yè)氣象觀測XML數(shù)據(jù)傳輸情況、獲取作物長勢情況及查詢作物發(fā)育期信息的輔助性手機端應用工具。具有安卓和IOS兩個版本,能夠滿足不同用戶需求。主要功能包括監(jiān)控預警、判識資料上傳、長勢速取、信息檢索等。采用跨平臺的基于React Native框架進行系統(tǒng)架構設計開發(fā)[2]。平臺通過數(shù)據(jù)資源服務器獲取觀測資料,經解析、處理、分析、質控等操作后,存儲至中心數(shù)據(jù)庫,并按照需求進行分發(fā)上傳。結合農作物發(fā)育期監(jiān)測的需求,移動終端APP提供資料上傳、長勢提取、信息查詢、產品生成以及站點預警監(jiān)控等功能,能夠實現(xiàn)自動將站點設備異常情況推送至手機端特定用戶,系統(tǒng)在設計過程中考慮未來二次開發(fā)需求,在滿足現(xiàn)有業(yè)務需求的同時,預留接口,滿足未來業(yè)務功能擴展及升級需求。
1.1?系統(tǒng)網絡結構
系統(tǒng)采用分布式部署方式,根據(jù)需求將原始數(shù)據(jù)處理軟件、數(shù)據(jù)庫及Web后臺軟件部署在不同服務器中。
數(shù)據(jù)中心主要指按照國家氣象信息中心提供的編碼格式生成的農業(yè)氣象觀測XML數(shù)據(jù),經解碼入庫后供用戶調用。農業(yè)氣象自動化觀測系統(tǒng)國家級平臺移動終端主要調取數(shù)據(jù)包括設備上傳的設備狀態(tài)、作物圖片及作物發(fā)育期數(shù)據(jù)。
數(shù)據(jù)獲取主要指數(shù)據(jù)處理軟件獲取設備狀態(tài)、作物圖像及長勢信息并存儲在數(shù)據(jù)庫中。
數(shù)據(jù)庫服務器主要保存從數(shù)據(jù)中心獲取的所有數(shù)據(jù)信息。
APP后臺軟件主要完成根據(jù)用戶發(fā)送的查詢條件,查詢數(shù)據(jù)庫獲取數(shù)據(jù)信息并返回給手機APP應用軟件;并將手機端用戶上傳的作物發(fā)育期資料保存到數(shù)據(jù)庫中。
用戶端是用戶通過使用安裝有APP的智能手機,對設備狀態(tài)、預警信息、作物長勢等信息進行查詢,或將人工監(jiān)測數(shù)據(jù)與拍攝的圖像上傳。
1.2?安全機制
1.2.1?服務器管理機制
對服務器建立域用戶,授權用戶方可進入。由管理員來管理服務器的操作系統(tǒng)與應用系統(tǒng),保證系統(tǒng)與數(shù)據(jù)的安全。
1.2.2?網絡防火墻
防止Internet上的攻擊,保護各服務器不受來自外部的攻擊;防止內部非授權戶從內部其他網端對服務器的攻擊,保護服務器不受來自內部的進攻。保證服務器與整個網絡的安全。
1.2.3?嚴格的權限設置
對于登錄本系統(tǒng)的用戶,必須經過系統(tǒng)用戶驗證與密碼驗證,確認為本系統(tǒng)用戶后,方可進入系統(tǒng)。用戶角色分為國家級普通用戶、系統(tǒng)管理員、省級普通用戶、一般用戶,根據(jù)不同用戶有不同的操作權限與操作內容,以保證系統(tǒng)的安全性。
1.3?技術架構
根據(jù)平臺的業(yè)務邏輯,系統(tǒng)總體自上而下分為應用層、服務層和資源層3個層次。
1.3.1?應用層
應用層即為表現(xiàn)層,通過APP界面,用戶可登錄系統(tǒng),系統(tǒng)依據(jù)用戶權限為用戶提供查詢、分析、預警等功能。通過調用服務層接口為用戶提供相應的應用服務。
1.3.2?服務層
服務層是應用層與資源層之間的媒介,由中間應用組件、服務進程等構成,為資源層和應用層提供通信、目錄、權限、復制、檢索、服務定制管理和數(shù)據(jù)傳輸?shù)确?。該層次通過對內部數(shù)據(jù)信息的調用,構建各個應用,提供客戶端數(shù)據(jù)和服務接口,客戶端應用最終都轉換為對這些接口的調用,并形成面對最終用戶的界面。
1.3.3?資源層
資源層與服務層共同構成支撐應用層正常運行的環(huán)境。資源層通過成熟的中間件、數(shù)據(jù)庫技術和技術架構,對數(shù)據(jù)資源進行收集、處理、存儲及管理。
1.4?React Native框架
React Native是目前主流的移動端跨平臺框架,可滿足在Android 和 IOS平臺下的移動應用開發(fā)工作[3]。其優(yōu)點如下。
1.4.1?熱更新
對于IOS開發(fā)者來說,審核周期至少1周,每開發(fā)迭代一個版本時都必須通過IOS的審核機制進行審核,若采用熱更新的方式,可繞過審核機制。因此,React Native框架所具有的熱更新能力是顯而易見的。React Native的熱更新功能,主要是通過更新Bundle文件來實現(xiàn)。對于一個手機端應用來說,Bundle文件即為要加載的前端內容。只需更新Bundle文件,即為更新了整個APP,因此只需做一個后臺服務,其具有上傳下載Bundle文件的能力。然后在客戶端每次打開的時候向服務端發(fā)送請求,看是否有最新的Bundle文件,并進行下載替換即可。
1.4.2?代碼復用率高
目前開發(fā)人員的成本是越來越高,因此代碼的可復用率關系著企業(yè)的開發(fā)成本,同時代碼平臺的無關性也深受每個前端開發(fā)人員的歡迎。而React Native的Android版本和IOS版本的代碼可80%以上共用,大大節(jié)約了開發(fā)時間和開發(fā)成本,因此,React Native框架成為主流開發(fā)框架是必然的。
1.4.3?開發(fā)效率高,漏洞修復快
由于React Native具有代碼復用率高和熱更新的優(yōu)勢,所以其開發(fā)效率也較高。另外,React Native框架使用的開發(fā)方式不同,無需每次修改都要通過編譯安裝查看效果,且通過采用模塊化的開發(fā)方式,大大提升了開發(fā)效率。并且可實時更新Bundle文件,達到每次啟動APP應用均可以使用最新版本,實現(xiàn)可快速修復漏洞的目的[4]。
2?功能設計及實現(xiàn)
農業(yè)氣象自動化觀測系統(tǒng)國家級平臺移動終端APP主要針對全國作物長勢情況及站點設備運行情況進行監(jiān)控分析,同時滿足資料上傳、作物長勢速取等服務。主要實現(xiàn)對設備及數(shù)據(jù)的狀態(tài)監(jiān)控、數(shù)據(jù)與設備異常監(jiān)控及預警、人工觀測數(shù)據(jù)上傳、作物長勢提取以及作物發(fā)育情況產品生成等功能。具體功能結構如圖2所示。
2.1?用戶管理
用戶通過農業(yè)氣象手機應用APP登錄農業(yè)氣象自動化觀測國家級平臺,首頁主要完成將用戶權限下所有站點展示在地圖中,并顯示系統(tǒng)的各個功能。通過個人中心可以對用戶基本信息及密碼進行修改,當進行密碼修改時輸入舊密碼與2次新密碼,確認修改后調用后臺接口保存新密碼至數(shù)據(jù)庫。系統(tǒng)首頁如圖3所示。
2.2?運行監(jiān)控
運行監(jiān)控主要實現(xiàn)以列表形式展示農業(yè)氣象觀測XML數(shù)據(jù)傳輸情況,設備狀態(tài)情況,數(shù)據(jù)狀態(tài)情況,文件完整度情況。如圖4所示。
2.3?故障監(jiān)控
故障監(jiān)控是以列表的形式實時展示各個站點的到報情況及數(shù)據(jù)質量情況。包含數(shù)據(jù)傳輸,設備狀態(tài)、數(shù)據(jù)質量3類信息。
數(shù)據(jù)傳輸情況是實時展示所有站點近24h數(shù)據(jù)到報情況及到報率。點擊查看詳情,可展示缺報的時刻點。
設備狀態(tài)異常展示當天所有站點的設備傳感器狀態(tài)異常情況。包括站點編號,站點名稱,故障要素、故障情況等。原則上一個異常信息一條記錄。
數(shù)據(jù)質量異常展示當天某站點的農業(yè)氣象觀測XML數(shù)據(jù)不完整或格式不符合要求。包括站點編號,站點名稱,監(jiān)控時間,異常情況等。
2.4?預警提示
預警提示是指系統(tǒng)檢測到站點發(fā)生數(shù)據(jù)傳輸故障、觀測設備故障、通訊鏈路中斷或數(shù)據(jù)質量異常等情況后,通過APP后臺軟件推送及手機短信提醒的方式向用戶推送故障信息。用戶進入預警提示界面后可查看用戶權限下所有異常站點的名稱、預警觀測時間及報警內容等預警提示信息,且點擊“標為已讀”可將提示信息標記為已讀存儲在數(shù)據(jù)庫中。
2.5?資料上傳
資料上傳主要實現(xiàn)手機端收集作物發(fā)育期資料的功能。用戶通過手機應用APP可上傳實時拍攝的作物圖片或讀取手機相冊中圖片,同時添加該作物發(fā)育期具體描述信息,包括監(jiān)測時間、發(fā)育期、持續(xù)天數(shù)、詳細描述等,點擊上傳調用APP后臺軟件接口將資料上傳至中心服務器。如圖7所示。
2.6?產品生成
產品生成主要完成各站點作物長勢數(shù)據(jù)各年份及各發(fā)育期的統(tǒng)計分析查詢。按年份查詢時,查找過去歷史年份中的每個發(fā)育期的站點作物長勢數(shù)據(jù)(發(fā)育期各階段起止時間、持續(xù)天數(shù)、平均高度、平均密度、平均蓋度)信息、站名、站號、所屬省份、觀測年份、作物名稱等,可展示近3a、近5a、近10a或自定義時間范圍的統(tǒng)計分析結果。
按發(fā)育期查詢時,查找時間范圍內(年份選擇)的各個發(fā)育期的站點作物長勢數(shù)據(jù)(發(fā)育期各階段起止時間、持續(xù)天數(shù),平均高度,平均密度,平均蓋度)信息、站名、站號、所屬省份、觀測年份、作物名稱等。
2.7?信息查詢
信息查詢主要完成數(shù)據(jù)信息、故障信息、作物生長圖片及發(fā)育期信息的查詢。
數(shù)據(jù)查詢主要根據(jù)用戶選擇的作物名稱、發(fā)育階段及時間范圍等查詢條件,手機APP將查詢命令發(fā)送至后臺軟件,后臺軟件通過查詢數(shù)據(jù)庫將滿足條件的站點作物長勢數(shù)據(jù)(發(fā)育期各階段時間、高度、蓋度、密度)信息,包括省份、站點編號、站點名稱、監(jiān)測時間、發(fā)育期名稱、天數(shù)、開始時間、持續(xù)天數(shù)、高度、密度、蓋度等數(shù)據(jù)返回給手機端。 如圖9所示。
故障查詢主要以列表形式展示滿足查詢條件的用戶權限下各個故障站點的數(shù)據(jù)傳輸、設備狀態(tài)或數(shù)據(jù)質量等異常信息。
圖片查詢主要以列表方式展示滿足查詢條件的某時間段內的某站點圖片長勢信息,包括臺站級用戶上傳的站點圖片長勢信息。包含圖片及對應判識信息。以縮略圖排列方式展示。點擊縮略圖展示原始圖片及相應生長特征信息。
2.8?長勢提取
長勢速取主要完成通過識別圖片直接獲取作物生長發(fā)育期信息的功能。用戶通過手機APP實時拍攝作物圖片或選取手機相冊中圖片,點擊上傳,國家級平臺判識軟件經判識后確認拍攝作物,相關判識信息以彈窗形式返回至移動終端,如果用戶需查看識別后的作物發(fā)育期詳細信息,則點擊識別結果進行查看。
3?結論
綜上所述,本文通過農業(yè)氣象自動化觀測國家級平臺的建設需求,深入分析探討了移動終端APP的設計思想,并通過使用React Native框架實現(xiàn)代碼的可復用,提高了開發(fā)效率。并根據(jù)功能需求,完成了一套可實現(xiàn)實時監(jiān)控原始數(shù)據(jù)傳輸情況、作物長勢情況及作物發(fā)育期信息的手機端應用軟件,提高了農業(yè)氣象觀測效率,提升了氣象觀測易用性水平,推動了農業(yè)氣象觀測智能化進程。
參考文獻
[1] 于濤.新時期地面氣象觀測對農業(yè)生產的意義及完善措施[J].現(xiàn)代農業(yè)科技,2019(9):178-180.
[2]瞿文政,許志明,王嘉茵,等.一種基于React Native框架的換宿系統(tǒng)實現(xiàn)方法[J].計算機技術與發(fā)展,2019(29):211-215.
[3]嚴新巧.基于移動開發(fā)現(xiàn)狀探討React Native[J].電腦知識與技術,2016(11):76-82.
[4]焦鋒.React Native在APP開發(fā)中的應用研究[J].數(shù)學技術與應用,2017(7):109.