本發(fā)明涉及農業(yè)應用技術領域,具體涉及一種農機作業(yè)面積獲取方法及裝置。
背景技術:
盡管我國有關部門已經精確繪制部分農田地圖,但出于保密需要和信息不共享等原因,這些數據仍然難以公開利用。因此,在農機作業(yè)中,不能夠直接獲得農機作業(yè)面積。而且,由于農機社會化服務的普遍存在,土地所有權、農機所有權和農機經營服務的權屬不統(tǒng)一,導致偷工減料、人為降低作業(yè)質量等問題普遍存在,套取國家深松作業(yè)補貼時有發(fā)生。如何監(jiān)測農機作業(yè)面積,已經成為當前農業(yè)機構管理的剛性需求和深松作業(yè)推廣的剛性需求。
現有的一種農機作業(yè)面積獲取方法中,通過行車速度進行行車點的剔除,當行車速度大于預設閾值(比如15hm/h)則認定為非農田區(qū)域,閾值很難精確選取,較難適應多個作業(yè)工序和作業(yè)地區(qū),難以適用于現實生活中的應用?,F有的另外一種農機作業(yè)面積獲取方法中,使用基于空間索引和網格密度的聚類算法來識別農田地塊,大大提高了處理速度,但是精度不高,會刪除掉非密集單元格中的田間作業(yè)點,另外現有的基于密度分割聚類算法在進行聚類時,仍需要人工根據不同農機作業(yè)類型設置聚類參數(密度閾值與鄰域半徑),自動化程度低。
技術實現要素:
本發(fā)明實施例提供一種農機作業(yè)面積獲取方法及裝置,用于解決現有的農機作業(yè)面積獲取方法中精度低、自動化程度低的問題。
本發(fā)明實施例提供了一種農機作業(yè)面積獲取方法,包括:
接收農機定位裝置發(fā)送的農機作業(yè)軌跡數據;
基于作業(yè)速度改進dbscan聚類算法的鄰域半徑確定方法;
采用改進的dbscan聚類算法過濾所述農機作業(yè)軌跡中的道路行駛點和田間轉場點;
根據過濾后的農機作業(yè)軌跡數據確定農機作業(yè)田塊數量;
分別計算各個農機作業(yè)田塊的面積。
可選地,所述方法還包括:
對預設時間段內的農機作業(yè)軌跡數據進行清洗,過濾所述農機作業(yè)軌跡數據中的零點漂移數據和冗余數據。
可選地,所述鄰域半徑根據如下公式計算:
r=x*t/3.6
其中,r為鄰域半徑;x為所述農機作業(yè)軌跡數據中的速度;t為所述農機定位裝置發(fā)送所述農機作業(yè)軌跡數據的間隔。
可選地,所述分別計算各個農機作業(yè)田塊的面積,包括:
采用距離法分別計算各個農機作業(yè)田塊的面積。
可選地,所述采用距離法分別計算各個農機作業(yè)田塊的面積,包括:
基于數據挖掘過濾各個農機作業(yè)田塊對應的農機作業(yè)軌跡數據中的轉彎點;
根據轉彎點對農機作業(yè)里程進行補償;
根據補償后的農機作業(yè)里程和農機作業(yè)幅寬計算各個農機作業(yè)田塊的面積。
本發(fā)明實施例提供了一種農機作業(yè)面積獲取裝置,包括:
農機作業(yè)軌跡數據接收單元,用于接收農機定位裝置發(fā)送的農機作業(yè)軌跡數據;
算法改進單元,用于基于作業(yè)速度改進dbscan聚類算法的鄰域半徑確定方法;
過濾單元,用于采用改進的dbscan聚類算法過濾所述農機作業(yè)軌跡中的道路行駛點和田間轉場點;
農機作業(yè)田塊數量確定單元,用于根據過濾后的農機作業(yè)軌跡數據確定農機作業(yè)田塊數;
農機作業(yè)面積計算單元,用于分別計算各個農機作業(yè)田塊的面積。
可選地,還包括:
數據清洗單元,用于對預設時間段內的農機作業(yè)軌跡數據進行清洗,過濾所述農機作業(yè)軌跡數據中的零點漂移數據和冗余數據。
可選地,所述鄰域半徑根據如下公式計算:
r=x*t/3.6
其中,r為鄰域半徑;x為所述農機作業(yè)軌跡數據中的速度;t為所述農機定位裝置發(fā)送所述農機作業(yè)軌跡數據的時間間隔。
可選地,所述農機作業(yè)面積計算單元進一步用于:
采用距離法分別計算各個農機作業(yè)田塊的面積。
可選地,所述農機作業(yè)面積計算單元包括:
轉彎點過濾模塊,用于基于數據挖掘過濾各個農田對應的農機作業(yè)軌跡數據中的轉彎點;
補償模塊,用于根據轉彎點對農機作業(yè)里程進行補償;
農機作業(yè)面積計算模塊,用于根據補償后的農機作業(yè)里程和農機作業(yè)幅寬計算各個農機作業(yè)田塊的面積。
本發(fā)明實施例提供的農機作業(yè)面積獲取方法及裝置,本發(fā)明實施例能根據農機作業(yè)速度自適應地確定鄰域半徑,能有效分割緊鄰的農機作業(yè)田塊,提高了農機作業(yè)面積獲取的精度和自動化程度。
附圖說明
為了更清楚地說明本發(fā)明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1是本發(fā)明一個實施例的農機作業(yè)面積獲取方法的原理圖;
圖2是本發(fā)明一個實施例的農機作業(yè)面積獲取方法流程示意圖;
圖3是本發(fā)明一個實施例的零點漂移軌跡點的示意圖;
圖4為本發(fā)明一個實施例的零點漂移軌跡和駐車停放軌跡特征示意圖;
圖5是本發(fā)明一個實施例的過濾零點漂移軌跡和駐車停放軌跡之后的農機運行軌跡示意圖;
圖6是本發(fā)明一個實施例的過濾道路行駛點后的軌跡示意圖;
圖7是本發(fā)明一個實施例的因在道路上往返數次而導致農田連通示意圖;
圖8a、圖8b和圖8c是本發(fā)明一個實施例的距離法計算農機作業(yè)面積的原理圖;
圖9是本發(fā)明一個實施例的農機作業(yè)面積獲取裝置的結構示意圖。
具體實施方式
為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整的描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
圖1是本發(fā)明一個實施例的農機作業(yè)面積獲取方法的原理圖。如圖1所示,農機上安裝有定位裝置11,定位裝置11將采集的農機作業(yè)軌跡數據通過gprs發(fā)送至服務器12;服務器12根據農機作業(yè)軌跡數據計算獲取農機作業(yè)面積;用戶可通過計算機13等終端訪問服務器獲取農機作業(yè)面積信息。
圖2是本發(fā)明一個實施例的農機作業(yè)面積獲取方法的流程示意圖。如圖2所示,該實施例的方法以服務器為執(zhí)行主體,包括:
s21:接收農機定位裝置發(fā)送的農機作業(yè)軌跡數據;
在實際應用中,農機定位裝置以預設的周期(比如10s)向服務器發(fā)送農機作業(yè)軌跡數據。服務器可以以天為單位處理農機定位裝置發(fā)送的農機作業(yè)軌跡數據,每個農機作業(yè)軌跡數據包括經緯度、時間、速度、航向等屬性。
s22:基于作業(yè)速度改進dbscan聚類算法的鄰域半徑確定方法;
s23:采用改進的dbscan聚類算法過濾所述農機作業(yè)軌跡中的道路行駛點和田間轉場點;
需要說明的是,所述改進的dbscan聚類算法中的鄰域半徑根據所述農機作業(yè)軌跡數據中的作業(yè)速度確定。
現有dbscan算法的鄰域半徑和密度閾值是固定的。農機在道路上行駛時,也會出現速度較慢的情況,在一定時間內將堆積較多的點數,有被識別為高密度區(qū)域的風險。改進后的dbscan算法,可根據速度自適應地縮小或擴大鄰域半徑,判斷兩側是否有農機作業(yè)軌跡,而實現排除道路行駛較慢而累積的軌跡點的影響,大大提高了聚類精度?,F有dbscan算法需人工根據不同農機作業(yè)類型設定聚類參數(密度閾值和鄰域半徑),而改進的dbscan算法只需設定一個密度閾值參數,且密度閾值是一個經驗值,可根據作業(yè)速度自動確定鄰域半徑,自動化程度高。
實際應用中,農機在緊鄰的農田中連續(xù)作業(yè),從而產生田間轉場點,形成高密度區(qū)域,連通了若干塊農田,如圖7所示?,F有dbscan算法可能會把幾塊農田合并為一塊農田。改進后的dbscan算法,可通過密度-距離快速搜索聚類算法找到每個農田中的局部密度最大點,從而在不指定初始聚類中心及聚類中心個數的情況下,過濾田間轉場點,正確地識別出農機作業(yè)田塊數。
s24:根據過濾后的農機作業(yè)軌跡數據確定農機作業(yè)田塊數量;
需要說明的是,采用改進后的dbscan算法在處理農機作業(yè)軌跡數據時,可過濾道路行駛點,并通過聚類分析大致確定農田塊數;然而,由于田間轉場點的存在,可能將相鄰若干塊農田的作業(yè)軌跡合并為一塊農田的作業(yè)軌跡,從而造成農機作業(yè)田塊數出現錯誤、各個農機作業(yè)田塊面積計算不準確。因而,本發(fā)明實施例在過濾道路行駛點后還需要過濾田間轉場點,并根據處理后的農機作業(yè)軌跡數據確定農機作業(yè)田塊數。
s25:計算農機作業(yè)田塊的面積;
在本發(fā)明實施例的一種可選的實施方式中,所述方法還包括:
對預設時間段內的農機作業(yè)軌跡數據進行清洗,過濾所述農機作業(yè)軌跡數據中的零點漂移數據和冗余數據。
需要說明的是,由于電子元器件受到零點漂移的影響,農機定位裝置比如gps定位終端在剛開機時定位不準確,隨機漂移,零點漂移軌跡點如圖3所示。農機行駛之后位置得到修正不再受零點漂移的影響。因此,首先過濾零點漂移軌跡點。零點漂移軌跡點的特征是相鄰點(10秒)的經緯度不同,但其速度基本連續(xù)為0。而農機一般停放在車庫里,需要行駛到農田才能開始作業(yè),因此行駛之前零點漂移的速度一般是0或者1km/h,且在一天中的凌晨時段,如圖4所示,因此根據時間和速度可過濾零點漂移軌跡點。
過濾冗余數據主要指過濾停放點。農機在運行過程中可能遇到道路紅燈而等待,或加油、故障等情況而停車,但其位置依然每個預設的周期被上傳一次,使此區(qū)域內密度過高,聚類時易被錯誤地識別為農田,因此需要過濾停放點。具體操作為:凡相鄰點經緯度相同的,則把第二個點刪除。據此,可將一天內的3832個點減少至2823個點。
過濾零點漂移點和停放點之后,軌跡圖如圖5所示,接著根據改進后的dbscan算法標記道路上的行駛點為噪聲點,每一塊農機作業(yè)田塊的軌跡存放在一個有序的農田點集合里。
進一步地,所述鄰域半徑根據如下公式計算:
r=x*t/3.6
其中,r為鄰域半徑,單位為m;x為所述農機作業(yè)軌跡數據中的速度,單位為km/h;t為所述農機定位裝置發(fā)送所述農機作業(yè)軌跡數據的時間間隔,單位為s。
具體地,過濾道路行駛點的過程包括:
(1)檢測數據庫中尚未檢查過的點p,如果p未被處理(處理:歸為某個農田或者標記為噪聲),則檢查其基于速度的鄰域,若包含的點數不小于minpts,建立新農田c,將基于速度的鄰域其中所有的點加入候選集n;
(2)對候選集n中所有尚未被處理的點q,檢查其基于速度的鄰域,若至少包含minpts個點,則將這些點加入n;如果q未歸入任何一個農田,則將q加入c;
(3)重復步驟2),繼續(xù)檢查n中未處理的點,直至當前候選集n為空;
(4)重復步驟1)~3),直到所有點都歸入了某個農田或標記為噪聲。
獲得到的農田組合collection,其中每一個單元都是一個農機作業(yè)田塊c,c是一個農田序列的點的集合,道路行駛點被標記為噪聲。結果如圖6所示。
本發(fā)明實施例可通過密度-距離快速搜索聚類算法找到每個農機作業(yè)田塊中的局部密度最大點,從而在不指定初始聚類中心及聚類中心個數的情況下,將合并的農機作業(yè)田塊軌跡分開來,并過濾田間轉場點。密度-距離快速搜索聚類算法中類簇的中心由一些局部密度比較低的點圍繞,并且這些點距離其他有高局部密度的點的距離都比較大.首先定義兩個值:局部密度ρi以及到高局部密度點的距離δi:
局部密度ρi:因為gps軌跡點是離散點,使用cut-offkernel計算方式。
其中函數
其中,參數dc>0為截斷距離,需要事先指定。dij為數據點xi與數據點xj之間的距離。ρi表示數據集里與數據點xi之間距離小于dc的數據點的個數。
設qi表示ρi的一個降序排列下標序,即滿足:ρq1≥ρq2≥ρq3≥…≥ρqn距離δi:
在決策圖中局部密度ρi與距離δi都大的點為聚類中心點,距離δi很大,但局部密度ρi很小的點為噪聲點。對非聚類中心點進行歸類,在每個類里刪除田間轉場點。
進一步地,所述分別計算各個農機作業(yè)田塊的面積,包括:
采用距離法分別計算各個農機作業(yè)田塊的面積。
需要說明的是,低成本gps定位終端屬于單點定位,精度不夠高,所以不采用緩沖區(qū)法而采用距離法計算農機作業(yè)田塊的面積。
進一步地,所述采用距離法分別計算各個農機作業(yè)田塊的面積,包括:
基于數據挖掘過濾各個農機作業(yè)田塊對應的農機作業(yè)軌跡數據中的轉彎點;
根據轉彎點對農機作業(yè)里程進行補償;
根據補償后的農機作業(yè)里程和農機作業(yè)幅寬計算各個農機作業(yè)田塊的面積。
需要說明的是,農機作業(yè)軌跡數據包括航向屬性。在實際應用中,北向行駛的航向屬性為0°,東向行駛的航向屬性為90°,南向行駛的航向屬性為180°,西向行駛的航向屬性為270°。舉例來說,在南北向的農田中,東向或西向的農機作業(yè)軌跡數據代表轉彎點,需要過濾;類似的,在東西向的農田中,北向或南向的農機作業(yè)軌跡數據代表轉彎點,需要過濾。
在實際應用中,農機作業(yè)面積為農機作業(yè)里程與農機作業(yè)幅寬的乘積。
農機作業(yè)幅寬是固定的。農機作業(yè)里程為農田內所有軌跡點按時間順序相連而獲得的累積里程。最原始的里程如圖8(a)所示,去掉轉彎點之后里程如圖8(b)所示,最后考慮補償轉彎時候的里程,如圖8(c)所示。補償轉彎時,判斷每一個定位的點是否為轉彎點,然后補償最后一個作業(yè)點與第一個轉彎點之間的里程的垂直里程,和最后一個轉彎點與第一個作業(yè)點之間的垂直里程。
垂直里程d=兩點間球面距離*cosα。
在實際應用中,將計算出的農機作業(yè)田塊數量和農機作業(yè)田塊的面積保存在服務器的數據庫中以備用戶訪問。
綜上所述,本發(fā)明實施例應用低成本gps終端,適用于復雜的田間作業(yè)情況,可較準確的獲取農機作業(yè)面積。提取農機田間作業(yè)點時將出現以下4種情況:1、田間作業(yè)點正確識別為田間作業(yè)點(田一田);2、田間作業(yè)點誤判為路上運輸轉移點(田一路);3、路上運輸轉移點正確識別為路上運輸轉移點(路一路);4、路上運輸轉移點誤判為田間作業(yè)點(路一田)。本發(fā)明不會出現第2種“田一路”情況,因此只考慮第4種情況會導致誤差。因此針對農機復雜的作業(yè)情況(不同工序播種耙地等,等待紅綠燈,加油,往返加載物資等情況),不斷嘗試將道路、田間轉場的軌跡依次過濾,不斷提高精度;從而可以克服現有技術中勞動量大、數據處理量大、成本高、自動化程度低的缺陷,以實現勞動量小、成本低、自動化程度高、精度高、能適應復雜作業(yè)情況的優(yōu)點。
本發(fā)明實施例改進的dbscan算法,鄰域半徑隨著當前點的速度而變化,從而更好的區(qū)分出高密度點和低密度點、田間作業(yè)點和行駛點,提高了聚類精度,具有很好的借鑒作用和推廣意義。且不需要人工根據不同農機作業(yè)類型設置聚類參數(密度閾值和鄰域半徑),而是自動計算聚類參數,自動化程度高。
圖9是本發(fā)明一個實施例的農機作業(yè)面積獲取裝置的結構示意圖。如圖9所示,本發(fā)明實施的裝置包括:
農機作業(yè)軌跡數據接收單元91,用于接收農機定位裝置發(fā)送的農機作業(yè)軌跡數據;
算法改進單元92,用于基于作業(yè)速度改進dbscan聚類算法的鄰域半徑確定方法;
過濾單元93,用于采用改進的dbscan聚類算法過濾所述農機作業(yè)軌跡中的道路行駛點和田間轉場點;
農田塊數確定單元94,用于根據過濾后的農機作業(yè)軌跡數據確定農機作業(yè)田塊數;
農機作業(yè)面積計算單元95,用于分別計算各個農機作業(yè)田塊的面積。
在本發(fā)明實施例的一種可選的實施方式中,該農機作業(yè)面積獲取裝置還包括:
數據清洗單元,用于對預設時間段內的農機作業(yè)軌跡數據進行清洗,過濾所述農機作業(yè)軌跡數據中的零點漂移數據和冗余數據。
進一步地,所述鄰域半徑根據如下公式計算:
r=x*t/3.6
其中,r為鄰域半徑;x為所述農機作業(yè)軌跡數據中的速度;t為所述農機定位裝置發(fā)送所述農機作業(yè)軌跡數據的間隔。
農機作業(yè)面積計算單元95進一步用于:
采用距離法分別計算各個農機作業(yè)田塊的面積。
農機作業(yè)面積計算單元95包括:
轉彎點過濾模塊,用于基于數據挖掘過濾各個農機作業(yè)田塊對應的農機作業(yè)軌跡數據中的轉彎點;
補償模塊,用于根據轉彎點對農機作業(yè)里程進行補償;
農機作業(yè)面積計算模塊,用于根據補償后的農機作業(yè)里程和農機作業(yè)幅寬計算各個農機作業(yè)田塊的面積。
本發(fā)明實施例的裝置可以用于執(zhí)行上述方法實施例,其原理和技術效果類似,此處不再贅述。
本發(fā)明實施例提供的農機作業(yè)面積獲取方法及裝置,根據速度縮小/擴大鄰域半徑,能不受行駛路線上軌跡點的累積的影響,而由行駛路線兩側是否有作業(yè)軌跡決定是否是高密度區(qū)域,大大提高了聚類精度。本發(fā)明實施例針對道路上和田間轉場行駛的特別慢的點,鄰域半徑縮小,不會被錯誤的識別為高密度區(qū)域,所以道路行駛(低密度區(qū)域)能將距離比較近的田塊的農機作業(yè)軌跡(高密度區(qū)域)分割開,因此提高了聚類精度,特別適用于農機作業(yè)軌跡。同時,根據速度自動確定鄰域半徑,提高了農機作業(yè)面積獲取的自動化程度。
本領域內的技術人員應明白,本發(fā)明的實施例可提供為方法、系統(tǒng)或計算機程序產品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例或結合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、cd-rom、光學存儲器等)上實施的計算機程序產品的形式。
本發(fā)明是參照根據本發(fā)明實施例的方法、設備(系統(tǒng))、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執(zhí)行的指令產生用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
需要說明的是術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
本發(fā)明的說明書中,說明了大量具體細節(jié)。然而能夠理解的是,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結構和技術,以便不模糊對本說明書的理解。類似地,應當理解,為了精簡本發(fā)明公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應將該公開的方法解釋呈反映如下意圖:即所要求保護的本發(fā)明要求比在每個權利要求中所明確記載的特征更多的特征。更確切地說,如權利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式的權利要求書由此明確地并入該具體實施方式,其中每個權利要求本身都作為本發(fā)明的單獨實施例。
以上實施例僅用于說明本發(fā)明的技術方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或替換,并不使相應技術方案的本質脫離本發(fā)明各實施例技術方案的精神和范圍。