国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      地理信息系統(tǒng)中的矢量空間疊加分析并行方法及系統(tǒng)與流程

      文檔序號(hào):11519763閱讀:1037來源:國(guó)知局
      地理信息系統(tǒng)中的矢量空間疊加分析并行方法及系統(tǒng)與流程

      本發(fā)明涉及地理信息系統(tǒng),尤其涉及一種矢量空間疊加分析的并行方法及系統(tǒng)。



      背景技術(shù):

      地理信息系統(tǒng)(gis,geographicinformationsystem)是一門結(jié)合地理學(xué)、地圖學(xué)、遙感以及計(jì)算機(jī)等科學(xué)的綜合性學(xué)科。gis的主要內(nèi)容包括對(duì)具有空間屬性的地理數(shù)據(jù)的管理、分析和顯示。其中,空間分析是由已知的地理數(shù)據(jù)通過位置計(jì)算、屬性繼承和統(tǒng)計(jì)分析等方式,產(chǎn)生信息量更加豐富的地理數(shù)據(jù),為地理信息系統(tǒng)提供了強(qiáng)大的空間數(shù)據(jù)分析能力。根據(jù)空間數(shù)據(jù)類型的不同,空間分析算法可分為矢量空間分析和柵格空間分析兩類,以矢量數(shù)據(jù)為分析對(duì)象的疊加分析算法是矢量空間分析算法中的重要分析方法。

      如圖1所示,在常見的gis系統(tǒng)中,采用分層方式組織地理景觀,同一區(qū)域的整個(gè)數(shù)據(jù)集表示了該地區(qū)的地理景觀的內(nèi)容,疊加分析是在統(tǒng)一空間參考系統(tǒng)下,將相關(guān)的主題層組成的數(shù)據(jù)層進(jìn)行一系列集合運(yùn)算,產(chǎn)生新的數(shù)據(jù)圖層的過程。最基本的疊加分析是在兩個(gè)圖層上的操作,通常被稱為輸入圖層和疊加圖層,多圖層的疊加分析可以在兩個(gè)圖層的疊加分析的基礎(chǔ)上通過重復(fù)操作來實(shí)現(xiàn)。

      目前,隨著應(yīng)用需求的提高,空間數(shù)據(jù)表現(xiàn)出結(jié)構(gòu)復(fù)雜化、規(guī)模海量化和分析需求實(shí)時(shí)化的特點(diǎn),同時(shí)由于計(jì)算機(jī)集群技術(shù)以及多核系統(tǒng)的迅速發(fā)展,人們逐漸采用并行疊加分析方法來提高提高空間分析算法效率。

      然而,現(xiàn)有的并行疊加分析方法中,為不破壞原有串行算法的高效數(shù)據(jù)結(jié)構(gòu),通常采用基于任務(wù)級(jí)的粗粒度的并行模式,通過對(duì)輸入圖層進(jìn)行空間數(shù)據(jù)劃分來形成多個(gè)不同的區(qū)域,由各個(gè)子進(jìn)程分別完成獨(dú)立區(qū)域的疊加操作,然后歸并得到最終疊加結(jié)果,因此,傳統(tǒng)算法通常只針對(duì)單一的輸入圖層進(jìn)行數(shù)據(jù)劃分,而且,目前的并行疊加分析方法,例如openmp、mpi、cuda等,由于空間數(shù)據(jù)存在空間鄰近性以及空間要素大小不一等特點(diǎn),通常存在負(fù)載不均,并行效率低,在高性能集群中并行擴(kuò)展性不足等問題。



      技術(shù)實(shí)現(xiàn)要素:

      本發(fā)明的目的在于克服上述現(xiàn)有技術(shù)的缺陷,提供用于矢量空間疊加分析的并行化方法。

      根據(jù)本發(fā)明的第一方面,提供一種地理信息系統(tǒng)中的矢量空間疊加分析并行方法。該方法包括:

      步驟1:根據(jù)輸入圖層和疊加圖層的數(shù)據(jù)類型以及疊加操作類型決定圖層劃分策略以確定待劃分圖層;

      步驟2:分離所述待劃分圖層的空間數(shù)據(jù),并將所述分離的空間數(shù)據(jù)分配給不同子任務(wù),以并行執(zhí)行相關(guān)空間數(shù)據(jù)的疊加;

      步驟3:合并所述不同子任務(wù)的空間數(shù)據(jù)疊加結(jié)果,以輸出最終的疊加分析結(jié)果。

      優(yōu)選地,所述圖層劃分策略包括單一圖層劃分策略和多圖層劃分策略。

      優(yōu)選地,所述單一圖層劃分策略包括:對(duì)于所述輸入圖層和疊加圖層的點(diǎn)面疊加,當(dāng)所述疊加操作類型是交、提取、同一時(shí),劃分所述輸入圖層;對(duì)于所述輸入圖層和疊加圖層的線線疊加,當(dāng)所述疊加操作類型是交時(shí),確定劃分包含空間要素多的圖層;對(duì)于所述輸入圖層和疊加圖層的線面疊加,當(dāng)所述疊加操作類型是裁剪、提取、交、差時(shí),確定劃分所述輸入圖層;對(duì)于所述輸入圖層和疊加圖層的面面疊加中,當(dāng)所述疊加操作類型是提取、裁剪、差、對(duì)稱差、同一時(shí),確定劃分所述輸入圖層;對(duì)于所述輸入圖層和疊加圖層的面面疊加中,當(dāng)所述疊加操作類型是交、更新時(shí),確定劃分包含空間要素多的圖層。

      優(yōu)選地,在采用單一圖層劃分策略的情況下,步驟2包括:利用希爾伯特空間填充曲線分解所述劃分圖層的空間數(shù)據(jù);基于空間數(shù)據(jù)的空間鄰近性特征確定分解的空間數(shù)據(jù)的索引;定義任務(wù)盒,該任務(wù)盒規(guī)定了能夠容納空間要素的數(shù)據(jù)大?。话凑账隹臻g數(shù)據(jù)索引,對(duì)任務(wù)盒進(jìn)行填充,以獲得多個(gè)被填充有空間要素的任務(wù)盒;為每個(gè)子任務(wù)分配固定數(shù)量的任務(wù)盒,以確定每個(gè)子任務(wù)需要處理的空間數(shù)據(jù)。

      優(yōu)選地,所述多圖層劃分策略包括:對(duì)于所述輸入圖層和疊加圖層的面面疊加中,當(dāng)所述疊加操作類型是并時(shí),確定劃分所述輸入圖層和疊加圖層。

      優(yōu)選地,在采用多圖層劃分策略的情況下,步驟2包括:對(duì)于輸入圖層和疊加圖層,分別采用空間填充曲線hilbert方法分隔成多個(gè)區(qū)域并對(duì)這些區(qū)域進(jìn)行空間索引;根據(jù)輸入圖層和疊加圖層的數(shù)據(jù)規(guī)模規(guī)定任務(wù)盒的數(shù)據(jù)大小,確保兩個(gè)圖層具有相同的任務(wù)盒數(shù)量;按照空間填充曲線的索引,對(duì)任務(wù)盒進(jìn)行填充;將任務(wù)盒均勻分配給各個(gè)子任務(wù),以確定每個(gè)子任務(wù)需要處理的輸入圖層和疊加圖層的空間數(shù)據(jù)。

      優(yōu)選地,步驟3包括:

      步驟31:先完成的子任務(wù)接收后完成的子任務(wù)的空間數(shù)據(jù)疊加結(jié)果并與自身的數(shù)據(jù)疊加結(jié)果進(jìn)行合并;

      步驟32:合并所有子任務(wù)的數(shù)據(jù)疊加結(jié)果,以輸出最終的疊加分析結(jié)果。

      優(yōu)選地,在步驟31和步驟32中,先完成的子任務(wù)接收后完成的子任務(wù)的空間數(shù)據(jù)疊加結(jié)果是序列化為wkb格式的二進(jìn)制流;在輸出最終的疊加結(jié)果之前,還包括對(duì)所有子任務(wù)的數(shù)據(jù)疊加結(jié)果執(zhí)行反序列化操作。

      根據(jù)本發(fā)明的第二方面,提供了一種地理信息系統(tǒng)中的矢量空間疊加分析并行系統(tǒng)。該系統(tǒng)包括:用于根據(jù)輸入圖層和疊加圖層的數(shù)據(jù)類型以及疊加操作類型決定圖層劃分策略以確定待劃分圖層的裝置;用于分離所述待劃分圖層的空間數(shù)據(jù),并將所述分離的空間數(shù)據(jù)分配給不同的子任務(wù),以并行執(zhí)行相關(guān)空間數(shù)據(jù)的疊加的裝置;用于合并所述不同的子任務(wù)的空間數(shù)據(jù)疊加結(jié)果,以輸出最終的疊加分析結(jié)果的裝置。

      優(yōu)選地,在該系統(tǒng)中,所述圖層劃分策略包括單一圖層劃分策略和多圖層劃分策略。

      與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:根據(jù)不同的數(shù)據(jù)類型和疊加操作的類型,采用不同的空間數(shù)據(jù)劃分策略,提高了并行子任務(wù)劃分的靈活性和有效性;在子任務(wù)劃分的過程中,考慮了空間要素鄰近性特征和計(jì)算任務(wù)的負(fù)載均衡性,提高了計(jì)算效率并提升了整體疊加算法的負(fù)載均衡;對(duì)于空間數(shù)據(jù)疊加的中間結(jié)果歸并通過序列化編碼完成字符串拼接,進(jìn)一步提高了并行計(jì)算的歸并效率。

      附圖說明

      以下附圖僅對(duì)本發(fā)明作示意性的說明和解釋,并不用于限定本發(fā)明的范圍,其中:

      圖1示出了疊加分析的示意圖。

      圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的矢量空間疊加分析并行方法的示意流程圖。

      圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的對(duì)矢量空間數(shù)據(jù)進(jìn)行外包過濾的示意圖。

      圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的主進(jìn)程調(diào)度的示意流程圖。

      圖5示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的子進(jìn)程調(diào)度的示意流程圖。

      具體實(shí)施方式

      為了對(duì)本發(fā)明的技術(shù)特征、目的和效果有更加清楚的理解,現(xiàn)參照附圖對(duì)本發(fā)明提出的矢量空間疊加分析的并行方法及系統(tǒng)進(jìn)一步詳細(xì)說明。

      圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的矢量空間疊加分析方法的示意流程圖。在該實(shí)施例中,使用mpi(messagepassinginterface)消息傳遞機(jī)制來實(shí)現(xiàn)疊加分析的并行化處理過程,其遵循主從架構(gòu)模式。

      步驟s110,讀取輸入圖層和疊加圖層的矢量數(shù)據(jù)。

      在該步驟中,讀取與空間疊加相關(guān)的數(shù)據(jù),即輸入圖層和疊加圖層的矢量數(shù)據(jù),并在內(nèi)存中構(gòu)建矢量空間數(shù)據(jù)對(duì)象。例如,首先初始化mpi進(jìn)程,加載程序相關(guān)的參數(shù),如數(shù)據(jù)庫(kù)的存儲(chǔ)地址或外存路徑等;然后根據(jù)初始化進(jìn)程獲取的地址,讀取參與疊加分析的輸入圖層和疊加圖層的矢量數(shù)據(jù)。

      步驟s120,確定數(shù)據(jù)劃分策略

      在該步驟中,基于輸入圖層和疊加圖層的數(shù)據(jù)類型以及疊加分析操作類型決定數(shù)據(jù)劃分策略,即確定是否進(jìn)行圖層劃分,是進(jìn)行單一圖層劃分或多圖層劃分等。

      通常,矢量空間數(shù)據(jù)包括點(diǎn)、線、面三種基本類型上,例如,某個(gè)點(diǎn)可能代表一個(gè)城市,某個(gè)線可能代表一條鐵路,某個(gè)面可能代表一個(gè)省區(qū)。在疊加分析計(jì)算中,并不關(guān)心這些幾何要素對(duì)應(yīng)哪個(gè)地理數(shù)據(jù),而只關(guān)心它們的坐標(biāo)值。

      輸入圖層和疊加圖層可以是點(diǎn)圖層、線圖層或面圖層。根據(jù)輸入圖層和疊加圖層的不同數(shù)據(jù)類型,疊加分析分為點(diǎn)點(diǎn)疊加、點(diǎn)線疊加、點(diǎn)面疊加、線線疊加、線面疊加和面面疊加等。

      矢量疊加分析操作類型包括交、并、差、補(bǔ)、對(duì)稱差、裁剪、過濾、更新、同一等。

      為了將疊加分析的任務(wù)分解為不同的子計(jì)算任務(wù),首先需要確定對(duì)圖層進(jìn)行劃分以確定不同子任務(wù)的計(jì)算區(qū)域,也稱為空間數(shù)據(jù)劃分。在一個(gè)實(shí)施例中,采用表1所示來確定不同情況下的空間數(shù)據(jù)劃分策略。

      表1:空間數(shù)據(jù)劃分策略

      由表1可知,對(duì)于輸入圖層和疊加圖層的線面疊加,當(dāng)疊加操作類型是裁剪、提取、交、差時(shí),劃分線圖層,確定進(jìn)行單一圖層劃分,在此實(shí)施例中,即劃分輸入圖層。

      對(duì)于輸入圖層和疊加圖層的面面疊加中,當(dāng)操作類型是提取、裁剪、差、對(duì)稱差、同一時(shí),劃分輸入圖層,當(dāng)操作類型是交、更新時(shí),劃分包含空間要素多的圖層等。例如,如果輸入圖層包含的空間要素較多,則劃分輸入圖層,反之,如果疊加圖層包含更多的空間要素,則劃分疊加圖層。

      對(duì)于輸入圖層和疊加圖層的面面疊加中,當(dāng)操作類型是并時(shí),同時(shí)劃分所述輸入圖層和所述疊加圖層,采用多圖層的劃分策略。

      而對(duì)于表1中的其它情況,則不進(jìn)行圖層劃分,可采用現(xiàn)有的串行算法來進(jìn)行疊加分析。

      根據(jù)本發(fā)明的數(shù)據(jù)劃分策略根據(jù)不同情況分為三種類型,即:劃分輸入圖層;劃分包含空間要素多的圖層,或稱大圖層,其可以是輸入圖層也可以是疊加圖層;劃分多圖層,即輸入圖層和疊加圖層。

      其中,多圖層劃分是針對(duì)面、面疊加的并操作,這種操作將疊加過程中產(chǎn)生的結(jié)果要素全部整合在一起,因此,參與疊加分析的兩個(gè)圖層可以同時(shí)被分解為若干子任務(wù);對(duì)于面、面疊加的交操作和線、線疊加的交操作,由于從幾何計(jì)算角度考慮,交換輸入圖層和疊加圖層不會(huì)對(duì)幾何結(jié)果造成影響,因此可以選擇更為復(fù)雜的圖層,即包含空間要素更多的圖層來進(jìn)行數(shù)據(jù)劃分。

      綜上所述,本發(fā)明的數(shù)據(jù)劃分策略根據(jù)不同的數(shù)據(jù)類型和疊加分析的操作類型,同時(shí)考慮了輸入圖層和疊加圖層,從而提高了空間數(shù)據(jù)劃分的靈活性和有效性。

      步驟s130,執(zhí)行單一圖層劃分。

      在確定采用單一圖層劃分策略的情況下,執(zhí)行該步驟s130。在此步驟中,包括進(jìn)行空間數(shù)據(jù)劃分以及將劃分之后的空間數(shù)據(jù)分配給子任務(wù)的過程。其中,空間要素(即點(diǎn)、線或面)作為空間數(shù)據(jù)劃分的最小數(shù)據(jù)獨(dú)立單元,而劃分之后的空間要素集合作為子任務(wù)計(jì)算的基本單位。

      在一個(gè)實(shí)施例中,采用空間填充曲線hilbert來進(jìn)行單一圖層的數(shù)據(jù)劃分。具體而言:利用hilbert曲線將待劃分的單一圖層分隔成多個(gè)區(qū)域(空間數(shù)據(jù)),對(duì)這些區(qū)域進(jìn)行編碼,以為每個(gè)區(qū)域指定唯一的空間索引標(biāo)號(hào),并保持各區(qū)域的空間鄰近性,即相鄰區(qū)域的索引標(biāo)號(hào)也相鄰。通過這種方式,可以將二維空間的數(shù)據(jù)降維至一維空間,同時(shí)確保了空間要素的空間鄰近性特征。

      進(jìn)一步地,為每個(gè)子任務(wù)分配劃分之后的空間數(shù)據(jù)。

      在一個(gè)實(shí)施例中,采用定義任務(wù)盒的方式來分配每個(gè)子任務(wù)所處理的空間要素。具體過程包括:根據(jù)疊加分析的任務(wù)規(guī)模,定義一個(gè)固定大小的任務(wù)盒,該任務(wù)盒規(guī)定了可容納空間要素的數(shù)據(jù)大小,或稱空間要素集合;按照空間填充曲線的索引標(biāo)號(hào),對(duì)任務(wù)盒進(jìn)行填充,當(dāng)任務(wù)盒中空間要素的數(shù)據(jù)飽和時(shí),轉(zhuǎn)入下一個(gè)盒子填充,直到最后一個(gè)任務(wù)盒。

      應(yīng)注意的是,當(dāng)某一個(gè)空間要素的數(shù)據(jù)大小大于任務(wù)盒時(shí),該空間要素獨(dú)自占據(jù)一個(gè)任務(wù)盒。

      在本文中,定義任務(wù)盒的作用是確保每個(gè)盒子中空間要素的數(shù)據(jù)大小基本一致,而每個(gè)盒子中可能存在若干個(gè)空間要素。例如,規(guī)定每個(gè)盒子最多可以裝4mb的數(shù)據(jù),對(duì)任務(wù)盒填充之后,盒子1中存在4個(gè)空間要素,這4個(gè)要素的總數(shù)據(jù)規(guī)模是4mb,盒子2中存在1個(gè)空間要素,這個(gè)要素的數(shù)據(jù)規(guī)模也是4mb。

      然后,可以將填充完的任務(wù)盒分配給各個(gè)子任務(wù),例如,可以均勻分配或根據(jù)執(zhí)行子任務(wù)的節(jié)點(diǎn)/進(jìn)程的處理能力而為子任務(wù)分配不同數(shù)量的任務(wù)盒。通過這種方式,每個(gè)子任務(wù)會(huì)被分到若干個(gè)任務(wù)盒,處理這若干個(gè)任務(wù)盒中的空間要素。

      通過空間填充曲線,可以實(shí)現(xiàn)二維空間數(shù)據(jù)在一維字符串上的表達(dá),因此,這種通過定義任務(wù)盒來分配子任務(wù)的方式,可以保證子任務(wù)處理的空間要素是具備空間區(qū)域特征。此外,每個(gè)并行子任務(wù)處理的是固定數(shù)量的任務(wù)盒,因此,可以確保并行子任務(wù)的負(fù)載均衡性。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,還可以采用其它的空間填充曲線來進(jìn)行空間數(shù)據(jù)劃分,例如,z曲線等

      為了減小疊加分析的計(jì)算范圍,在進(jìn)行單一圖層劃分之后,可以利用被劃分圖層的最小外包矩陣(mbr)對(duì)另外一個(gè)參與計(jì)算的圖層進(jìn)行外包過濾,通過這種方式,可以進(jìn)一步提高子任務(wù)的計(jì)算效率。圖3示出了現(xiàn)有技術(shù)中的矢量空間數(shù)據(jù)外包過濾操作的示意圖。

      步驟s140,執(zhí)行多圖層劃分

      在確定采用多圖層劃分策略的情況下,執(zhí)行步驟s140。

      例如,類似于步驟s130,執(zhí)行多圖層劃分的過程具體包括:對(duì)于輸入圖層和疊加圖層,分別采用空間填充曲線hilbert方法分隔成多個(gè)區(qū)域并對(duì)這些區(qū)域進(jìn)行空間索引標(biāo)號(hào);根據(jù)輸入圖層和疊加圖層的數(shù)據(jù)規(guī)模規(guī)定任務(wù)盒的數(shù)據(jù)大小,確保兩個(gè)圖層具有相同的任務(wù)盒數(shù)量;按照空間填充曲線的索引標(biāo)號(hào),對(duì)任務(wù)盒進(jìn)行填充并均勻分配給各個(gè)子任務(wù)。

      通過這種方式,可以為每個(gè)子任務(wù)分配需要處理的輸入圖層和疊加圖層的空間數(shù)據(jù)(或稱空間要素集合),并保證了每個(gè)子任務(wù)所處理的數(shù)據(jù)規(guī)模的均衡性,從而提高了子任務(wù)并行處理速度。

      步驟s150,調(diào)度子任務(wù)。

      在此本步驟中,將子任務(wù)分配給主進(jìn)程或子進(jìn)程來執(zhí)行。

      圖4示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的主進(jìn)程調(diào)度的示意圖。主進(jìn)程主要負(fù)責(zé)偵聽子進(jìn)程的狀態(tài)、維護(hù)調(diào)度池,向子進(jìn)程分配或調(diào)度子任務(wù)以及后續(xù)的子任務(wù)結(jié)果歸并。例如,當(dāng)主進(jìn)程獲取子進(jìn)程的完成消息之后,將子進(jìn)程的id寫入調(diào)度池,當(dāng)調(diào)度池中存在兩個(gè)進(jìn)程id時(shí),主進(jìn)程向該兩個(gè)子進(jìn)程發(fā)送結(jié)果歸并指令。

      在某些情況下,根據(jù)計(jì)算疊加分析任務(wù)的規(guī)模,在進(jìn)程數(shù)量較多時(shí),主進(jìn)程僅作為調(diào)度進(jìn)程,在進(jìn)程數(shù)量較少時(shí),主進(jìn)程也可以參與部分子任務(wù)的計(jì)算,參見圖4所示,計(jì)算局部解即是指主進(jìn)程獲取需要執(zhí)行的子任務(wù),在這種情況下,為了實(shí)現(xiàn)主進(jìn)程和其它子進(jìn)程之間的空間數(shù)據(jù)交互,需要將內(nèi)存中的主進(jìn)程和子進(jìn)程執(zhí)行的子任務(wù)的空間數(shù)據(jù)對(duì)象序列化為標(biāo)準(zhǔn)的二進(jìn)制流。

      步驟s160,并行執(zhí)行子任務(wù)。

      各個(gè)子進(jìn)程獲得主進(jìn)程分配的計(jì)算子任務(wù)之后,分別讀取需要操作的空間要素對(duì)象,并獨(dú)立完成疊加分析操作,在疊加分析完成之后,向主進(jìn)程發(fā)送子任務(wù)完成指令。

      步驟s170:主進(jìn)程歸并子任務(wù)的疊加結(jié)果

      具體而言,疊加結(jié)果的歸并過程包括以下幾方面的內(nèi)容:

      子任務(wù)結(jié)果數(shù)據(jù)序列化:

      在并行子任務(wù)執(zhí)行中,各個(gè)子進(jìn)程維護(hù)獨(dú)立的內(nèi)存空間,為實(shí)現(xiàn)不同子進(jìn)程之間的空間數(shù)據(jù)交互,將內(nèi)存中的空間數(shù)據(jù)對(duì)象序列化為標(biāo)準(zhǔn)二進(jìn)制流。例如,采用wkb(well-knownbinary)格式作為內(nèi)存數(shù)據(jù)交換的中間格式,序列化的處理過程是:首先,在首部存儲(chǔ)該段wkb的字節(jié)長(zhǎng)度,占用四個(gè)字節(jié);其次,存儲(chǔ)空間數(shù)據(jù)的類型,占用一個(gè)字節(jié);然后,存儲(chǔ)空間數(shù)據(jù)的數(shù)據(jù)規(guī)模,占用四個(gè)字節(jié);最后,依次存儲(chǔ)各個(gè)空間對(duì)象。該序列化編碼技術(shù)將wkb在被讀入數(shù)據(jù)接收方子進(jìn)程后,在wkb的前端追加四個(gè)字節(jié),以記錄該wkb的長(zhǎng)度。

      并行子任務(wù)歸并調(diào)度:

      在此實(shí)施例中,為了緩解主進(jìn)程的負(fù)載壓力,防止產(chǎn)生進(jìn)程枷鎖,造成負(fù)載不均,子任務(wù)的結(jié)果歸并遵循先計(jì)算完成先合并的原則。如圖5所示的對(duì)子進(jìn)程的調(diào)度示意圖,主進(jìn)程/主節(jié)點(diǎn)可指示先完成任務(wù)的子進(jìn)程作為數(shù)據(jù)接收方,后完成任務(wù)的子進(jìn)程作為數(shù)據(jù)發(fā)送方,即由先完成任務(wù)的子進(jìn)程接收來自于后完成任務(wù)的子進(jìn)程的疊加結(jié)果數(shù)據(jù),與自身的結(jié)果數(shù)據(jù)歸并之后,傳回主進(jìn)程。

      子任務(wù)結(jié)果歸并:

      子進(jìn)程獲取主進(jìn)程發(fā)送的歸并指令后,按照數(shù)據(jù)發(fā)送方或接收方的要求發(fā)送或接收指定進(jìn)程的數(shù)據(jù)。數(shù)據(jù)發(fā)送子進(jìn)程在完成發(fā)送任務(wù)后,經(jīng)主進(jìn)程消息確認(rèn)注銷,數(shù)據(jù)接收子進(jìn)程完成歸并任務(wù)后向主進(jìn)程發(fā)送任務(wù)完成消息,并進(jìn)入偵聽狀態(tài),等待主進(jìn)程進(jìn)一步調(diào)度。

      結(jié)果反序列化:

      主進(jìn)程在歸并任務(wù)完成之后,統(tǒng)一進(jìn)行wkb反序列化操作。首先,解析wkb字符串的長(zhǎng)度標(biāo)識(shí),然后解析對(duì)應(yīng)后續(xù)的wkb內(nèi)容,再獲取下一個(gè)wkb長(zhǎng)度標(biāo)識(shí)。按照字符串長(zhǎng)度標(biāo)識(shí)區(qū)分各個(gè)wkb段,依次完成反序列化解析,構(gòu)造空間要素,生成結(jié)果圖層。

      步驟s180:輸出最終的疊加圖層。

      最終的結(jié)果圖層數(shù)據(jù)可以存儲(chǔ)在空間數(shù)據(jù)庫(kù)中或以文件的形式存儲(chǔ),數(shù)據(jù)存儲(chǔ)格式包括shapefile,mysq和postgis等。

      本發(fā)明的疊加分析方法可以集成在arcgis、higis等gis軟件平臺(tái)以執(zhí)行各類空間疊加分析的任務(wù)。本發(fā)明的方法可以應(yīng)用于不同的并行環(huán)境,例如,單機(jī)多核和并行集群架構(gòu)。

      以上已經(jīng)描述了本發(fā)明的各實(shí)施例,上述說明是示例性的,并非窮盡性的,并且也不限于所披露的各實(shí)施例。在不偏離所說明的各實(shí)施例的范圍和精神的情況下,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說許多修改和變更都是顯而易見的。本文中所用術(shù)語(yǔ)的選擇,旨在最好地解釋各實(shí)施例的原理、實(shí)際應(yīng)用或?qū)κ袌?chǎng)中的技術(shù)改進(jìn),或者使本技術(shù)領(lǐng)域的其它普通技術(shù)人員能理解本文披露的各實(shí)施例。

      當(dāng)前第1頁(yè)1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1