趙國發,劉 卉,肖 敬,陳競平,孟志軍
(1.首都師范大學 信息工程學院,北京 100048;2.國家農業智能裝備工程技術研究中心,北京 100097)
農機深松整地作業是在不打亂土壤層結構的前提下,打破犁底層、增加土壤的透水性和透氣性、改善農作物根系生長條件從而達到增產增收的一項重要舉措。針對深松整地作業的監管需求,國家農業智能裝備工程技術研究中心研制了農機深松作業監管服務系統,有效地保障了作業數據的完整性、實時性和有效性,極大地降低了人工抽檢強度,加強了監管力度。
農機深松作業監管服務系統獲取了海量農機運動軌跡數據。目前,國內外針對軌跡數據的挖掘研究主要集中在道路路網提取更新[1-3]、用戶出行分析[4]、商圈熱區推薦[5]及城市交通擁堵識別[6-7]等方面,針對農機運動軌跡數據的研究分析較少。
本文針對海量的農機軌跡數據,運用Spark分布式集群技術[8],從運營時間、作業時間、時間利用率及班次利用率等多方面對農機運營效率進行評估,有助于測算和客觀評價農機運營效率,進一步提升平臺服務應用價值,為農機智能管理與科學調度研究提供數據支持。
基于物聯網技術思想開發的農機深松作業監管服務系統,設計為4層架構:①感知層為安裝在農機上的車載智能終端設備,用來獲取農機作業狀態數據[9];②網絡層主要包括安裝在終端上的通用分組無線服務網絡(GPRS)和移動3G網絡,通過Internet公網上傳采集到的作業軌跡數據;③支撐層主要由中心服務器、應用服務器、數據服務器、數據庫管理系統、基礎地理信息管理軟件和安全監控設備等組成;④應用層是基于Web瀏覽器的農機深松監管與服務軟件系統,協助監管部門對深松作業進行綜合管理與數據分析。農機深松作業監管系統感知層的車載智能終端設備集成了GNSS定位模塊、GPRS數傳模塊及作業參數傳感器等,通過解析GNSS模塊的NMEA-0183語句及傳感器輸出語句,獲取農機作業時間、經度、緯度、速度及作業深度等時空數據及作業屬性數據。GPRS數據傳輸模塊每隔4s將上述監測信息回傳到遠程服務器,由此產生了海量的農機運動軌跡時空數據。
本文所采用的軌跡數據源于農機深松作業監管服務系統數據庫。每條農機軌跡數據包含車輛編號、經度、緯度、深度和速度等10個字段,具體說明如表1所示。作業狀態是指農機開機狀態正常情況下的田間深松作業狀態。深松系統標準規定,農機作業深度值應大于300mm。
1.3.1 數據丟失處理
引起數據缺失的主要原因有信號屏蔽、信號不良、終端設備故障和機手操作不當等,導致整條數據記錄丟失。此外,由于復雜環境的影響和設備自身故障,也可能導致數據在獲取、存儲、傳輸過程中出現軌跡點的重要屬性缺失,如經緯度、設備ID、時間信息或作業深度等,本文記錄丟失數據位置,對重要屬性缺失數據采取了刪除處理并寫入異常數據表。

表1 軌跡數據字段說明Table 1 Track data field description
1.3.2 數據重復處理
軌跡數據在上傳與存儲過程中可能造成數據重復,這些重復數據不僅會浪費存儲資源也會造成后續數據處理的錯誤,通過比較設備ID與GNSS時間,刪除設備ID與GNSS時間均相同的重復數據。
1.3.3 數據漂移處理
由于定位設備接收信號問題引起的軌跡點位置坐標偏離真實位置,產生數據漂移。由于農機軌跡點的真實位置不可知,漂移數據不容易被發現,本研究通過計算時序相鄰的兩個軌跡點Pk、Pk+1之間的運動速度v(Pk,Pk+1)來檢測數據漂移,即
(1)

1.3.4 停歇點識別

(2)

1.4.1 運營時間
農機運營是指農機開機條件下的各種營運狀態,包括道路行駛、田間作業及維修檢查等。運營時間很好地反映了機手的工作狀態和工作量,本文給出農機運營時間、日均運營時間等指標定義。農機運營時間Toperation定義為
Toperation=N·tinterval
(3)

(4)
其中,m為農機運營的天數,Ni為第i天農機運營總軌跡點數。
1.4.2 作業時間
作業時間是農機田間深松作業效率的主要評定指標,可以直觀地反映農機作業的狀態和工作強度。本文分別給出作業時間、日均作業時間等指標定義。農機作業時間Twork定義為
Twork=M·tinterval
(5)

(6)
其中,m為農機作業的天數,Mi為第i天具有深度作業屬性值的軌跡點數。
1.4.3 時間利用率
時間利用率可以客觀地表示農機深松作業時間與農機運營時間的比例關系,從而體現出農機轉移時間的消耗及農機深松作業的趨勢變化。農機時間利用率τ定義為
(7)
其中,Twork為農機作業時間,Toperation為農機運營時間。
1.4.4 班次利用率
運營班次是指某段時間內運營農機數量的總和,作業班次是指某段時間內作業農機數量的總和。班次利用率定義為
(8)
其中,m為有農機運營的天數,Ki為第i天具有作業屬性的作業農機數量,Nj為第j天具有軌跡信息的運營農機數量。農機班次利用率能夠反映出農機深松作業的應用需求。
Hadoop是將一個任務分解為多個并行計算的小任務,通過大量的計算節點對多個小任務的并行計算[10]。Hadoop由分布式文件系統(HDFS)、集群資源管理系統(YARN)及分布式并行計算 (MapReduce)等生態系統組成。Spark是與 Hadoop 相似的開源集群計算環境,主要由SparkSQL、SparkStreaming、MLlib 等生態系統組成,Spark 在某些工作負載方面表現得更加優越。Hadoop更多作為一個數據存儲的基礎設施,將海量的數據分配到一個由廉價的計算機組成的集群中進行存儲和管理[11];Spark則多用于作為專門處理海量數據分布式計算的工具,其生態系統沒有提供分布式數據的存儲的組件,但能在內存中對數據進行分析和運算[12]。
Python是一款結合解釋性、編譯性、互動性和面向對象的腳本語言,能將其他語言制作的各種模塊結合在一起,提供了豐富和強大的第三方庫[13],本研究采用Python的Matplotlib庫繪制了各種農機軌跡分析圖。
為了更高效地分析農機運營效率,本文搭建了基于Spark分布式集群技術的試驗系統。分布式集群硬件系統網絡拓撲(見圖1),包括3臺計算機,通過一個路由器相連接,使3臺機器處于同一局域網的IP中。其中,IP:192.168.1.103的計算機為分布式集群master,另外2臺分別為slave1和slave2。搭建基于Hadoop的Spark分布式集群的開發環境主要包括:部署基于Hadoop的HDFS集群、把Spark集群部署到Hadoop上、搭建基于Spark集群的應用開發環境[14]。本文搭建的分布式集群采用如下軟硬件配置: Hadoop2.7、spark2.1.1、Ubuntu 14操作系統、3.6GHz、8核CPU、16GB內存、128GB的SSD,以及1TB硬盤。

圖1 分布集群網絡拓撲圖Fig.1 Distributed cluster network topology
為了驗證分布式集群試驗系統性能,按照表1中的軌跡數據字段格式生成不同量級的仿真軌跡數據,進行集群性能測試實驗。采用HDFS存儲數據[15],分別啟動Hadoop、Spark、Hive,執行groupby語句對農機的作業時間進行統計。Hadoop和Spark的處理軌跡時間消耗對比如圖2所示。Hadoop在啟動時需要初始化耗時,而Spark基于內存計算,啟動過程較快,數據處理時間優于Hadoop。由于集群任務初始化、數據加載、數據交換等常規事務的處理影響,分布式集群計算軌跡數據的平均耗時隨著數據量的增加呈現先減小后穩定的趨勢,如圖3所示。

圖2 Hadoop與Spark處理軌跡耗時對比Fig.2 Time lapse comparison between Hadoop and spark processing trajectories

圖3 集群軌跡數據處理平均耗時趨勢Fig.3 Average time consumption trend of cluster trajectory data processing
本文選取2015年8-12月期間新疆塔城3個典型地區14輛農機的作業軌跡數據進行分析,軌跡點總數約943萬個,包括停歇點約212萬個,作業軌跡點約363萬個,道路行駛軌跡點約368萬個。
3.1.1 農機總作業時間分析
圖4為2015年8-12月期間農機總作業時間分布圖。從圖4可以看出:農機總作業時間呈現先升高后下降趨勢,5個月的月均作業時間為387h,8、9、10月的作業時間均大于均值,10月為波峰值。

圖4 農機作業時間分布Fig.4 Agricultural machinery operation time distribution
3.1.2 農機日均作業時間分析
圖5為農機日均作業時間占比統計圖。從圖5可以看出:作業時間小于1.5h占13.8%,超過9.5h占比為17.8%,大部分作業時間分布在1.5~9.5h之間,占比接近70%。其中,作業時間在5.5~6.5h區間所占比例較大。
圖6為2015年8-12月農機時間使用率對比。結合圖4發現,雖然農機10月的作業時間最多,但時間利用率并不是最高。出現這種結果的原因是由于農忙開始時,農機手會首先選擇離機庫較近的地塊進行作業,隨著時間的推移,較近的地塊多已完成作業,機手不得不花費更多時間進行道路行駛轉移,所以時間利用率越來越低。

圖5 日均作業時間占比統計Fig.5 Daily average working time ratio statistics

圖6 農機時間使用率對比Fig.6 Agricultural machinery time usage comparison
14輛農機各自的時間利用率對比如圖7所示。

圖7 14輛農機各自的時間使用率Fig.7 14 agricultural machinery respective time usage rates
從圖7可以看出:每輛農機的時間利用率大部分超過40%,其中編號為1100014的農機時間利用率最高,達到了80%以上,說明農機在運營時較少進行道路轉移。但是,個別農機的時間利用率低,如編號為1100012和1100015。不同作業農機的時間利用率統計數據能夠為農機合作組織的作業監管與調動提供數據支持。
圖8是14輛農機班次利用率分布情況。從圖8可以看出:不同農機的深松班次利用率差別較大,編號為1100006的農機深松班次利用率達到了90%以上,說明該農機在這期間主要從事深松作業;編號為1100015的農機深松班次利用率不到10%,說明該農機這期間主要從事其它農業生產活動。

圖8 14輛農機的班次利用率Fig.8 Shift utilization rate of 14 agricultural machinery
圖9是14輛農機的時間與班次利用率對比圖。由圖9可看出:來農機的班次利用率和時間利用率的趨勢基本一致,時間利用率高的班次利用率也比較高,班次利用率和時間利用率之差絕對值的均值為5.8%。其中,編號為1100006、1100013的農機班次利用率比時間利用率高出12%,這14輛農機中有71%的農機時間利用率大于班次利用率。

圖9 14輛農機時間利用率和班次利用率對比Fig.9 Comparison of time utilization rate and shift utilization ratio of 14 agricultural machinery
基于HDFS的大數據存儲技術和Spark大數據運算技術,利用3臺PC機搭建了Spark分布式集群軌跡處理試驗平臺,并對集群性能進行了測試試驗。試驗結果表明:分布式集群平臺處理能力強、耗時少,能夠更好地滿足軌跡大數據的處理要求?;诜植际郊涸囼炂脚_,針對運營時間、作業時間、時間利用率、班次利用率等多項指標,對2015年8-12月期間的新疆塔城地區14臺農機深松作業軌跡數據進行了運營分析,有效地測算和評價了農機運營效率,能夠為綜合統計農機深松作業效率及作業特征規律提供數據支持。