本發明實施例涉及大數據分析技術領域,尤其涉及一種基于港口多層區域的船舶掛靠事件挖掘方法及系統。
背景技術:
航運分析領域,會存在需要對海量船舶軌跡點與眾多港口區域的地理位置關系計算的需求,如海運物流系統,船期管理系統,大宗商品監控系統,港口擁堵分析系統,船舶景氣指數分析系統。
全球大型商船數量很多(幾十萬條),每條船3秒鐘會上傳實時船位信息,上述系統都要求底層數據提供船舶的到港時間,離港時間。在大宗商品監控系統,港口擁堵分析系統,船舶景氣指數分析系統中還需要計算出準確的靠泊時間,以對船舶的作業時間進行統計,反應出商品的裝貨或卸貨時間,港口作業效率,船舶使用率等參數。國內主流的航運分析系統,都是基于單層區域到離架構,所謂“單層”就是船舶和港口只有單一的到離關系,根據船舶和港口區域的位置關系,計算出船舶的到港時間和離港時間,實現對船期或海運物流參數的分析。在這種架構中無法給出船舶在港口內的作業時間,以及無法給出船舶在港口內的航行細節。
技術實現要素:
針對現有技術存在的問題,本發明實施例提供一種基于港口多層區域的船舶掛靠事件挖掘方法及系統。
本發明實施例提供一種基于港口多層區域的船舶掛靠事件挖掘方法,包括:
獲取待挖掘港口的第一位置信息,根據所述第一位置信息創建索引映射表,其中,所述待挖掘港口包括多層區域;
獲取預設時間段內船舶的第二位置信息,根據所述第二位置信息和所述索引映射表構建所述多層區域的區域到離事件集;
根據所述區域到離事件集,利用貪心算法計算得出所述船舶在多層區域的掛靠信息。
本發明實施例提供一種基于港口多層區域的船舶掛靠事件挖掘系統,包括:
索引創建模塊,用于獲取待挖掘港口的第一位置信息,根據所述第一位置信息創建索引映射表,其中,所述待挖掘港口包括多層區域;
到離事件構建模塊,用于獲取預設時間段內船舶的第二位置信息,根據所述第二位置信息和所述索引映射表構建所述多層區域的區域到離事件集;
計算模塊,用于根據所述區域到離事件集,利用貪心算法計算得出所述船舶在多層區域的掛靠信息。
本發明實施例提供的一種基于港口多層區域的船舶掛靠事件挖掘方法及系統,通過根據第一位置信息創建索引映射表,根據第二位置信息和索引映射表構建多層區域的區域到離事件集,根據區域到離事件集,利用貪心算法獲得船舶在多層區域的掛靠信息,從而計算得出船舶在港口內的作業時間以及航行細節。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明實施例提供的一種基于港口多層區域的船舶掛靠事件挖掘方法流程示意圖;
圖2為本發明另一實施例提供的一種基于港口多層區域的船舶掛靠事件挖掘方法流程示意圖;
圖3為本發明實施例提供的一種基于港口多層區域的船舶掛靠事件挖掘系統結構示意圖;
圖4為本發明實施例提供的一種基于港口多層區域的船舶掛靠事件挖掘系統實體結構示意圖。
具體實施方式
為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
圖1為本發明實施例提供的一種基于港口多層區域的船舶掛靠事件挖掘方法流程示意圖,如圖1所示,所述方法,包括:
步驟101:獲取待挖掘港口的第一位置信息,根據所述第一位置信息創建索引映射表,其中,所述待挖掘港口包括多層區域;
具體地,在大宗商品分析系統中,實現對貨物的裝卸貨量的統計,是通過對全球船舶軌跡進行跟蹤,判斷每條船與港口包含多層區域的位置關系,然后對這些多層區域的到離事件進行基于貪心算法的計算來實現的。其中所謂的“多層區域”是指,港口中包括了錨地、港區、碼頭和泊位,我們從概念上將其進行劃分,錨地>港區>碼頭>泊位從而形成了四層區域。首先,獲取待挖掘港口的第一位置信息,港口是由一系列經緯度點構成的一個區域,根據第一位置信息將該港口劃分成多個網格,建立網格的索引映射表。
步驟102:獲取預設時間段內船舶的第二位置信息,根據所述第二位置信息和所述索引映射表構建所述多層區域的區域到離事件集;
具體地,獲取預設時間段內船舶的第二位置信息,其中,預設時間段可以是船舶的歷史某個時間段的第二位置信息,或者可以是實時地從數據源中獲取船舶的第二位置信息,且第二位置信息可以是船舶的經緯度信息。根據第二位置信息從索引映射表中查找是否存在第二位置信息對應的網格,如果存在,則進一步判斷該船舶在該網格的哪層區域中,假設當前船舶在某一個網格包括的碼頭區域內,查找該船舶上一個狀態在哪,如果上一個狀態還在這個碼頭區域內,則該船舶在該碼頭的到離狀態仍為“到”;如果上一個狀態為“離”,則更新該船舶在該碼頭的到離狀態為“到”。記錄船舶在最新的區域到離事件,多個時間對應的多個區域到離事件構成了區域到離事件集。區域到離事件集中包括了該船舶在預設時間段內在各層區域內的到離事件。
步驟103:根據所述區域到離事件集,利用貪心算法計算得出所述船舶在多層區域的掛靠信息。
具體地,如果船舶在港口多個類型的區域中形成區域到離事件,則會產生多個掛靠事件用以反應移泊等信息。為了得到盡可能多的掛靠事件,要從區域到離事件集中選取盡可能多的區域到離事件。定義區域到離事件ei發生在半開時間區間[ai,di)中,如果事件ei和ej滿足[ai,di)和[aj,dj)不重疊,則稱他們是兼容的,那么求取船舶在多層區域的掛靠信息的問題就轉換成求最大兼容到離事件集合的問題,通過貪心算法,可以得到區域到離事件集對應的最大兼容到離事件集,從而可以獲得船舶在多層區域的掛靠信息。
本發明實施例通過根據第一位置信息創建索引映射表,根據第二位置信息和索引映射表構建多層區域的區域到離事件集,根據區域到離事件集,利用貪心算法獲得船舶在多層區域的掛靠信息,從而計算得出船舶在港口內的作業時間以及航行細節。
在上述實施例的基礎上,所述根據所述第一位置信息創建索引映射表,包括:
對所述第一位置信息對應的區域范圍根據預設大小進行網格劃分;
根據預設規則獲取每一網格對應的第一特征值;
根據所述第一特征值和所述網格對應的id值創建所述索引映射表。
具體地,獲取到待挖掘港口的第一位置信息后,對第一位置信息構成的區域范圍進行網格劃分,劃分的網格大小可以根據實際情況進行調整,本發明實施例對此不作具體限定。劃分成一個或多個網格后,根據預設規則獲取每個網格對應的第一特征值,每個網格都對應唯一一個id值,建立該網格的第一特征值和id值的映射關系,構成索引映射表。應當說明的是,可以根據第一位置信息中的經度和緯度進行網格劃分,例如,第一位置信息中的經度為120.12345,表示東經120°7.407′,對其進行創建網格時,可以使120.12345乘以100,得到12012.345,此時表示網格的預設大小為1/100度。
本發明實施例通過對待挖掘港口進行網格劃分,并構建網格對應的第一特征值和id值之間的索引映射表,從而確定船舶在哪個網格中,縮小了判斷船舶位置的范圍,提高了判斷效率。
在上述實施例的基礎上,所述根據預設規則獲取每一網格對應的第一特征值,包括:
獲取所述網格中預設位置對應的經度和緯度;
將所述經度乘以預設值后取整,獲得第一子特征值,將所述緯度乘以所述預設值后取整,獲得第二子特征值;
根據所述第一子特征值和所述第二子特征值構成所述第一特征值。
具體地,獲取劃分好的網格預設位置對應的經度和緯度,例如,可以獲取每個網格的左上角對應的經度和緯度。將經度和緯度分別乘以一個預設值,然后取整數,獲得第一子特征值和第二子特征值,根據獲得的第一子特征值和第二子特征值構成第一特征值,其中,具體可以為,將第一子特征值作為高位,第二子特征值作為低位,從而合成第一特征值。例如:網格左上角對應的經度為120.12345,即東經120°7.407′,將經度乘以100后取整,得到第一子特征值為12012,同理可以得到第二子特征值,本發明實施例對此不再贅述。本發明實施例通過對網格預設位置的經緯度經過一系列處理獲得網格對應的第一特征值,為確定船舶是否在網格內提供了依據,提高了判斷船舶所在位置的效率。
在上述實施例的基礎上,所述根據所述第二位置信息和所述索引映射表構建所述多層區域的區域到離事件集,包括:
根據所述預設規則和所述第二位置信息獲得第二特征值;
若判斷獲知所述第二特征值在所述索引映射表中包括的網格內,則獲取所述第二特征值對應的目標網格;
獲取所述船舶在所述目標網格包含的多層區域中的到離信息,構成所述區域到離事件集。
具體地,獲取船舶的第二位置信息,第二位置信息可以是經度和緯度,將經度和緯度分別乘以預設值后取整數,獲得第三子特征值和第四子特征值,將第三子特征值和第四子特征值合并構成第二特征值。其具體獲得第三子特征值和第四子特征值的方法為:
如果經度乘以100后得到的lon'小于0,且小數位取絕對值后大于0,那么lon'=lon'-1,否則lon'不變;如果緯度乘以100后得到的lat'大于0,且小數位取絕對值后大于0,那么lat'=lat'+1,否則lat'不變。
例如:(1)第二位置信息為經度120.12345,緯度35.12345,分別先乘以100得到12012.345和3512.345,取整之前先考察怎么保證取到這個點所在網格的左上角坐標,經過上述計算后,這個點的左上角坐標為(12012,3513),即第三子特征值為12012,第四子特征值為3513。
(2)第二位置信息為經度-120.12345,緯度35.12345,分別先乘以100得到-12012.345和3512.345,取整之前先考察怎么保證取到這個點所在網格的左上角坐標,經過上述計算后,這個點的左上角坐標為(-12013,3513),即第三子特征值為-12013,第四子特征值為3513。
(3)第二位置信息為經度-120.12345,緯度-35.12345,分別先乘以100得到-12012.345和-3512.345,取整之前先考察怎么保證取到這個點所在網格的左上角坐標,經過上述計算后,這個點的左上角坐標為(-12013,-3512),即第三子特征值為-12013,第四子特征值為-3512。
(4)第二位置信息為經度120.12345,緯度-35.12345,分別先乘以100得到12012.345和-3512.345,取整之前先考察怎么保證取到這個點所在網格的左上角坐標,經過上述計算后,這個點的左上角坐標為(12012,-3512),即第三子特征值為12012,第四子特征值為-3512。
將得到的第三子特征值和第四子特征值合并構成第二特征值,可以是第三子特征值作為高位,第四子特征值作為低位,還可以是其他方式,本發明實施例對此不作具體限定。根據每個網格對應的第一特征值可以判斷出第二特征值是否在網格內以及在哪個網格內,其具體判斷方法是比較第二特征值是否等于第一特征值,如果第二特征值與第一特征值相等,等說明船舶在該第一特征值對應的網格里,將船舶所在的那個網格作為目標網格,獲取該目標網格。目標網格中包含一層或多層區域,對該船舶在目標網格中所有區域進行點面包含計算或點點距離計算,從而可以確定出船舶在哪個區域內,查看船舶和該區域上一個到離狀態,如果上一個到離狀態為“到”,則仍舊在區域內,如果上一個到離狀態為“離”,則將船舶與區域的到離狀態更新為“到”。上面計算完成后,記錄船舶最新的區域到離事件,將船舶、區域和到離狀態的詳細信息保存到區域到離事件集中。區域到離事件集中反應了船舶在多層區域中在各層區域的到離信息,從而可以獲得船舶在各層區域的停留時間。
本發明實施例通過第二位置信息獲得第二特征值,根據第二特征值獲取對應的目標網格,并獲取船舶在目標網格中包含的多層區域的到離信息,構成區域到離事件集,從而可以獲取船舶在港口內的作業時間。
在上述各實施例的基礎上,所述根據所述區域到離事件集,利用貪心算法計算得出所述船舶的掛靠信息,包括:
將所述區域到離事件集按時間進行升序排序;
根據所述區域到離事件集,利用貪心算法獲取最大兼容到離事件集;
根據所述最大兼容到離事件集獲得所述船舶在多層區域的掛靠信息。
具體地,本發明實施例針對的是關注船舶作業時長、等待時長和閑置時長等維度的航運分析系統,如:全球大宗商品網站,航運景氣指數,船舶作業指標,港口擁堵排名系統。這些系統以船舶的到港時間,靠泊時間,離港時間,作業時長和停留時長為基礎數據。為了方便描述,將計算上述各個時間信息的關鍵信息進行符號化:
ata表示船舶的到港時間,取船舶首次停靠港口包含的任何區域的時間;
atb表示船舶首次停靠港口包含的某個非錨地區域的時間,如果對港口包含的區域(除錨地外):港區、碼頭和泊位進行順序排序并編號,那么atb產生的條件是當前船舶停靠的編號最大的區域對應的時間;
atd表示船舶的離港時間。
首先,對區域到離事件集按時間進行升序排序,如果區域到離事件集中有的事件對應的時間相同,則應用先到達大區域再到達大區域包含的小區域的排序規則,以及先離開小區域再離開包含該小區域的大區域的排序規則。
其次,根據區域到離事件集,利用貪心算法獲取最大兼容到離事件集。貪心算法的使用是有條件限制的,并不是所有的問題都可以用貪心算法來實現,因此,在利用貪心算法之前,需要證明貪心算法能夠解決本發明實施例求得最大兼容到離事件集,其證明過程如下:
(一)最優子結構性質
令eij表示e{e1,e2,…,en},n≥1中,在區域到離事件ei之后,區域到離事件ej之前的事件集合,假定希望求eij的最大兼容到離事件集,進一步,假設pij就是這個子集,包含區域到離事件ek。由于最優解包含ek,可以得到兩個子問題,尋找eik中的船舶靠泊事件(在區域到離事件ei離開之后,區域到離事件ek到達之前的那些到離事件)以及尋找ekj中的船舶靠泊事件(在區域到離事件ek離開之后,區域到離事件ej到達之前的那些到離事件)。令pik=pij∩eik和pkj=pij∩ekj,這樣pik包含eij中那些在ek到達之前到達的那些區域到離事件,pkj包含eij中那些在ek離開之后到達的那些區域到離事件。因此,有pij=pik∪{ek}∪pkj,而且eij中最大兼容到離事件的子集pij包含|pij|=|pik|+|pkj|+1個區域到離事件。
推論:最優解pij必然包含兩個子問題eik和ekj的最優解
證明:用剪切粘貼法證明這個推論。
如果可以找到eik的兼容活動子集p′ik,滿足|p′ik|>|pik|,則可以將p′ik而不是pik作為pij的最優解的一部分。這樣就構造出一個兼容事件集合,其大小|p′ik|+|pkj|+1>|pik|+|pkj|+1=|pij|,與pij是最優解的假設矛盾。對子問題ekj類似可證。
用c[i,j]表示集合eij的最優解的大小,則可以得到遞歸式:
(二)貪心選擇性質
上面已經證明船舶掛靠具有最優子結構性質。令ek={ai∈a:ai≥dk}為在ek離開后到達事件集合。當做出貪心選擇,選擇了e1后,剩下的e1是唯一需要求解的子問題。最優子結構告訴我們,如果e1在最優解中,那么原問題的最優解由事件e1及子問題e1中所有事件組成。
推論:考慮任意非空子問題ek,令em是ek中離開時間最早的事件,則em在ek的某個最大兼容事件子集中。
證明:令pk是ek的一個最大兼容到離事件子集,且ej是ek中離開時間最早的事件。若ej=em,則已經證明em在ek的某個最大兼容事件子集中。若ej≠em,令集合p′k=pk-{ej}∪{em},即將pk中的ej替換為em。p′k中的事件都是不相交的,因為pk中的區域到離事件都是不相交的,ej是pk中離開時間最早的事件,而dm≤dj。由于|p′k|=|pk|,因此得出結論p′k也是ek的一個最大兼容到離事件子集,而且它包含em。
因此可知,貪心算法適用于本發明實施例。只要對多層區域的到離事件按照離開時間進行升序排序,就可以利用貪心選擇求出最大兼容到離事件集,進而獲取最詳細的船舶掛靠信息,例如,船舶幾點到達港區、幾點從港區離開、幾點到達碼頭、幾點從碼頭離開等等,根據以上信息可以得出ata、atb、atd。根據ata、atb、atd可以求出船舶的停留時長、等待時長和作業時長等,停留時長=atd-ata,等待時長=atb-ata,作業時長=atd-atb。
本發明實施例通過根據第一位置信息創建索引映射表,根據第二位置信息和索引映射表構建多層區域的區域到離事件集,根據區域到離事件集,利用貪心算法獲得船舶在多層區域的掛靠信息,從而計算得出船舶在港口內的作業時間以及航行細節。
圖2為本發明另一實施例提供的一種基于港口多層區域的船舶掛靠事件挖掘方法流程示意圖,如圖2所示,所述方法,包括:
步驟201:網格劃分;獲取待挖掘港口的第一位置信息,根據第一位置信息構建待挖掘港口的外接矩形,對外接矩形按照預設大小進行網格劃分。
步驟202:建立索引映射表;獲取網格的左上角的經緯度,將經緯度進行處理,其處理方法與上述實施例一致,此處不再贅述,處理后獲得第一特征值,將第一特征值與網格的id值進行映射,構建索引映射表。
步驟203:構建區域到離事件集;獲取船舶的第二位置信息,第二位置信息包括經度和緯度,對第二位置信息進行處理,其處理方法與上述實施例一致,此處不再贅述,處理后獲得第二特征值,根據索引映射表和第二位置信息判斷船舶在哪個網格中,將船舶所在的那個網格作為目標網格,計算船舶到目標網格內各層區域的到離事件構成區域到離事件集。
步驟204:利用貪心算法獲得掛靠信息;對區域到離事件集中的區域到離事件按時間進行升序排序,然后利用貪心算法獲得最大兼容到離事件集,最大兼容到離事件集中包括船舶在港口內的航行細節,例如到港時間,離港時間,到達各層區域的時間以及離開各層區域的時間,從而可以計算出停留時長、等待時長、作業時長等。
本發明實施例通過根據第一位置信息創建索引映射表,根據第二位置信息和索引映射表構建多層區域的區域到離事件集,根據區域到離事件集,利用貪心算法獲得船舶在多層區域的掛靠信息,從而計算得出船舶在港口內的作業時間以及航行細節。
圖3為本發明實施例提供的一種基于港口多層區域的船舶掛靠事件挖掘系統結構示意圖,如圖3所示,所述系統,包括:索引創建模塊301、到離事件構建模塊302和計算模塊303,其中:
索引創建模塊301用于獲取待挖掘港口的第一位置信息,根據所述第一位置信息創建索引映射表,其中,所述待挖掘港口包括多層區域;到離事件構建模塊302用于獲取預設時間段內船舶的第二位置信息,根據所述第二位置信息和所述索引映射表構建所述多層區域的區域到離事件集;計算模塊303用于根據所述區域到離事件集,利用貪心算法計算得出所述船舶在多層區域的掛靠信息。
具體地,索引創建模塊301獲取待挖掘港口的第一位置信息,港口是由一系列經緯度點構成的一個區域,根據第一位置信息將該港口劃分成多個網格,建立網格的索引映射表。到離事件構建模塊302獲取預設時間段內船舶的第二位置信息,其中,預設時間段可以是船舶的歷史某個時間段的第二位置信息,或者可以是實時地從數據源中獲取船舶的第二位置信息,且第二位置信息可以是船舶的經緯度信息。根據第二位置信息從索引映射表中查找是否存在第二位置信息對應的網格,如果存在,則進一步判斷該船舶在該網格的哪層區域中,假設當前船舶在某一個網格包括的碼頭區域內,查找該船舶上一個狀態在哪,如果上一個狀態還在這個碼頭區域內,則該船舶在該碼頭的到離狀態仍為“到”;如果上一個狀態為“離”,則更新該船舶在該碼頭的到離狀態為“到”。記錄船舶在最新的區域到離事件,多個時間對應的多個區域到離事件構成了區域到離事件集。區域到離事件集中包括了該船舶在預設時間段內在各層區域內的到離事件。如果船舶在港口多個類型的區域中形成區域到離事件,則會產生多個掛靠事件用以反應移泊等信息。為了得到盡可能多的掛靠事件,要從區域到離事件集中選取盡可能多的區域到離事件。計算模塊303根據區域到離事件集通過貪心算法,可以得到區域到離事件集對應的最大兼容到離事件集,從而可以獲得船舶在多層區域的掛靠信息。
本發明提供的系統的實施例具體可以用于執行上述各方法實施例的處理流程,其功能在此不再贅述,可以參照上述方法實施例的詳細描述。
本發明實施例通過根據第一位置信息創建索引映射表,根據第二位置信息和索引映射表構建多層區域的區域到離事件集,根據區域到離事件集,利用貪心算法獲得船舶在多層區域的掛靠信息,從而計算得出船舶在港口內的作業時間以及航行細節。
在上述實施例的基礎上,所述索引創建模塊,具體用于:
對所述第一位置信息對應的區域范圍根據預設大小進行網格劃分;
根據預設規則獲取每一網格對應的第一特征值;
根據所述第一特征值和所述網格對應的id值創建所述索引映射表。
具體地,索引創建模塊獲取到待挖掘港口的第一位置信息后,對第一位置信息構成的區域范圍進行網格劃分,劃分的網格大小可以根據實際情況進行調整,本發明實施例對此不作具體限定。劃分成一個或多個網格后,根據預設規則獲取每個網格對應的第一特征值,每個網格都對應唯一一個id值,建立該網格的第一特征值和id值的映射關系,構成索引映射表。
本發明實施例通過對待挖掘港口進行網格劃分,并構建網格對應的第一特征值和id值之間的索引映射表,從而確定船舶在哪個網格中,縮小了判斷船舶位置的范圍,提高了判斷效率。
在上述實施例的基礎上,所述根據預設規則獲取每一網格對應的第一特征值,包括:
獲取所述網格中預設位置對應的經度和緯度;
將所述經度乘以預設值后取整,獲得第一子特征值,將所述緯度乘以所述預設值后取整,獲得第二子特征值;
根據所述第一子特征值和所述第二子特征值構成所述第一特征值。
具體地,獲取劃分好的網格預設位置對應的經度和緯度,例如,可以獲取每個網格的左上角對應的經度和緯度。將經度和緯度分別乘以一個預設值,然后取整數,獲得第一子特征值和第二子特征值,根據獲得的第一子特征值和第二子特征值構成第一特征值,其中,具體可以為,將第一子特征值作為高位,第二子特征值作為低位,從而合成第一特征值。本發明實施例通過對網格預設位置的經緯度經過一系列處理獲得網格對應的第一特征值,為確定船舶是否在網格內提供了依據,提高了判斷船舶所在位置的效率。在上述實施例的基礎上,所述到離事件構建模塊,具體用于:
根據所述預設規則和所述第二位置信息獲得第二特征值;
若判斷獲知所述第二特征值在所述索引映射表中包括的網格內,則獲取所述第二特征值對應的目標網格;
獲取所述船舶在所述目標網格包含的多層區域中的到離信息,構成所述區域到離事件集。
具體地,獲取船舶的第二位置信息,第二位置信息可以是經度和緯度,將經度和緯度分別乘以預設值后取整數,獲得第三子特征值和第四子特征值,將第三子特征值和第四子特征值合并構成第二特征值。其中,可以是第三子特征值作為高位,第四子特征值作為低位,還可以是其他方式,本發明實施例對此不作具體限定。根據每個網格對應的第一特征值可以判斷出第二特征值是否在網格內以及在哪個網格內,其具體判斷方法是比較第二特征值是否等于第一特征值,如果第二特征值與第一特征值相等,說明船舶在該第一特征值對應的網格里,將船舶所在的那個網格作為目標網格,獲取該目標網格。目標網格中包含一層或多層區域,對該船舶在目標網格中所有區域進行點面包含計算或點點距離計算,從而可以確定出船舶在哪個區域內,查看船舶和該區域上一個到離狀態,如果上一個到離狀態為“到”,則仍舊在區域內,如果上一個到離狀態為“離”,則將船舶與區域的到離狀態更新為“到”。上面計算完成后,記錄船舶最新的區域到離事件,將船舶、區域和到離狀態的詳細信息保存到區域到離事件集中。區域到離事件集反應了船舶在多層區域中各層區域的到離信息,從而可以獲得船舶在各層區域的停留時間。
本發明實施例通過第二位置信息獲得第二特征值,根據第二特征值獲取對應的目標網格,并獲取船舶在目標網格中包含的多層區域的到離信息,構成區域到離事件集,從而可以獲取船舶在港口內的作業時間。
在上述各實施例的基礎上,所述計算模塊,具體用于:
將所述區域到離事件集按時間進行升序排序;
根據所述區域到離事件集,利用貪心算法獲取最大兼容到離事件集;
根據所述最大兼容到離事件集獲得所述船舶在多層區域的掛靠信息。
具體地,計算模塊對區域到離事件集按時間進行升序排序,如果區域到離事件集中有的區域到離事件對應的時間相同,則應用先到達大區域再到達大區域包含的小區域的排序規則,以及先離開小區域再離開包含該小區域的大區域的排序規則。根據區域到離事件集,利用貪心算法獲取最大兼容到離事件集。最大兼容到離事件集中包括船舶在港口內的航行細節,例如到港時間,離港時間,到達各層區域的時間以及離開各層區域的時間,從而可以計算出停留時長、等待時長、作業時長等。
本發明實施例通過根據第一位置信息創建索引映射表,根據第二位置信息和索引映射表構建多層區域的區域到離事件集,根據區域到離事件集,利用貪心算法獲得船舶在多層區域的掛靠信息,從而計算得出船舶在港口內的作業時間以及航行細節。
圖4為本發明實施例提供的一種基于港口多層區域的船舶掛靠事件挖掘系統實體結構示意圖,如圖4所示,所述系統,包括:處理器(processor)401、存儲器(memory)402和總線403;其中,
所述處理器401和存儲器402通過所述總線403完成相互間的通信;
所述處理器401用于調用所述存儲器402中的程序指令,以執行上述各方法實施例所提供的方法,例如包括:獲取待挖掘港口的第一位置信息,根據所述第一位置信息創建索引映射表,其中,所述待挖掘港口包括多層區域;獲取預設時間段內船舶的第二位置信息,根據所述第二位置信息和所述索引映射表構建所述多層區域的區域到離事件集;根據所述區域到離事件集,利用貪心算法計算得出所述船舶在多層區域的掛靠信息。
本實施例公開一種計算機程序產品,所述計算機程序產品包括存儲在非暫態計算機可讀存儲介質上的計算機程序,所述計算機程序包括程序指令,當所述程序指令被計算機執行時,計算機能夠執行上述各方法實施例所提供的方法,例如包括:獲取待挖掘港口的第一位置信息,根據所述第一位置信息創建索引映射表,其中,所述待挖掘港口包括多層區域;獲取預設時間段內船舶的第二位置信息,根據所述第二位置信息和所述索引映射表構建所述多層區域的區域到離事件集;根據所述區域到離事件集,利用貪心算法計算得出所述船舶在多層區域的掛靠信息。
本實施例提供一種非暫態計算機可讀存儲介質,所述非暫態計算機可讀存儲介質存儲計算機指令,所述計算機指令使所述計算機執行上述各方法實施例所提供的方法,例如包括:獲取待挖掘港口的第一位置信息,根據所述第一位置信息創建索引映射表,其中,所述待挖掘港口包括多層區域;獲取預設時間段內船舶的第二位置信息,根據所述第二位置信息和所述索引映射表構建所述多層區域的區域到離事件集;根據所述區域到離事件集,利用貪心算法計算得出所述船舶在多層區域的掛靠信息。
本領域普通技術人員可以理解:實現上述方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成,前述的程序可以存儲于一計算機可讀取存儲介質中,該程序在執行時,執行包括上述方法實施例的步驟;而前述的存儲介質包括:rom、ram、磁碟或者光盤等各種可以存儲程序代碼的介質。
以上所描述的系統等實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部模塊來實現本實施例方案的目的。本領域普通技術人員在不付出創造性的勞動的情況下,即可以理解并實施。
通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到各實施方式可借助軟件加必需的通用硬件平臺的方式來實現,當然也可以通過硬件。基于這樣的理解,上述技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品可以存儲在計算機可讀存儲介質中,如rom/ram、磁碟、光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行各個實施例或者實施例的某些部分所述的方法。
最后應說明的是:以上實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的精神和范圍。