針對(duì)海量地形大數(shù)據(jù)點(diǎn)云的總分式三角網(wǎng)多線程并行生成方法
【專利摘要】本發(fā)明公開了一種針對(duì)海量地形大數(shù)據(jù)點(diǎn)云的總分式三角網(wǎng)多線程并行生成方法,該方法首先提出自適應(yīng)網(wǎng)格空間分割,實(shí)現(xiàn)海量點(diǎn)云數(shù)據(jù)的規(guī)模均衡網(wǎng)格分布;通過建立網(wǎng)格內(nèi)點(diǎn)數(shù)據(jù)空間的距中排序規(guī)則,合理部署網(wǎng)格內(nèi)中央點(diǎn)的參與構(gòu)TIN的先后順序;按總分方式優(yōu)先運(yùn)用傳統(tǒng)構(gòu)TIN的查找插入法、拓?fù)洳迦胨惴ㄊ紫葘?shí)現(xiàn)網(wǎng)格間的點(diǎn)數(shù)據(jù)建模,避免分治建模算法復(fù)雜低效的網(wǎng)格間合并過程;建立網(wǎng)格的拓?fù)溟]包檢測機(jī)制,分別針對(duì)各個(gè)空間網(wǎng)格,適時(shí)啟動(dòng)獨(dú)立并行的多線程對(duì)余下的構(gòu)模點(diǎn)按傳統(tǒng)的拓?fù)洳迦胨惴ㄟM(jìn)行建模,從而并行高效地、由總到分地完成整個(gè)空間下的三角網(wǎng)建模工作。本發(fā)明顯著提高了針對(duì)海量點(diǎn)云大數(shù)據(jù)的空間建模支持能力。
【專利說明】針對(duì)海量地形大數(shù)據(jù)點(diǎn)云的總分式三角網(wǎng)多線程并行生成 方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及工程仿真【技術(shù)領(lǐng)域】,具體地指一種針對(duì)海量地形大數(shù)據(jù)點(diǎn)云的總分式 三角網(wǎng)多線程并行生成方法。
【背景技術(shù)】
[0002] 學(xué)術(shù)上認(rèn)可的Delaunay三角網(wǎng)構(gòu)模的主流方法包括逐點(diǎn)插入法、生長法及分 治-綜合法。其中分治-綜合法要以前兩者為基礎(chǔ)方法展開,而在兩種基礎(chǔ)方法中最成熟 通用的三角網(wǎng)構(gòu)模方法為逐點(diǎn)插入法,但該方法只適用于小規(guī)模點(diǎn)數(shù)據(jù)建模。
[0003] 介紹插入法構(gòu)建三角網(wǎng)技術(shù)的中外專業(yè)文獻(xiàn)非常多,其中《快速構(gòu)建三角網(wǎng)數(shù)字 地形模型方法的研究》(2001. 12,蒲浩,中國鐵道科學(xué))不僅簡要地介紹了此方法,并給出 了插入點(diǎn)影響域的定義與確立方法,這一概念及方法在本發(fā)明中予以引用。
[0004] 三角網(wǎng)構(gòu)模算法最大的問題是計(jì)算的時(shí)間復(fù)雜性,由于每個(gè)三角網(wǎng)的形成都涉及 所有待處理的點(diǎn),且難于通過簡單的分塊或排序予以徹底解決。點(diǎn)越多,問題越突出,因此 對(duì)海量空間點(diǎn)的建模一直是一個(gè)復(fù)雜的難題,此前最理想的解決方法就是采用分治-綜合 建模方法,涌現(xiàn)了許多學(xué)術(shù)成果如《快速構(gòu)建Delaunay三角網(wǎng)算法研究》(2001. 10,宋占 鋒,鐵道學(xué)報(bào)),其基本思想仍然是空間分割+網(wǎng)格內(nèi)插入法構(gòu)建子三角網(wǎng)+網(wǎng)格綜合。但 是主要的困難是網(wǎng)格綜合的復(fù)雜度既影響構(gòu)模的穩(wěn)定性,同時(shí)也增加了額外的網(wǎng)格綜合時(shí) 間銷耗。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的就是要提供一種針對(duì)海量地形大數(shù)據(jù)點(diǎn)云的總分式三角網(wǎng)多線 程并行生成方法,本方法充分引用當(dāng)前先進(jìn)的多線程編程技術(shù)到傳統(tǒng)算法實(shí)現(xiàn)中,與分 治-綜合方法相反,是一種新型的總分式空間建模方法,它由整體空間的采樣建模再到局 部網(wǎng)格的臨近細(xì)節(jié)建模,實(shí)現(xiàn)了先整體、后局部的分化建模,從而避免了網(wǎng)格之間復(fù)雜的綜 合過程,并運(yùn)用多線程技術(shù)高效地實(shí)現(xiàn)了網(wǎng)格的并行獨(dú)立分布化完善建模。
[0006] 為實(shí)現(xiàn)此目的,本發(fā)明所設(shè)計(jì)的針對(duì)海量地形大數(shù)據(jù)點(diǎn)云的總分式三角網(wǎng)多線程 并行生成方法,其特征在于,它包括如下步驟:
[0007] 步驟1 :對(duì)海量點(diǎn)云數(shù)據(jù)進(jìn)行給定規(guī)模的自適應(yīng)網(wǎng)格劃分,使得每一網(wǎng)格內(nèi)的點(diǎn) 數(shù)限定在預(yù)設(shè)的數(shù)量LN內(nèi)(LN表示網(wǎng)格的限制點(diǎn)數(shù),如LN= 1000),即網(wǎng)格之間無縫無疊 地覆蓋整個(gè)點(diǎn)云數(shù)據(jù)空間;
[0008] 步驟2 :對(duì)每一個(gè)網(wǎng)格內(nèi)的點(diǎn)按點(diǎn)距離網(wǎng)格中央的距離,由遠(yuǎn)及近地進(jìn)行排序,這 樣網(wǎng)格內(nèi)點(diǎn)隊(duì)列的最后一個(gè)點(diǎn)就一定是距離網(wǎng)格中央最近的點(diǎn),稱為中央點(diǎn);將中央點(diǎn)移 動(dòng)至網(wǎng)格點(diǎn)隊(duì)列的最前面;
[0009] 步驟3 :按網(wǎng)格里包含點(diǎn)的數(shù)量從小到大對(duì)所有網(wǎng)格進(jìn)行排序,同時(shí)標(biāo)注各個(gè)網(wǎng) 格中待構(gòu)模點(diǎn)數(shù)RN為點(diǎn)列隊(duì)中點(diǎn)的數(shù)量;
[0010] 步驟4 :從網(wǎng)格隊(duì)列中第一個(gè)待構(gòu)模點(diǎn)數(shù)RN>0的網(wǎng)格開始,依次從每一個(gè)網(wǎng)格的 點(diǎn)隊(duì)列中取出第i個(gè)點(diǎn),其中〇 <i〈LN,用查找插入法構(gòu)建初級(jí)的均衡的三角網(wǎng),當(dāng)網(wǎng)格中 的一個(gè)點(diǎn)參加構(gòu)模后,該網(wǎng)格的待構(gòu)模點(diǎn)數(shù)RN減1 ;如此對(duì)所有網(wǎng)格重復(fù)操作K次,完成各 個(gè)網(wǎng)格前K個(gè)點(diǎn)的插入法構(gòu)模(1彡K〈LN,通??扇= 4, 5, 6較適宜);
[0011] 步驟5 :在每一個(gè)網(wǎng)格中完成第K個(gè)點(diǎn)的查找插入法構(gòu)模時(shí),同時(shí)在插入法新增加 的三角形中找到一個(gè)以該網(wǎng)格中央點(diǎn)為頂點(diǎn)的三角形,作為該網(wǎng)格進(jìn)行拓?fù)錂z索的起始三 角形予以記錄;
[0012] 步驟6 :對(duì)網(wǎng)格隊(duì)列中余下第i個(gè)點(diǎn)的插入(K〈i彡LN)構(gòu)模,根據(jù)標(biāo)記的起始三 角形,利用既有三角網(wǎng)的拓?fù)潢P(guān)系采用重心趨近方向搜索方法定位點(diǎn)所對(duì)應(yīng)的三角形,按 插入法構(gòu)模,單個(gè)點(diǎn)插入后同樣在新生成的三角形中找到一個(gè)以網(wǎng)格中央點(diǎn)為頂點(diǎn)的三角 形作為新的起始三角形,這樣能夠保證后續(xù)點(diǎn)的插入構(gòu)模效率不會(huì)因?yàn)槿蔷W(wǎng)的增加而變 低;依次對(duì)每一個(gè)網(wǎng)格完成第i點(diǎn)的插入構(gòu)模后再次循環(huán)完成i=i+Ι個(gè)點(diǎn)的構(gòu)模,直至所 有網(wǎng)格的所有點(diǎn)均參與構(gòu)模,主線程算法完成。
[0013] 步驟7 :在步驟6網(wǎng)格的第i點(diǎn)插入過程完成后,對(duì)該網(wǎng)格進(jìn)行影響域閉合檢測判 斷,判斷方法為:
[0014] 檢索以網(wǎng)格中央點(diǎn)為頂點(diǎn)的所有三角形,如果三角形鄰接三角形的所有頂點(diǎn)均位 于本網(wǎng)格內(nèi),可認(rèn)為后續(xù)插值點(diǎn),即i=i+ι個(gè)點(diǎn)的影響域在網(wǎng)格區(qū)域內(nèi)閉合,且不存在與 其它網(wǎng)格三角形的共享并發(fā)沖突,因而可以采用一個(gè)獨(dú)立的線程對(duì)余下所有插值點(diǎn)進(jìn)行獨(dú) 立插入法構(gòu)網(wǎng),進(jìn)入步驟8啟動(dòng)一個(gè)新線程對(duì)網(wǎng)格余下點(diǎn)進(jìn)行獨(dú)立構(gòu)模;
[0015] 步驟8 :將以中央點(diǎn)為頂點(diǎn)的所有三角形及其鄰接三角形,作為網(wǎng)格的私有初始 三角形,連同后續(xù)插值點(diǎn)交由獨(dú)立的插入法構(gòu)網(wǎng)程序完成建模操作,獨(dú)立線程的數(shù)據(jù)來源 均由網(wǎng)格私有,外圍拓?fù)淙切我怨蚕碓L問方式共享給所有獨(dú)立線程,獨(dú)立線程起動(dòng)后,待 構(gòu)模點(diǎn)數(shù)RN= 0,不再同時(shí)參加步驟6的檢索插值過程;
[0016] 步驟9 :針對(duì)海量地形大數(shù)據(jù)點(diǎn)云的總分式三角網(wǎng)多線程并行生成算法處理結(jié)束 的標(biāo)志為步驟6的所有網(wǎng)格中的所有點(diǎn)均插入處理完成并且多線程隊(duì)列同時(shí)為空。
[0017] 本發(fā)明通過引入中央點(diǎn)概念及局部距中排序規(guī)則,采用網(wǎng)格遍歷逐點(diǎn)插入實(shí)現(xiàn)區(qū) 域均衡構(gòu)網(wǎng)與物理空間的邏輯分割,充分結(jié)合查找插入法、拓?fù)洳迦敕ǜ髯缘膬?yōu)劣勢,引入 網(wǎng)格的起始三角形,分階段地將不同的方法結(jié)合起來應(yīng)用,具備其它算法所不具備的綜合 優(yōu)勢。同時(shí)運(yùn)用新的編程技術(shù),建立了局部邏輯閉合區(qū)域的檢測機(jī)制,運(yùn)用多線程并行運(yùn) 算技術(shù)實(shí)現(xiàn)了網(wǎng)格塊的獨(dú)立局部建模,顯著提高了針對(duì)海量點(diǎn)云大數(shù)據(jù)的空間建模支持能 力。本發(fā)明由整體空間的采樣建模再到局部網(wǎng)格的臨近細(xì)節(jié)建模,實(shí)現(xiàn)了先整體、后局部的 分化建模,從而避免了網(wǎng)格之間復(fù)雜的綜合過程,并運(yùn)用多線程技術(shù)高效地實(shí)現(xiàn)了網(wǎng)格的 并行獨(dú)立分布化完善建模。
[0018] 本發(fā)明的有益效果為:
[0019] 1、本發(fā)明能夠顯著提升傳統(tǒng)地形數(shù)據(jù)建模的吞吐量,有利于實(shí)現(xiàn)更大區(qū)域的實(shí)時(shí) 整體建模,有利于實(shí)現(xiàn)更精細(xì)數(shù)據(jù)的細(xì)節(jié)建模;
[0020] 2、本發(fā)明算法實(shí)現(xiàn)簡單、運(yùn)行穩(wěn)定,有益于對(duì)空間大數(shù)據(jù)的流式漸進(jìn)建模;
[0021] 3、本發(fā)明能夠?yàn)閿?shù)字區(qū)域、數(shù)字城市、數(shù)字地球提供強(qiáng)有力的數(shù)據(jù)整合建模,對(duì)大 型工程的數(shù)字化實(shí)現(xiàn)提供了非常現(xiàn)實(shí)的實(shí)現(xiàn)手段。
【專利附圖】
【附圖說明】
[0022] 圖1為本發(fā)明的流程框圖;
[0023] 圖2為本發(fā)明中三角網(wǎng)建模并行獨(dú)立線程處理流程框圖;
[0024] 圖3為本發(fā)明中自適應(yīng)網(wǎng)格劃分圖;
[0025] 圖4為本發(fā)明中查找插入法建立的初級(jí)三角網(wǎng);
[0026] 圖5為本發(fā)明中三角網(wǎng)建模插值到i= 20時(shí)效果圖;
[0027] 圖6為本發(fā)明中三角網(wǎng)建模插值到i= 50時(shí)效果圖;
[0028] 圖7為本發(fā)明中三角網(wǎng)建模插值到i= 100時(shí)效果圖;
[0029] 圖8為本發(fā)明中三角網(wǎng)建模插值到i= 200時(shí)效果圖;
【具體實(shí)施方式】
[0030] 以下結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說明:
[0031] 如圖1所示的針對(duì)海量地形大數(shù)據(jù)點(diǎn)云的總分式三角網(wǎng)多線程并行生成方法,它 包括如下步驟:
[0032] 步驟1 :對(duì)海量點(diǎn)云數(shù)據(jù)進(jìn)行給定規(guī)模的自適應(yīng)網(wǎng)格劃分,使得每一網(wǎng)格內(nèi)的網(wǎng) 格點(diǎn)數(shù)限定在預(yù)設(shè)的數(shù)量內(nèi)(根據(jù)總點(diǎn)數(shù)/最大限制點(diǎn)數(shù)算一個(gè)大概的頂級(jí)網(wǎng)格數(shù),并根 據(jù)區(qū)域長寬比確定頂級(jí)網(wǎng)格的橫向、縱向個(gè)數(shù)。這樣就確定了頂點(diǎn)網(wǎng)格數(shù),但有的網(wǎng)格可能 一個(gè)點(diǎn)也不包括,有的點(diǎn)會(huì)超過最大限制點(diǎn)數(shù),一個(gè)點(diǎn)也不包括的網(wǎng)格會(huì)自動(dòng)過濾掉,點(diǎn)數(shù) 超過了最大點(diǎn)數(shù)的網(wǎng)格又會(huì)繼續(xù)再細(xì)分網(wǎng)格);如圖3所示;
[0033] 這種自適應(yīng)網(wǎng)格不是傳統(tǒng)的四叉樹均分網(wǎng)格,其劃分是假定點(diǎn)是均勻分布,按照 總共需要的子網(wǎng)塊數(shù)及空間的縱橫比來確立。以規(guī)模上限LN= 200為例,當(dāng)一個(gè)網(wǎng)格里的 點(diǎn)數(shù)大于200時(shí),該網(wǎng)格需要平均地分為CXR個(gè)子網(wǎng)格,結(jié)合網(wǎng)格的空間大?。ňW(wǎng)格寬Gw、 網(wǎng)格長Gh)與點(diǎn)集規(guī)模N,C與R的計(jì)算規(guī)則如下:
[0034]
【權(quán)利要求】
1. 一種針對(duì)海量地形大數(shù)據(jù)點(diǎn)云的總分式三角網(wǎng)生成方法,其特征在于,它包括如下 步驟: 步驟1 :對(duì)海量點(diǎn)云數(shù)據(jù)進(jìn)行給定規(guī)模的自適應(yīng)網(wǎng)格劃分,使得每一網(wǎng)格內(nèi)的點(diǎn)數(shù)限 定在預(yù)設(shè)的數(shù)量LN內(nèi),LN表示網(wǎng)格的限制點(diǎn)數(shù),即網(wǎng)格之間無縫無疊地覆蓋整個(gè)點(diǎn)云數(shù)據(jù) 空間; 步驟2 :對(duì)每一個(gè)網(wǎng)格內(nèi)的點(diǎn)按點(diǎn)距離網(wǎng)格中央的距離,由遠(yuǎn)及近地進(jìn)行排序,這樣網(wǎng) 格內(nèi)點(diǎn)隊(duì)列的最后一個(gè)點(diǎn)就一定是距離網(wǎng)格中央最近的點(diǎn),稱為中央點(diǎn);將中央點(diǎn)移動(dòng)至 網(wǎng)格點(diǎn)隊(duì)列的最前面; 步驟3 :按網(wǎng)格里包含點(diǎn)的數(shù)量從小到大對(duì)所有網(wǎng)格進(jìn)行排序,同時(shí)標(biāo)注各個(gè)網(wǎng)格中 待構(gòu)模點(diǎn)數(shù)RN為點(diǎn)列隊(duì)中點(diǎn)的數(shù)量; 步驟4 :從網(wǎng)格隊(duì)列中第一個(gè)待構(gòu)模點(diǎn)數(shù)RN>0的網(wǎng)格開始,依次從每一個(gè)網(wǎng)格的點(diǎn)隊(duì) 列中取出第i個(gè)點(diǎn),其中〇 < i〈LN,用查找插入法構(gòu)建初級(jí)的均衡的三角網(wǎng),當(dāng)網(wǎng)格中的一 個(gè)點(diǎn)參加構(gòu)模后,該網(wǎng)格的待構(gòu)模點(diǎn)數(shù)RN減1 ;如此對(duì)所有網(wǎng)格重復(fù)操作K次,完成各個(gè)網(wǎng) 格前K個(gè)點(diǎn)的插入法構(gòu)模,其中,1彡K〈LN; 步驟5 :在每一個(gè)網(wǎng)格中完成第K個(gè)點(diǎn)的查找插入法構(gòu)模時(shí),同時(shí)在插入法新增加的三 角形中找到一個(gè)以該網(wǎng)格中央點(diǎn)為頂點(diǎn)的三角形,作為該網(wǎng)格進(jìn)行拓?fù)錂z索的起始三角形 予以記錄; 步驟6 :對(duì)網(wǎng)格隊(duì)列中余下第i個(gè)點(diǎn)的插入,其中K〈i彡LN構(gòu)模,根據(jù)標(biāo)記的起始三 角形,利用既有三角網(wǎng)的拓?fù)潢P(guān)系采用重心趨近方向搜索方法定位點(diǎn)所對(duì)應(yīng)的三角形,按 插入法構(gòu)模,單個(gè)點(diǎn)插入后同樣在新生成的三角形中找到一個(gè)以網(wǎng)格中央點(diǎn)為頂點(diǎn)的三角 形作為新的起始三角形,這樣能夠保證后續(xù)點(diǎn)的插入構(gòu)模效率不會(huì)因?yàn)槿蔷W(wǎng)的增加而變 低;依次對(duì)每一個(gè)網(wǎng)格完成第i點(diǎn)的插入構(gòu)模后再次循環(huán)完成i = i+Ι個(gè)點(diǎn)的構(gòu)模,直至所 有網(wǎng)格的所有點(diǎn)均參與構(gòu)模,主線程算法完成。
2. -種針對(duì)海量地形大數(shù)據(jù)點(diǎn)云的總分式三角網(wǎng)多線程并行生成方法,其特征在于, 在權(quán)利要求1所述步驟6中,安插影響域閉合檢測機(jī)制,可適時(shí)啟動(dòng)獨(dú)立線程對(duì)子網(wǎng)格進(jìn)行 并行構(gòu)模,包括如下步驟: 步驟7 :在步驟6網(wǎng)格的第i點(diǎn)插入過程完成后,對(duì)該網(wǎng)格進(jìn)行影響域閉合檢測判斷, 判斷方法為: 檢索以網(wǎng)格中央點(diǎn)為頂點(diǎn)的所有三角形,如果三角形鄰接三角形的所有頂點(diǎn)均位于本 網(wǎng)格內(nèi),可認(rèn)為后續(xù)插值點(diǎn),S卩i = i+Ι個(gè)點(diǎn)的影響域在網(wǎng)格區(qū)域內(nèi)閉合,且不存在與其它 網(wǎng)格三角形的共享并發(fā)沖突,因而可以采用一個(gè)獨(dú)立的線程對(duì)余下所有插值點(diǎn)進(jìn)行獨(dú)立插 入法構(gòu)網(wǎng),進(jìn)入步驟8啟動(dòng)一個(gè)新線程對(duì)網(wǎng)格余下點(diǎn)進(jìn)行獨(dú)立構(gòu)模; 步驟8 :將以中央點(diǎn)為頂點(diǎn)的所有三角形及其鄰接三角形,作為網(wǎng)格的私有初始三角 形,連同后續(xù)插值點(diǎn)交由獨(dú)立的插入法構(gòu)網(wǎng)程序完成建模操作,獨(dú)立線程的數(shù)據(jù)來源均由 網(wǎng)格私有,外圍拓?fù)淙切我怨蚕碓L問方式共享給所有獨(dú)立線程,獨(dú)立線程起動(dòng)后,待構(gòu)模 點(diǎn)數(shù)RN = 0,不再同時(shí)參加步驟6的檢索插值過程; 步驟9 :針對(duì)海量地形大數(shù)據(jù)點(diǎn)云的總分式三角網(wǎng)多線程并行生成算法處理結(jié)束的標(biāo) 志為步驟6的所有網(wǎng)格中的所有點(diǎn)均插入處理完成并多線程隊(duì)列同時(shí)為空。
3. 根據(jù)權(quán)利要求1所述的針對(duì)海量地形大數(shù)據(jù)點(diǎn)云的總分式三角網(wǎng)多線程并行生成 方法,其特征在于:步驟6中重心趨近方向搜索的方法為,從網(wǎng)格的起始三角形出發(fā),對(duì)臨 接的三角形,分別判斷其重心到插值點(diǎn)的距離,選擇距離最近的三角形作為新的出發(fā)三角 形,如此類推反復(fù)進(jìn)行,直至該最近距離最小并維持不變時(shí),可認(rèn)定最終得到的三角形就是 包含插值點(diǎn)的三角形,作為拓?fù)錂z索影響域的起始三角形。
4.根據(jù)權(quán)利要求1所述的針對(duì)海量地形大數(shù)據(jù)點(diǎn)云的總分式三角網(wǎng)多線程并行生成 方法,其特征在于:所述步驟4中的K的取值為4或5或6。
【文檔編號(hào)】G06F17/50GK104318035SQ201410624511
【公開日】2015年1月28日 申請(qǐng)日期:2014年11月7日 優(yōu)先權(quán)日:2014年11月7日
【發(fā)明者】韓元利, 鄧振林, 陳燕平, 劉云東, 王海松 申請(qǐng)人:中鐵第四勘察設(shè)計(jì)院集團(tuán)有限公司