線目標間拓撲關(guān)系并行計算方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001 ]本發(fā)明屬于地理信息技術(shù)領(lǐng)域,尤其是涉及一種能夠?qū)A烤€目標數(shù)據(jù)進行線目 標間拓撲關(guān)系并行計算方法及系統(tǒng)。
【背景技術(shù)】
[0002] 隨著空間信息獲取技術(shù)更加成熟,空間數(shù)據(jù)的數(shù)據(jù)量急速增加。如何將這些海量、 超海量空間數(shù)據(jù)應(yīng)用于地學(xué)計算,快速的得到處理從而獲得更有價值的信息,已經(jīng)成為現(xiàn) 今地理信息系統(tǒng)技術(shù)創(chuàng)新的熱點。隨著并行計算機越來越普及,并行技術(shù)的逐步成熟,并行 計算已經(jīng)成為解決快速處理大數(shù)據(jù)問題的主流手段。在數(shù)據(jù)量巨大的地學(xué)領(lǐng)域,依靠并行 計算機的強大處理能力已經(jīng)毫無疑問地成為滿足加速需求的最優(yōu)選擇,由此應(yīng)運而生的地 學(xué)算法并行化改造,也必然成為大數(shù)據(jù)時代的重點和難點。
[0003] 從基于CPU多核的并行到CPU+GPU的異構(gòu)并行,硬件產(chǎn)品的更新?lián)Q代對傳統(tǒng)地學(xué)計 算算法的并行化產(chǎn)生了重大的影響。CPU的邏輯處理能力強,而GPU數(shù)學(xué)計算性能強大,大規(guī) 模并行處理機制強大。將兩者結(jié)合成為一個異構(gòu)平臺,發(fā)揮各自的特長,是并行計算的發(fā)展 趨勢。在具有如此強大計算能力的架構(gòu)平臺上,對原有的地學(xué)計算進行并行化改造,以實現(xiàn) 超海量空間數(shù)據(jù)加速處理,是一項極其有意義的工作。
[0004] 目前,在諸多開源的GIS代碼庫中,幾乎全部使用plane sweep算法及其衍生算法 獲取兩個幾何體間的拓撲關(guān)系信息。但由于plane sweep算法其本身的逐一掃描特性,致使 其無法適應(yīng)并行化加速改造,也因此無法移植到異構(gòu)多核架構(gòu)上。為解決上述問題,需要從 可以實現(xiàn)數(shù)據(jù)并行的方面入手,構(gòu)建一套全新的并行計算技術(shù)方案。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明目的在于提供一種線目標間拓撲關(guān)系并行計算方法及系統(tǒng),以能夠充分利 用異構(gòu)多核架構(gòu)強大的并行計算能力,加速海量線目標數(shù)據(jù)間拓撲關(guān)系計算,解決現(xiàn)有技 術(shù)中的拓撲關(guān)系計算技術(shù)方案不具備并行化改造條件、無法適應(yīng)異構(gòu)多核架構(gòu)的缺陷。
[0006] 本發(fā)明提供的技術(shù)方案如下:
[0007] -種線目標間拓撲關(guān)系并行計算方法,包括:
[0008] 遍歷提取線目標圖層中的線段信息,分析并輸出線段組合的拓撲關(guān)系;
[0009 ]對拓撲結(jié)內(nèi)直線段的排列進行分析,確定并輸出該拓撲結(jié)內(nèi)的局部拓撲關(guān)系;
[0010] 按照拓撲結(jié)順序依次確定對應(yīng)的局部拓撲關(guān)系,形成拓撲鏈,通過拓撲鏈描述線 目標間拓撲關(guān)系。
[0011] 較佳的,所述的線目標間拓撲關(guān)系并行計算方法,還包括:
[0012] 獲取至少兩個線目標圖層的數(shù)據(jù),計算分析該至少兩個線目標圖層之間線段的相 交情況;
[0013] 循環(huán)遍歷該至少兩個線目標圖層中的線目標數(shù)據(jù)、并計算對應(yīng)的拓撲鏈。
[0014] 較佳的,所述分析并輸出線段組合的拓撲關(guān)系,包括:
[0015] 記錄非相離的線段組合,并排除相離的線段組合。
[0016] 較佳的,所述對拓撲結(jié)內(nèi)其組成直線段的排列進行分析之前,還包括:
[0017]將非相離關(guān)系的線段對排序;
[0018] 獲取首尾相接的非相離的線段對。
[0019] 較佳的,所述確定并輸出該拓撲結(jié)內(nèi)的局部拓撲關(guān)系,包括:
[0020] 局部交叉關(guān)系的判斷、局部相接關(guān)系的判斷以及局部部分交疊關(guān)系的判斷。
[0021 ]較佳的,所述局部部分交疊關(guān)系的判斷,包括:
[0022]內(nèi)部疊置關(guān)系判斷、首端點疊置關(guān)系判斷以及末端點疊置關(guān)系判斷。
[0023] 相應(yīng)于上述方法本申請還提供了一種線目標間拓撲關(guān)系并行計算系統(tǒng),包括:
[0024] 線段間拓撲關(guān)系計算模塊,用于遍歷提取線目標圖層中的線段信息,分析并輸出 線段組合的拓撲關(guān)系;
[0025] 局部拓撲關(guān)系分析模塊,用于對拓撲結(jié)內(nèi)直線段的排列進行分析,確定并輸出該 拓撲結(jié)內(nèi)的局部拓撲關(guān)系;
[0026] 拓撲鏈組合模塊,用于按照拓撲結(jié)順序依次確定對應(yīng)的局部拓撲關(guān)系,形成拓撲 鏈,通過拓撲鏈描述線目標間拓撲關(guān)系。
[0027] 較佳的,所述線目標間拓撲關(guān)系并行計算系統(tǒng),還包括:
[0028] 圖層間線目標拓撲關(guān)系計算模塊,用于獲取至少兩個線目標圖層的數(shù)據(jù),計算分 析該至少兩個線目標圖層之間線段的相交情況,以及循環(huán)遍歷該至少兩個線目標圖層中的 線目標數(shù)據(jù)、并計算對應(yīng)的拓撲鏈。
[0029]較佳的,所述的線目標間拓撲關(guān)系并行計算系統(tǒng)中,所述局部拓撲關(guān)系分析模塊, 包括:
[0030]局部交叉關(guān)系判斷單元、局部相接關(guān)系判斷單元以及局部部分交疊關(guān)系判斷單 J L· 〇
[0031 ]較佳的,所述局部部分交疊關(guān)系判斷單元中,包括:
[0032] 內(nèi)部疊置關(guān)系判斷組件、首端點疊置關(guān)系判斷組件以及末端點疊置關(guān)系判斷組 件。
[0033] 本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點在于:本發(fā)明提供的上述線目標間拓撲關(guān)系并行計 算方法和系統(tǒng),通過對線目標拓撲關(guān)系計算方法的并行化改造,使其可以充分利用并行加 速處理得到的線段相交情況,獲得空間關(guān)系查詢結(jié)果;在上述改進的基礎(chǔ)上,本方案可以采 用異構(gòu)(如CPU+GPU)多核架構(gòu)作為并行計算硬件架構(gòu),利用其強大的并行處理能力,快速處 理線目標數(shù)據(jù)的線段相交情況,為后續(xù)的線目標間空間關(guān)系查詢提高效率;本方案可以最 大限度的發(fā)揮硬件設(shè)備的并行計算效率,在數(shù)據(jù)規(guī)模龐大的情況下,提高線目標數(shù)據(jù)的拓 撲關(guān)系計算速度,并保證其準確性。
【附圖說明】
[0034] 圖1為實施例一提供的線目標間拓撲關(guān)系并行計算方法流程示意圖;
[0035] 圖2為實施例一提供的線段相交種類示意圖;
[0036] 圖3為實施例一提供的線段對排序示意圖;
[0037]圖4為實施例一提供的線目標間拓撲關(guān)系不意圖;
[0038] 圖5為實施例三提供的線目標間拓撲關(guān)系并行計算系統(tǒng)組成示意圖。
【具體實施方式】
[0039] 本發(fā)明的目的在于提供一種線目標間拓撲關(guān)系并行計算方法及系統(tǒng),以能夠充分 利用異構(gòu)多核架構(gòu)強大的并行計算能力,加速海量線目標數(shù)據(jù)間拓撲關(guān)系計算,解決現(xiàn)有 技術(shù)中的拓撲關(guān)系計算技術(shù)方案不具備并行化改造條件、無法適應(yīng)異構(gòu)多核架構(gòu)的缺陷。
[0040] 為了更準確簡介的介紹本發(fā)明實施例的技術(shù)方案,首先對如下基本概念進行定義 和解釋說明。
[0041 ]拓撲結(jié):兩線目標的連通部件定義為拓撲結(jié);
[0042] 拓撲環(huán):相鄰?fù)負浣Y(jié)間非連通部件定義為拓撲環(huán);
[0043] 拓撲鏈:兩線目標是由拓撲結(jié)和拓撲環(huán)順次相連形成的有向鏈;
[0044] 拓撲單元:將兩個線目標這種由相離到相交再到相離的區(qū)域定義為拓撲單元,如 果兩個線目標在至少一個線目標的端點處部分疊置,則將兩線目標由相交到相離(首端點) 或由相離到相交(末端點)的區(qū)域定義為拓撲單元;
[0045] 局部拓撲關(guān)系:拓撲單元所確定的關(guān)系定義為局部拓撲關(guān)系;兩個線目標之間的 交分為零維交、一維交兩類。零維交對應(yīng)著交叉和相接兩種拓撲關(guān)系。如果兩線目標交的次 數(shù)大于1,則一維交的鄰域必然存在兩線目標相離部分,其確定的拓撲關(guān)系必然為部分疊置 關(guān)系,由此可以得出結(jié)論:兩個具有多次交的線目標間只可能存在交叉、部分疊置和相接三 種局部拓撲關(guān)系。
[0046] 下面結(jié)合附圖對本發(fā)明進行詳細說明:
[0047] 實施例一:
[0048] 本實施例提供了一種線目標間拓撲關(guān)系并行計算方法,如圖1所示,為該方法的流 程示意圖,具體包括以下步驟:
[0049] 步驟S101,遍歷提取線目標圖層中的線段信息,分析并輸出線段組合的拓撲關(guān)系;
[0050] 本步驟主要用于實現(xiàn)線段間拓撲關(guān)系計算,具體的:
[0051]對于輸入的一個或者多個海量線目標圖層,分別遍歷提取所述海量線目標圖層中 線目標的線段信息。如果存在多個圖層,則將不屬于同一圖層的獨立線段兩兩組合。
[0052] 本步驟可以利用異構(gòu)的并行計算技術(shù)(如CPU+GPU架構(gòu),通過CPU實現(xiàn)邏輯處理,通 過GPU實現(xiàn)數(shù)學(xué)計算),對所有線段組合進行并行分析,得到所有組合的拓撲關(guān)系。分析過程 中記錄所有非相離的線段組合,排除相離的線段組合。
[0053] 對于所有非相離的線段組合(即相交的線段組合),線段相交種類分為六類,如圖2 所示包括:(1)交叉(Cross)、(2)相等(Equal)、(3)包含(In)、(4)部分疊置(Overlap)、(5)端 點相接(End-Meet)、(6)內(nèi)部相接(In-Meet);最終輸出所有非相離的線段組合的拓撲關(guān)系, 供后續(xù)局部拓撲關(guān)系分析步驟S102調(diào)用。
[0054] 步驟S102,對拓撲結(jié)內(nèi)直線段的排列進行分析,