一種顧及空間鄰近關(guān)系的矢量等高線數(shù)據(jù)劃分方法
【專利摘要】本發(fā)明公開了一種顧及空間鄰近關(guān)系的矢量等高線數(shù)據(jù)劃分方法。具體步驟如下:(1)讀取等高線數(shù)據(jù),定量統(tǒng)計(jì)等高線數(shù)據(jù)的特征;(2)計(jì)算每條等高線的最小外接矩形的中心點(diǎn)坐標(biāo),并用加上高程信息的三維點(diǎn)表示矢量等高線數(shù)據(jù);(3)設(shè)置并行計(jì)算的計(jì)算節(jié)點(diǎn)數(shù)K;(4)計(jì)算理想負(fù)載均衡狀態(tài)下每個(gè)計(jì)算節(jié)點(diǎn)的負(fù)載閾值,并計(jì)算負(fù)載閾值下限和負(fù)載閾值上限;(5)選取M(M=20K)個(gè)點(diǎn)作為初始聚類中心點(diǎn);(6)把點(diǎn)要素聚類為M個(gè)類簇;(7)重新計(jì)算M個(gè)類簇的中心點(diǎn)坐標(biāo);(8)用四元組表示M個(gè)類簇;(9)把四元組作為最小數(shù)據(jù)劃分單元,把M個(gè)四元組聚類為K個(gè)類簇;(10)結(jié)束。本發(fā)明不僅能滿足數(shù)據(jù)均衡原則,保證負(fù)載均衡,還能保證劃分的數(shù)據(jù)具有良好的空間聚集度。
【專利說明】一種顧及空間鄰近關(guān)系的矢量等高線數(shù)據(jù)劃分方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于地理信息和并行計(jì)算的交叉【技術(shù)領(lǐng)域】,特別是涉及一種對矢量等高線數(shù)據(jù)實(shí)現(xiàn)數(shù)據(jù)劃分和負(fù)載均衡的方法。
【背景技術(shù)】
[0002]隨著地理信息獲取技術(shù)的發(fā)展,空間數(shù)據(jù)規(guī)模的不斷擴(kuò)展,空間運(yùn)算復(fù)雜程度的不斷提高。同時(shí)人們要求GIS所求解的問題也越來越復(fù)雜,單一的GIS處理模式已經(jīng)不再適應(yīng)海量數(shù)據(jù)空間運(yùn)算的新需求,同時(shí)隨著硬件技術(shù)和新型應(yīng)用的不斷發(fā)展,并行計(jì)算系統(tǒng)得到快速發(fā)展,如多核體系結(jié)構(gòu)的發(fā)展、云計(jì)算模式出現(xiàn)、GPU軟硬技術(shù)的延伸,為并行GIS的發(fā)展提供了不可或缺的支持。有關(guān)文獻(xiàn):[I]陳國良等,并行計(jì)算的一體化研究現(xiàn)狀與發(fā)展趨勢[j].科學(xué)通報(bào),2009 (8):1043-1049.[2]Xia Y,LiY, Shi X.Parallel viewshed analysis on GPU using CUDA[C]//ComputationalScience and Optimization (CSO), 2010Third International Joint Conferenceon.1EEE, 2010,1:373-374.[0003]當(dāng)前,地理信息領(lǐng)域的并行算法設(shè)計(jì)主要是從任務(wù)分解和數(shù)據(jù)分解兩個(gè)角度進(jìn)行的。任務(wù)分解是根據(jù)算法的特征和并行計(jì)算環(huán)境的特點(diǎn),分析算法中可以并行的部分,對算法進(jìn)行全局和局部的并行化。數(shù)據(jù)分解是通過特定算法把數(shù)據(jù)劃分成一些小的數(shù)據(jù),然后再將計(jì)算關(guān)聯(lián)到所操作的數(shù)據(jù)上。一個(gè)良好的矢量等高線數(shù)據(jù)劃分算法應(yīng)遵循以下準(zhǔn)則:
[0004]( I)各個(gè)計(jì)算節(jié)點(diǎn)上數(shù)據(jù)量均衡
[0005]各個(gè)計(jì)算節(jié)點(diǎn)上的數(shù)據(jù)量應(yīng)該盡可能的相等,這樣才能保證每個(gè)計(jì)算節(jié)點(diǎn)的計(jì)算任務(wù)想當(dāng),使加速比達(dá)到最大。
[0006](2)劃分的空間數(shù)據(jù)有良好的聚集度
[0007]該準(zhǔn)則要求空間位置上鄰近的空間數(shù)據(jù)盡可能的劃分在相同的計(jì)算節(jié)點(diǎn)上,良好的空間聚集度能提高后期空間數(shù)據(jù)查詢的效率,同時(shí)也便于在單個(gè)節(jié)點(diǎn)上計(jì)算完成后進(jìn)行節(jié)點(diǎn)內(nèi)部數(shù)據(jù)的拓?fù)錂z查和修改,提高結(jié)果數(shù)據(jù)的準(zhǔn)確度。
[0008](3)各并行計(jì)算節(jié)點(diǎn)上的數(shù)據(jù)不相交
[0009]在對矢量等高線數(shù)據(jù)進(jìn)行劃分時(shí),各個(gè)計(jì)算節(jié)點(diǎn)上的數(shù)據(jù)子集的并集應(yīng)該是原始的等高線數(shù)據(jù)集,同時(shí)各個(gè)計(jì)算節(jié)點(diǎn)上的等高線數(shù)據(jù)集又不能有重疊的數(shù)據(jù)。否則產(chǎn)生的冗余數(shù)據(jù)不但影響計(jì)算的效率,而且會造成計(jì)算結(jié)果的不一致性。
[0010]現(xiàn)有的空間數(shù)據(jù)劃分方法主要有:0racle Spatial的基于坐標(biāo)值X或Y的范圍劃分法和基于坐標(biāo)值X和Y的范圍劃分法,這種劃分方法沒有考慮空間數(shù)據(jù)的相鄰性,可能把空間相鄰的數(shù)據(jù)劃分到不同的計(jì)算節(jié)點(diǎn)上。賈婷和劉潤濤等提出的基于κ-means聚類算法的空間數(shù)據(jù)劃分方法,該方法把保證了空間相鄰的數(shù)據(jù)劃分到相同的計(jì)算節(jié)點(diǎn),但是該方法不能保證每個(gè)計(jì)算節(jié)點(diǎn)上的數(shù)據(jù)量相對均衡。有關(guān)文獻(xiàn):[3]賈婷,魏祖寬,唐曙光,等.一種面向并行空間查詢的數(shù)據(jù)劃分方法[J].計(jì)算機(jī)科學(xué),2010,37 (008):198-200.[4]劉潤濤,安曉華,高曉爽.一種基于R-樹的空間索引結(jié)構(gòu)[J].ComputerEngineering, 2009, 35(23):32-34.
【發(fā)明內(nèi)容】
[0011]針對現(xiàn)有并行計(jì)算中矢量等高線數(shù)據(jù)劃分的局限性,結(jié)合并行計(jì)算領(lǐng)域的數(shù)據(jù)劃分方法提供一種顧及空間鄰近關(guān)系的矢量等高線數(shù)據(jù)劃分方法,不僅能滿足數(shù)據(jù)均衡原貝U,保證負(fù)載均衡,還能保證劃分的數(shù)據(jù)具有良好的空間聚集度,且算法時(shí)間復(fù)雜度低,實(shí)時(shí)性好。其研究成果也為分布式環(huán)境乃至云計(jì)算環(huán)境下的空間數(shù)據(jù)劃分提供重要的理論指導(dǎo)和技術(shù)方法支持。
[0012]本發(fā)明的技術(shù)解決方案為:
[0013]一種顧及空間鄰近關(guān)系的矢量等高線數(shù)據(jù)劃分方法,具體步驟如下:
[0014]步驟I,讀取矢量等高線數(shù)據(jù),定量統(tǒng)計(jì)等高線數(shù)據(jù)的特征;
[0015]步驟2,計(jì)算每條等高線的最小外接矩形的中心點(diǎn)坐標(biāo),并用具有高程信息的中心點(diǎn)要素表示對應(yīng)的等高線要素,用點(diǎn)要素來表示等高線要素;
[0016]步驟3,設(shè)置并行計(jì)算的計(jì)算節(jié)點(diǎn)數(shù)K ;
[0017]步驟4,計(jì)算理想負(fù)載均衡狀態(tài)下每個(gè)計(jì)算節(jié)點(diǎn)所接納的點(diǎn)數(shù),并設(shè)置負(fù)載閾值下限和負(fù)載閾值上限;
[0018]步驟5,選擇彼此距離盡可能遠(yuǎn)的M個(gè)點(diǎn)作為初始聚類中心點(diǎn),其中,M=20K,選取方法為:首先隨機(jī)選取第一個(gè)點(diǎn)作為第一個(gè)初始類簇中心點(diǎn),第二個(gè)點(diǎn)的選擇方法為距離第一個(gè)點(diǎn)距離最遠(yuǎn)的點(diǎn),然后再選取距離前兩個(gè)點(diǎn)距離最大的點(diǎn)作為第三個(gè)類簇的中心點(diǎn),以此類推,直到選出 初始M個(gè)類簇中心點(diǎn);
[0019]步驟6,計(jì)算所有點(diǎn)到M個(gè)類簇中心的距離,并把點(diǎn)歸到距離類簇中心距離最短的聚類中,形成M個(gè)類簇;
[0020]步驟7,重新計(jì)算M個(gè)類簇的中心點(diǎn)坐標(biāo);
[0021]步驟8,用M個(gè)四元組C〈ID, C_p, Line_Col, P_num>表示M個(gè)類簇,并把四元組作為數(shù)據(jù)劃分的最小單位。其中ID為類簇ID號,C_p為該類簇中心點(diǎn),Line_Col為該類簇所包含的點(diǎn)要素對應(yīng)的線要素的ID集合,P_num為Line_Col集合中的ID號對應(yīng)的線要素所包含的點(diǎn)之和;
[0022]步驟9,從M個(gè)四元組中選擇彼此距離盡可能遠(yuǎn)的K個(gè)點(diǎn)作為聚類中心點(diǎn);
[0023]步驟10,計(jì)算所有M個(gè)四元組的中心點(diǎn)C_p到K個(gè)聚類中心點(diǎn)的距離,把四元組歸到距離聚類中心點(diǎn)距離最短的聚類中,形成K個(gè)類簇;
[0024]步驟11,重新計(jì)算K個(gè)類簇的中心點(diǎn)坐標(biāo);
[0025]步驟12,重新計(jì)算每個(gè)四元組中的點(diǎn)到K個(gè)類簇中心點(diǎn)的距離,對于任意一個(gè)四元組,如果其點(diǎn)與當(dāng)前所屬類簇中心點(diǎn)的距離不是最小,并且當(dāng)前所屬類簇中包含數(shù)據(jù)量大于閾值上限,則將該四元組放入距離最近的中心點(diǎn)所在的類簇中,否則該四元組所屬類簇不變;
[0026]步驟13,重復(fù)執(zhí)行步驟11和步驟12,直到滿足預(yù)設(shè)的迭代停止條件;
[0027]步驟14,結(jié)束。
[0028]本發(fā)明的技術(shù)特點(diǎn)及有益效果:本發(fā)明總體上具有簡單、自動(dòng)化、智能化的特點(diǎn),相對于目前在實(shí)際工程中應(yīng)用廣泛應(yīng)用的各種矢量線要素?cái)?shù)據(jù)劃分方法,本發(fā)明主要解決的問題有:
[0029](I)針對矢量線要素?cái)?shù)據(jù)的特點(diǎn),利用矢量等高線要素最小外接矩形的中心點(diǎn)坐標(biāo)加上高程信息構(gòu)成的三維點(diǎn)數(shù)據(jù)表示矢量等高線數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)降緯處理,降低了數(shù)據(jù)劃分的難度;
[0030](2) K-means聚類算法具有族內(nèi)數(shù)據(jù)具有較好的相似度而族間的數(shù)據(jù)具有較低的相似度的特點(diǎn),本發(fā)明利用K-means聚類算法這一特性,并對其進(jìn)行改進(jìn),利用其來指導(dǎo)空間數(shù)據(jù)劃分,保證空間位置鄰近的數(shù)據(jù)盡可能的劃分到相同的計(jì)算節(jié)點(diǎn)上;
[0031](3)本發(fā)明首先把降緯處理后的點(diǎn)數(shù)據(jù)聚類為20K (K為并行計(jì)算節(jié)點(diǎn)數(shù))個(gè)類簇,并用四元組來表示這20K個(gè)類簇,把四元組中包含的點(diǎn)數(shù)據(jù)作為數(shù)據(jù)劃分的基本單位,增大了數(shù)據(jù)劃分的粒度,提高了算法的效率;
[0032](4)本發(fā)明不僅為推動(dòng)矢量線要素劃分技術(shù)的發(fā)展,豐富相關(guān)研究的內(nèi)容與方法。其研究成功也為分布式技術(shù)乃至云計(jì)算環(huán)境下的空間數(shù)據(jù)劃分提供重要的理論指導(dǎo)和技術(shù)方法支持。
【專利附圖】
【附圖說明】
[0033]圖1為本發(fā)明一種顧及空間鄰近關(guān)系的矢量等高線數(shù)據(jù)劃分方法流程圖。
【具體實(shí)施方式】
[0034]以下結(jié)合幅圖,對本發(fā)明的顧及空間鄰近關(guān)系的矢量等高線數(shù)據(jù)劃分方法的【具體實(shí)施方式】作詳細(xì)說明。
[0035]本發(fā)明顧及空間鄰近關(guān)系的矢量等高線數(shù)據(jù)劃分方法,其所用的基本變量如表I所示。
[0036]表I矢量等高線數(shù)據(jù)劃分方法變量描述
[0037]
【權(quán)利要求】
1.一種顧及空間鄰近關(guān)系的矢量等高線數(shù)據(jù)劃分方法,其特征在于,具體步驟如下: 步驟I,讀取矢量等高線數(shù)據(jù),定量統(tǒng)計(jì)等高線數(shù)據(jù)的特征; 步驟2,計(jì)算每條等高線的最小外接矩形的中心點(diǎn)坐標(biāo),并用具有高程信息的中心點(diǎn)要素表示對應(yīng)的等高線要素,用點(diǎn)要素來表示等高線要素; 步驟3,設(shè)置并行計(jì)算的計(jì)算節(jié)點(diǎn)數(shù)K ; 步驟4,計(jì)算理想負(fù)載均衡狀態(tài)下每個(gè)計(jì)算節(jié)點(diǎn)所接納的點(diǎn)數(shù),并設(shè)置負(fù)載閾值下限和負(fù)載閾值上限; 步驟5,選擇彼此距離盡可能遠(yuǎn)的M個(gè)點(diǎn)作為初始聚類中心點(diǎn),其中,M=20K,選取方法為:首先隨機(jī)選取第一個(gè)點(diǎn)作為第一個(gè)初始類簇中心點(diǎn),第二個(gè)點(diǎn)的選擇方法為距離第一個(gè)點(diǎn)距離最遠(yuǎn)的點(diǎn),然后再選取距離前兩個(gè)點(diǎn)距離最大的點(diǎn)作為第三個(gè)類簇的中心點(diǎn),以此類推,直到選出初始M個(gè)類簇中心點(diǎn); 步驟6,計(jì)算所有點(diǎn)到M個(gè)類簇中心的距離,并把點(diǎn)歸到距離類簇中心距離最短的聚類中,形成M個(gè)類簇; 步驟7,重新計(jì)算M個(gè)類簇的中心點(diǎn)坐標(biāo); 步驟8,用M個(gè)四元組C〈ID, C_p, Line_Col, P_num>表示M個(gè)類簇,并把四元組作為數(shù)據(jù)劃分的最小單位;其中ID為類簇ID號,C_p為該類簇中心點(diǎn),Line_Col為該類簇所包含的點(diǎn)要素對應(yīng)的線要素的ID集合,P_num為Line_Col集合中的ID號對應(yīng)的線要素所包含的點(diǎn)之和; 步驟9,從M個(gè)四元組中選擇彼此距離盡可能遠(yuǎn)的K個(gè)點(diǎn)作為聚類中心點(diǎn); 步驟10,計(jì)算所有M個(gè)四元組的中心點(diǎn)C_p到K個(gè)聚類中心點(diǎn)的距離,把四元組歸到距離聚類中心點(diǎn)距離最短的聚類中,形成K個(gè)類簇; 步驟11,重新計(jì)算K個(gè)類簇的中心點(diǎn)坐標(biāo); 步驟12,重新計(jì)算每個(gè)四元組中的點(diǎn)到K個(gè)類簇中心點(diǎn)的距離,對于任意一個(gè)四元組,如果其點(diǎn)與當(dāng)前所屬類簇中心點(diǎn)的距離不是最小,并且當(dāng)前所屬類簇中包含數(shù)據(jù)量大于閾值上限,則將該四元組放入距離最近的中心點(diǎn)所在的類簇中,否則該四元組所屬類簇不變; 步驟13,重復(fù)執(zhí)行步驟11和步驟12,直到滿足預(yù)設(shè)的迭代停止條件; 步驟14,結(jié)束。
2.根據(jù)權(quán)利要求1所述的一種顧及空間鄰近關(guān)系的矢量等高線數(shù)據(jù)劃分方法,其特征在于, 所述步驟5中,距離的計(jì)算方法為: (a)首先將各個(gè)點(diǎn)的坐標(biāo)值映射到[0,I]區(qū)間,映射公式為:
【文檔編號】G06F17/30GK103778191SQ201410004177
【公開日】2014年5月7日 申請日期:2014年1月3日 優(yōu)先權(quán)日:2014年1月3日
【發(fā)明者】沈婕, 朱偉, 吳鵬, 尹子鶴 申請人:南京師范大學(xué)