999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于全球索引的點云切片發布處理

2022-02-22 08:29:46宋金秀譚弘武張洪雷楊大兵
北京測繪 2022年1期
關鍵詞:瓦片數據庫

宋金秀 譚弘武 張洪雷 王 成 楊大兵

(北京煜邦電力技術股份有限公司, 北京100089)

0 引言

目前,激光點云數據處理包括點云濾波、點云配準、點云分割與分類、點云三維重建等相關技術,而在點云三維瓦片處理方面的應用較少,且瓦片數據處理多為地圖切片。

地圖切片Web服務簡稱Web地圖瓦片服務(Web Map Tile Service,WMTS),是開放地理空間信息聯盟(Open Geospatial Consortium,OGC)提出的緩存技術標準,即在服務器端緩存被切割成一定大小瓦片的地圖,對客戶端只提供這些預先定義好的單個瓦片的服務,將更多的數據處理操作如圖層疊加等放在客戶端,從而緩解地理信息系統(Geographic Information System,GIS)服務器端數據處理的壓力,改善用戶體驗[1-3]。WMTS使用瓦片矩陣集來表示切割后的地圖。瓦片就是包含地理數據的矩形影像,一幅地圖按一定的瓦片大小被切割成多個瓦片,形成瓦片矩陣,一個或多個瓦片矩陣即組成瓦片矩陣集[4]。不同的瓦片矩陣具有不同的分辨率,每個瓦片矩陣由瓦片矩陣標識符進行標識。

1 地圖切片概況

隨著科技的不斷發展,用戶對瓦片服務要求的提高,瓦片數據處理技術逐漸從地圖切片向點云切片、模型切片等方向不斷發展。而目前的點云切片處理多數針對局部數據處理,在數據追加和局部更新方面存在一定的不足,在處理海量數據時存在操作繁復、數據處理效率較低等問題[5]。而且針對某些特殊需求,如對已分類的點云數據進行特定類型切片處理,需要將特定類型的數據提取出來再進行切片處理,缺乏制定化和多功能的集成[6-7]。

因此,如何提供一種瓦片數據處理效率高、支持數據追加和局部更新的基于全球索引的點云切片處理方法,是本領域技術人員亟須解決的問題[8-10]。

2 全球索引點云切片發布設計

基于全球索引的點云切片發布處理包括:獲取欲處理的原始點云數據;將所有原始點云數據的縮放級別進行統一;按照統一后的縮放級別對原始點云數據進行四叉樹分塊或八叉樹分塊,生成多個數據塊,并對每個數據塊進行全球索引,獲得與每個數據塊一一對應的索引值;分別按照每個數據塊索引值遍歷原有點云切片成果數據庫中所有三維瓦片,并按照預設條件對原有點云切片成果數據庫進行更新。基于全球索引切片發布處理可對激光點云數據進行全球索引瓦片劃分,且支持數據追加和局部更新,并可針對不同類型的點云篩選進行瓦片劃分。

全球索引的點云切片處理方法包括全球索引瓦片劃分和數據追加及更新,其中全球索引瓦片劃分方法包括:

(1)確定最大級別:統一級別,以方便融合處理。

(2)文件切割:文件太大,需要分割處理,避免內存溢出的問題。

(3)分塊規則:前10級按全球經緯度進行分塊;大于10級時,在10級瓦片的基礎上按八叉樹分塊。

(4)緩存和融合:大文件切割后的小文件或者是和其他文件做增量處理時都需要進行融合。

(5)保存點云瓦片數據:數據追加及更新時需首先判斷當前數據所在的瓦片,遍歷成果數據庫中所有瓦片并在緩存中讀取與當前瓦片索引相同的瓦片;其次遍歷所有點,根據點的網格索引從緩存的瓦片中查找有沒有相同網格的點,有的話舍棄緩存中的點,緩存更新后若無相同的點,則將新讀入的點全部追加進入緩存;最后將新的瓦片保存到成果數據庫中。

3 基于全球索引的點云切片發布實現

3.1 全球索引點云切片發布

基于全球索引切片發布處理流程如圖1所示。

圖1 點云切片流程圖

(1)預先進行參數設置(包括空間坐標參數、不切片類型和輸出類型),并輸入原始點云文件,即獲取欲處理的原始點云數據。

(2)統一級別:將所有所述原始點云數據的縮放級別進行統一。

(3)文件切割及全球索引:按照統一后的縮放級別對所述原始點云數據進行四叉樹分塊或八叉樹分塊,生成多個數據塊,并對每個數據塊進行全球索引,獲得與每個數據塊一一對應的索引值。

(4)數據追加及更新:分別按照每個數據塊索引值遍歷原有點云切片成果數據庫中所有三維瓦片,并按照預設條件對原有點云切片成果數據庫進行更新。

3.2 全球索引瓦片劃分

全球索引瓦片劃分主要包括確定最大級別和瓦片劃分兩步,具體流程如圖2所示。

圖2 全球索引流程圖

3.2.1統一級別

統一級別,以方便融合處理,若未指定則進行如下處理:

(1)判斷是否預設有最大縮放級別i,若是,則將最大縮放級別i作為統一縮放級別;若否,則執行步驟2;

(2)取所述原始點云數據中間位置的點進行估算;

(3)計算所取點的包圍盒以及包圍盒的中心點坐標;

(4)計算包圍盒所有點到中心點的平均距離L;若平均距離L大于預設的最大縮放級別i下的點云三維瓦片分辨率,則確定最大縮放級別為i;否則執行步驟5;

(5)i自增1;

(6)重復執行步驟4~5,直至平均距離L不大于預設的最大縮放級別i下的點云三維瓦片分辨率。

3.2.2全球瓦片劃分

(1)全球瓦片劃分規則為:0級時,1個瓦片的分辨率為赤道周長;1級時,1個瓦片的分辨率為赤道周長的1/2;2級時,1個瓦片的分辨率為赤道周長的1/4;N級時,1個瓦片的分辨率為赤道周長的1/2N;

(2)前10級按全球經緯度以四叉樹分塊進行處理,即0級時,全球兩塊瓦片分辨率為180度;1級時,全球4×2塊瓦片分辨率為90°;N級時全球有2×2N個瓦片,1個瓦片的分辨率為180°的1/2N。當切片等級大于10級時,在10級瓦片的基礎上按八叉樹分塊,八叉樹分塊是可看作是三維下的四叉樹分塊規則,即在平面xy和高程z上同時進行四叉樹分塊。

3.3 數據追加及更新

數據追加及更新流程如圖3所示。

圖3 數據追加及更新流程圖

(1)確定當前數據塊所對應的索引值;

(2)按照當前數據塊的索引值遍歷原有點云切片成果數據庫中所有三維瓦片,判斷原有點云切片成果數據庫中是否存在與當前數據塊索引值相同的原有三維瓦片;如果不存在,則將當前數據塊新增至原有點云切片成果數據庫;如果存在,則執行下一步驟;

(3)將當前數據塊劃分為網格,并確定每個網格點的索引值;

(4)按照當前數據塊網格點索引值遍歷與當前數據塊索引值相同的原有三維瓦片的所有網格點,查找是否存在與當前數據塊網格點索引值相同的原有網格點;如果存在,則將原有網格點替換為當前數據塊網格點;如果不存在,則將當前數據塊網格點追加至原有點云切片成果數據庫。

3.4 點云數據切片程序實現

后臺算法處理采用Visual C++開發語言,基于地理空間數據抽象庫(Geospatial Data Abstraction Library,GDAL)和點云庫(Point Cloud Library,PCL)開源庫,實現基于全球索引的點云切片發布處理算法的代碼工作,前端展示采用Direct3D進行三維數據加載渲染。C++點云切片發布處理部分代碼如下所示:

∥獲取點云數據所在瓦片索引號

int Xcount=int(GetData->m_PointHeader.X/Gridsize)+1;

int Ycount=int(GetData->m_PointHeader.Y/Gridsize)+1;

for(int i=0;i

{

for (int j=0;j

{

∥計算得到當前瓦片數據范圍

std::vector GridPoints;

minx = minxm_PointHeader.MinX?GetData->m_PointHeader.MinX:minx;

miny= minym_PointHeader.MinY?GetData->m_PointHeader.MinY:miny;

maxx = maxx>GetData->m_PointHeader.MaxX?GetData->m_PointHeader.MaxX:maxx;

maxy = maxy>GetData->m_PointHeader.MaxY?GetData->m_PointHeader.MaxY:maxy;

∥構建新的瓦片數據

C_DataIndex *m_DataIndex=new C_DataIndex();

m_DataIndex->XY0[0]=minx-0.1;

m_DataIndex->XY0[1]=miny-0.1;

m_DataIndex->XY1[0]=maxx+0.1;

m_DataIndex->XY1[1]=maxy+0.1;

m_DataIndex->GridHigh=maxy-miny;

m_DataIndex->GridWide=maxx-minx;

∥瓦片數據重新構建索引

m_DataIndex->SetGridIndex(GridPoints);

for (size_t k=0;kBlockInput.size();++k)

{

if (m_DataIndex->BlockInput[k].size()==0) continue;

int _utm =get_utm(Prj);

∥點云數據平面坐標轉換為經緯度數據UTMxy_to_latlon_deg(m_DataIndex->GridCoordinate[k].X-m_Gridsize/2,m_DataIndex->GridCoordinate[k].Y-m_Gridsize/2,_utm, false,m_miny,m_minx);UTMxy_to_latlon_deg(m_DataIndex->GridCoordinate[k].X+m_Gridsize/2,m_DataIndex->GridCoordinate[k].Y+m_Gridsize/2,_utm, false,m_maxy,m_maxx);

std::vector vecUtmXY;

vecUtmXY.resize(m_DataIndex->BlockInput[k].size());

∥數據寫入

if (!IsWrite)

{

OutLas->m_PointHeader.DataFormatId='2';

bool b_write = true;

int isizeadd = OutGridPoints.size()+Points200.size();

if(isizeadd<200&&isizeaddm_PointHeader.PointRecordsCount)

b_write = false;

∥新的瓦片數據

if(b_write)

{

for (int ii=0;ii

OutGridPoints.push_back(Points200[i]);

Points200.clear();

std::vector().swap(Points200);

OutLas->Points=OutGridPoints;

OutLas->WriteLas(LASOutPathName);

IsWrite=true;

}

∥瓦片數據局部更新

else

{

int isi = Points200.size()+OutGridPoints.size();

for (int im=0;im

Points200.push_back(OutGridPoints[im]);

}

}

else SplitCloud::AppendLas(LASOutPathName,OutLas->m_PointHeader,OutGridPoints);∥數據更新追加

OutGridPoints.clear();

std::vector().swap(OutGridPoints);

}

}

}

經過上述方法處理后的切片點云數據加載到Direct3D中,數據渲染支持海量數據無縫三維瀏覽顯示。

4 結束語

經由上述的技術方案可知,與現有技術相比,本文公開提供了一種基于全球索引的點云切片處理方法,利用全球索引瓦片劃分的方法,解決了在處理海量點云數據的過程中效率較低的問題,并且可以提供數據追加和更新等方式,為后續的數據更新和發布提供極大的便利。同時,可對分類后的點云數據進行特定類型數據的瓦片處理,在多功能集成上有較好的適用性。

猜你喜歡
瓦片數據庫
河水
遼河(2025年7期)2025-07-25 00:00:00
打水漂
揚子江詩刊(2021年4期)2021-11-11 15:58:35
一種基于主題時空價值的服務器端瓦片緩存算法
慣性
揚子江(2019年1期)2019-03-08 02:52:34
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
基于NoSQL數據庫的瓦片地圖服務
主站蜘蛛池模板: 国产成人盗摄精品| 欧美一区二区三区香蕉视| 国产电话自拍伊人| 欧美精品成人一区二区视频一| 呦女亚洲一区精品| 999国产精品永久免费视频精品久久 | 欧美在线导航| 国产区人妖精品人妖精品视频| 91午夜福利在线观看| 国产18页| 精品视频在线观看你懂的一区| 伊人色综合久久天天| 54pao国产成人免费视频| 国产一在线观看| 激情六月丁香婷婷| 天天色综合4| 无码内射中文字幕岛国片| 网久久综合| 久久中文字幕2021精品| 免费国产黄线在线观看| 日韩毛片免费观看| 久久鸭综合久久国产| 亚洲成人手机在线| 色婷婷狠狠干| 精品無碼一區在線觀看 | 免费中文字幕在在线不卡| 国产精品女在线观看| 草草线在成年免费视频2| 91精品国产综合久久香蕉922 | 99视频有精品视频免费观看| 色综合激情网| 91黄视频在线观看| 黑色丝袜高跟国产在线91| 中文字幕免费视频| 99中文字幕亚洲一区二区| 国产18页| 蝌蚪国产精品视频第一页| 中文字幕在线观| 国模在线视频一区二区三区| 精品久久人人爽人人玩人人妻| 99性视频| 制服丝袜亚洲| 91精品国产丝袜| 日韩精品免费一线在线观看| 久久青草免费91观看| 精品国产三级在线观看| 亚洲免费福利视频| 3344在线观看无码| 免费一级大毛片a一观看不卡| 人妻精品全国免费视频| 久久国语对白| 毛片免费在线视频| 白浆免费视频国产精品视频| 久久久噜噜噜| 91精品国产自产在线观看| 综合色天天| 被公侵犯人妻少妇一区二区三区| 欧美a级完整在线观看| 久久亚洲国产一区二区| 欧美日韩在线亚洲国产人| 国产精品福利尤物youwu | 波多野结衣视频一区二区| 免费国产高清精品一区在线| 青青草一区二区免费精品| 日韩激情成人| 欧美一级夜夜爽www| 激情无码视频在线看| 久久久久青草大香线综合精品| 五月激情综合网| 一本大道无码日韩精品影视| 国产在线精品人成导航| 精品国产网站| 精品福利国产| 久久这里只精品热免费99| 国产精品自在在线午夜| www亚洲天堂| 青青网在线国产| 亚洲无码高清一区| 国产精品第页| 欧美视频在线不卡| 日韩精品一区二区三区大桥未久 | 欧美人与牲动交a欧美精品 |