趙國發(fā),劉 卉,肖 敬,陳競平,孟志軍
(1.首都師范大學(xué) 信息工程學(xué)院,北京 100048;2.國家農(nóng)業(yè)智能裝備工程技術(shù)研究中心,北京 100097)
農(nóng)機深松整地作業(yè)是在不打亂土壤層結(jié)構(gòu)的前提下,打破犁底層、增加土壤的透水性和透氣性、改善農(nóng)作物根系生長條件從而達到增產(chǎn)增收的一項重要舉措。針對深松整地作業(yè)的監(jiān)管需求,國家農(nóng)業(yè)智能裝備工程技術(shù)研究中心研制了農(nóng)機深松作業(yè)監(jiān)管服務(wù)系統(tǒng),有效地保障了作業(yè)數(shù)據(jù)的完整性、實時性和有效性,極大地降低了人工抽檢強度,加強了監(jiān)管力度。
農(nóng)機深松作業(yè)監(jiān)管服務(wù)系統(tǒng)獲取了海量農(nóng)機運動軌跡數(shù)據(jù)。目前,國內(nèi)外針對軌跡數(shù)據(jù)的挖掘研究主要集中在道路路網(wǎng)提取更新[1-3]、用戶出行分析[4]、商圈熱區(qū)推薦[5]及城市交通擁堵識別[6-7]等方面,針對農(nóng)機運動軌跡數(shù)據(jù)的研究分析較少。
本文針對海量的農(nóng)機軌跡數(shù)據(jù),運用Spark分布式集群技術(shù)[8],從運營時間、作業(yè)時間、時間利用率及班次利用率等多方面對農(nóng)機運營效率進行評估,有助于測算和客觀評價農(nóng)機運營效率,進一步提升平臺服務(wù)應(yīng)用價值,為農(nóng)機智能管理與科學(xué)調(diào)度研究提供數(shù)據(jù)支持。
基于物聯(lián)網(wǎng)技術(shù)思想開發(fā)的農(nóng)機深松作業(yè)監(jiān)管服務(wù)系統(tǒng),設(shè)計為4層架構(gòu):①感知層為安裝在農(nóng)機上的車載智能終端設(shè)備,用來獲取農(nóng)機作業(yè)狀態(tài)數(shù)據(jù)[9];②網(wǎng)絡(luò)層主要包括安裝在終端上的通用分組無線服務(wù)網(wǎng)絡(luò)(GPRS)和移動3G網(wǎng)絡(luò),通過Internet公網(wǎng)上傳采集到的作業(yè)軌跡數(shù)據(jù);③支撐層主要由中心服務(wù)器、應(yīng)用服務(wù)器、數(shù)據(jù)服務(wù)器、數(shù)據(jù)庫管理系統(tǒng)、基礎(chǔ)地理信息管理軟件和安全監(jiān)控設(shè)備等組成;④應(yīng)用層是基于Web瀏覽器的農(nóng)機深松監(jiān)管與服務(wù)軟件系統(tǒng),協(xié)助監(jiān)管部門對深松作業(yè)進行綜合管理與數(shù)據(jù)分析。農(nóng)機深松作業(yè)監(jiān)管系統(tǒng)感知層的車載智能終端設(shè)備集成了GNSS定位模塊、GPRS數(shù)傳模塊及作業(yè)參數(shù)傳感器等,通過解析GNSS模塊的NMEA-0183語句及傳感器輸出語句,獲取農(nóng)機作業(yè)時間、經(jīng)度、緯度、速度及作業(yè)深度等時空數(shù)據(jù)及作業(yè)屬性數(shù)據(jù)。GPRS數(shù)據(jù)傳輸模塊每隔4s將上述監(jiān)測信息回傳到遠程服務(wù)器,由此產(chǎn)生了海量的農(nóng)機運動軌跡時空數(shù)據(jù)。
本文所采用的軌跡數(shù)據(jù)源于農(nóng)機深松作業(yè)監(jiān)管服務(wù)系統(tǒng)數(shù)據(jù)庫。每條農(nóng)機軌跡數(shù)據(jù)包含車輛編號、經(jīng)度、緯度、深度和速度等10個字段,具體說明如表1所示。作業(yè)狀態(tài)是指農(nóng)機開機狀態(tài)正常情況下的田間深松作業(yè)狀態(tài)。深松系統(tǒng)標準規(guī)定,農(nóng)機作業(yè)深度值應(yīng)大于300mm。
1.3.1 數(shù)據(jù)丟失處理
引起數(shù)據(jù)缺失的主要原因有信號屏蔽、信號不良、終端設(shè)備故障和機手操作不當(dāng)?shù)?導(dǎo)致整條數(shù)據(jù)記錄丟失。此外,由于復(fù)雜環(huán)境的影響和設(shè)備自身故障,也可能導(dǎo)致數(shù)據(jù)在獲取、存儲、傳輸過程中出現(xiàn)軌跡點的重要屬性缺失,如經(jīng)緯度、設(shè)備ID、時間信息或作業(yè)深度等,本文記錄丟失數(shù)據(jù)位置,對重要屬性缺失數(shù)據(jù)采取了刪除處理并寫入異常數(shù)據(jù)表。
表1 軌跡數(shù)據(jù)字段說明Table 1 Track data field description
1.3.2 數(shù)據(jù)重復(fù)處理
軌跡數(shù)據(jù)在上傳與存儲過程中可能造成數(shù)據(jù)重復(fù),這些重復(fù)數(shù)據(jù)不僅會浪費存儲資源也會造成后續(xù)數(shù)據(jù)處理的錯誤,通過比較設(shè)備ID與GNSS時間,刪除設(shè)備ID與GNSS時間均相同的重復(fù)數(shù)據(jù)。
1.3.3 數(shù)據(jù)漂移處理
由于定位設(shè)備接收信號問題引起的軌跡點位置坐標偏離真實位置,產(chǎn)生數(shù)據(jù)漂移。由于農(nóng)機軌跡點的真實位置不可知,漂移數(shù)據(jù)不容易被發(fā)現(xiàn),本研究通過計算時序相鄰的兩個軌跡點Pk、Pk+1之間的運動速度v(Pk,Pk+1)來檢測數(shù)據(jù)漂移,即
(1)
1.3.4 停歇點識別
(2)
1.4.1 運營時間
農(nóng)機運營是指農(nóng)機開機條件下的各種營運狀態(tài),包括道路行駛、田間作業(yè)及維修檢查等。運營時間很好地反映了機手的工作狀態(tài)和工作量,本文給出農(nóng)機運營時間、日均運營時間等指標定義。農(nóng)機運營時間Toperation定義為
Toperation=N·tinterval
(3)
(4)
其中,m為農(nóng)機運營的天數(shù),Ni為第i天農(nóng)機運營總軌跡點數(shù)。
1.4.2 作業(yè)時間
作業(yè)時間是農(nóng)機田間深松作業(yè)效率的主要評定指標,可以直觀地反映農(nóng)機作業(yè)的狀態(tài)和工作強度。本文分別給出作業(yè)時間、日均作業(yè)時間等指標定義。農(nóng)機作業(yè)時間Twork定義為
Twork=M·tinterval
(5)
(6)
其中,m為農(nóng)機作業(yè)的天數(shù),Mi為第i天具有深度作業(yè)屬性值的軌跡點數(shù)。
1.4.3 時間利用率
時間利用率可以客觀地表示農(nóng)機深松作業(yè)時間與農(nóng)機運營時間的比例關(guān)系,從而體現(xiàn)出農(nóng)機轉(zhuǎn)移時間的消耗及農(nóng)機深松作業(yè)的趨勢變化。農(nóng)機時間利用率τ定義為
(7)
其中,Twork為農(nóng)機作業(yè)時間,Toperation為農(nóng)機運營時間。
1.4.4 班次利用率
運營班次是指某段時間內(nèi)運營農(nóng)機數(shù)量的總和,作業(yè)班次是指某段時間內(nèi)作業(yè)農(nóng)機數(shù)量的總和。班次利用率定義為
(8)
其中,m為有農(nóng)機運營的天數(shù),Ki為第i天具有作業(yè)屬性的作業(yè)農(nóng)機數(shù)量,Nj為第j天具有軌跡信息的運營農(nóng)機數(shù)量。農(nóng)機班次利用率能夠反映出農(nóng)機深松作業(yè)的應(yīng)用需求。
Hadoop是將一個任務(wù)分解為多個并行計算的小任務(wù),通過大量的計算節(jié)點對多個小任務(wù)的并行計算[10]。Hadoop由分布式文件系統(tǒng)(HDFS)、集群資源管理系統(tǒng)(YARN)及分布式并行計算 (MapReduce)等生態(tài)系統(tǒng)組成。Spark是與 Hadoop 相似的開源集群計算環(huán)境,主要由SparkSQL、SparkStreaming、MLlib 等生態(tài)系統(tǒng)組成,Spark 在某些工作負載方面表現(xiàn)得更加優(yōu)越。Hadoop更多作為一個數(shù)據(jù)存儲的基礎(chǔ)設(shè)施,將海量的數(shù)據(jù)分配到一個由廉價的計算機組成的集群中進行存儲和管理[11];Spark則多用于作為專門處理海量數(shù)據(jù)分布式計算的工具,其生態(tài)系統(tǒng)沒有提供分布式數(shù)據(jù)的存儲的組件,但能在內(nèi)存中對數(shù)據(jù)進行分析和運算[12]。
Python是一款結(jié)合解釋性、編譯性、互動性和面向?qū)ο蟮哪_本語言,能將其他語言制作的各種模塊結(jié)合在一起,提供了豐富和強大的第三方庫[13],本研究采用Python的Matplotlib庫繪制了各種農(nóng)機軌跡分析圖。
為了更高效地分析農(nóng)機運營效率,本文搭建了基于Spark分布式集群技術(shù)的試驗系統(tǒng)。分布式集群硬件系統(tǒng)網(wǎng)絡(luò)拓撲(見圖1),包括3臺計算機,通過一個路由器相連接,使3臺機器處于同一局域網(wǎng)的IP中。其中,IP:192.168.1.103的計算機為分布式集群master,另外2臺分別為slave1和slave2。搭建基于Hadoop的Spark分布式集群的開發(fā)環(huán)境主要包括:部署基于Hadoop的HDFS集群、把Spark集群部署到Hadoop上、搭建基于Spark集群的應(yīng)用開發(fā)環(huán)境[14]。本文搭建的分布式集群采用如下軟硬件配置: Hadoop2.7、spark2.1.1、Ubuntu 14操作系統(tǒng)、3.6GHz、8核CPU、16GB內(nèi)存、128GB的SSD,以及1TB硬盤。
圖1 分布集群網(wǎng)絡(luò)拓撲圖Fig.1 Distributed cluster network topology
為了驗證分布式集群試驗系統(tǒng)性能,按照表1中的軌跡數(shù)據(jù)字段格式生成不同量級的仿真軌跡數(shù)據(jù),進行集群性能測試實驗。采用HDFS存儲數(shù)據(jù)[15],分別啟動Hadoop、Spark、Hive,執(zhí)行g(shù)roupby語句對農(nóng)機的作業(yè)時間進行統(tǒng)計。Hadoop和Spark的處理軌跡時間消耗對比如圖2所示。Hadoop在啟動時需要初始化耗時,而Spark基于內(nèi)存計算,啟動過程較快,數(shù)據(jù)處理時間優(yōu)于Hadoop。由于集群任務(wù)初始化、數(shù)據(jù)加載、數(shù)據(jù)交換等常規(guī)事務(wù)的處理影響,分布式集群計算軌跡數(shù)據(jù)的平均耗時隨著數(shù)據(jù)量的增加呈現(xiàn)先減小后穩(wěn)定的趨勢,如圖3所示。
圖2 Hadoop與Spark處理軌跡耗時對比Fig.2 Time lapse comparison between Hadoop and spark processing trajectories
圖3 集群軌跡數(shù)據(jù)處理平均耗時趨勢Fig.3 Average time consumption trend of cluster trajectory data processing
本文選取2015年8-12月期間新疆塔城3個典型地區(qū)14輛農(nóng)機的作業(yè)軌跡數(shù)據(jù)進行分析,軌跡點總數(shù)約943萬個,包括停歇點約212萬個,作業(yè)軌跡點約363萬個,道路行駛軌跡點約368萬個。
3.1.1 農(nóng)機總作業(yè)時間分析
圖4為2015年8-12月期間農(nóng)機總作業(yè)時間分布圖。從圖4可以看出:農(nóng)機總作業(yè)時間呈現(xiàn)先升高后下降趨勢,5個月的月均作業(yè)時間為387h,8、9、10月的作業(yè)時間均大于均值,10月為波峰值。
圖4 農(nóng)機作業(yè)時間分布Fig.4 Agricultural machinery operation time distribution
3.1.2 農(nóng)機日均作業(yè)時間分析
圖5為農(nóng)機日均作業(yè)時間占比統(tǒng)計圖。從圖5可以看出:作業(yè)時間小于1.5h占13.8%,超過9.5h占比為17.8%,大部分作業(yè)時間分布在1.5~9.5h之間,占比接近70%。其中,作業(yè)時間在5.5~6.5h區(qū)間所占比例較大。
圖6為2015年8-12月農(nóng)機時間使用率對比。結(jié)合圖4發(fā)現(xiàn),雖然農(nóng)機10月的作業(yè)時間最多,但時間利用率并不是最高。出現(xiàn)這種結(jié)果的原因是由于農(nóng)忙開始時,農(nóng)機手會首先選擇離機庫較近的地塊進行作業(yè),隨著時間的推移,較近的地塊多已完成作業(yè),機手不得不花費更多時間進行道路行駛轉(zhuǎn)移,所以時間利用率越來越低。
圖5 日均作業(yè)時間占比統(tǒng)計Fig.5 Daily average working time ratio statistics
圖6 農(nóng)機時間使用率對比Fig.6 Agricultural machinery time usage comparison
14輛農(nóng)機各自的時間利用率對比如圖7所示。
圖7 14輛農(nóng)機各自的時間使用率Fig.7 14 agricultural machinery respective time usage rates
從圖7可以看出:每輛農(nóng)機的時間利用率大部分超過40%,其中編號為1100014的農(nóng)機時間利用率最高,達到了80%以上,說明農(nóng)機在運營時較少進行道路轉(zhuǎn)移。但是,個別農(nóng)機的時間利用率低,如編號為1100012和1100015。不同作業(yè)農(nóng)機的時間利用率統(tǒng)計數(shù)據(jù)能夠為農(nóng)機合作組織的作業(yè)監(jiān)管與調(diào)動提供數(shù)據(jù)支持。
圖8是14輛農(nóng)機班次利用率分布情況。從圖8可以看出:不同農(nóng)機的深松班次利用率差別較大,編號為1100006的農(nóng)機深松班次利用率達到了90%以上,說明該農(nóng)機在這期間主要從事深松作業(yè);編號為1100015的農(nóng)機深松班次利用率不到10%,說明該農(nóng)機這期間主要從事其它農(nóng)業(yè)生產(chǎn)活動。
圖8 14輛農(nóng)機的班次利用率Fig.8 Shift utilization rate of 14 agricultural machinery
圖9是14輛農(nóng)機的時間與班次利用率對比圖。由圖9可看出:來農(nóng)機的班次利用率和時間利用率的趨勢基本一致,時間利用率高的班次利用率也比較高,班次利用率和時間利用率之差絕對值的均值為5.8%。其中,編號為1100006、1100013的農(nóng)機班次利用率比時間利用率高出12%,這14輛農(nóng)機中有71%的農(nóng)機時間利用率大于班次利用率。
圖9 14輛農(nóng)機時間利用率和班次利用率對比Fig.9 Comparison of time utilization rate and shift utilization ratio of 14 agricultural machinery
基于HDFS的大數(shù)據(jù)存儲技術(shù)和Spark大數(shù)據(jù)運算技術(shù),利用3臺PC機搭建了Spark分布式集群軌跡處理試驗平臺,并對集群性能進行了測試試驗。試驗結(jié)果表明:分布式集群平臺處理能力強、耗時少,能夠更好地滿足軌跡大數(shù)據(jù)的處理要求。基于分布式集群試驗平臺,針對運營時間、作業(yè)時間、時間利用率、班次利用率等多項指標,對2015年8-12月期間的新疆塔城地區(qū)14臺農(nóng)機深松作業(yè)軌跡數(shù)據(jù)進行了運營分析,有效地測算和評價了農(nóng)機運營效率,能夠為綜合統(tǒng)計農(nóng)機深松作業(yè)效率及作業(yè)特征規(guī)律提供數(shù)據(jù)支持。