一種三維模型數(shù)據(jù)的瓦片式大文件存儲(chǔ)組織方法
【專利摘要】本發(fā)明公開(kāi)一種三維模型數(shù)據(jù)的瓦片式大文件存儲(chǔ)組織方法,包括以下步驟:把三維模型數(shù)據(jù)按照全球格網(wǎng)剖分方法瓦片化;把原本離散的瓦片數(shù)據(jù)按照計(jì)算規(guī)則進(jìn)行緊縮重組,形成數(shù)據(jù)塊大文件;將劃分好的數(shù)據(jù)塊大文件按分辨率由低到高組成瓦片金字塔;定義數(shù)據(jù)塊大文件的磁盤組織結(jié)構(gòu)和內(nèi)存組織結(jié)構(gòu);減少瓦片金字塔的層級(jí)劃分,將瓦片金字塔相鄰兩層數(shù)據(jù)塊大文件按1:4的比例合并為一層;對(duì)合并后的數(shù)據(jù)塊大文件進(jìn)行重組;重新映射瓦片金字塔層級(jí)的視域范圍,保存為新數(shù)據(jù)層文件;每劃分一層都利用內(nèi)存映射技術(shù)動(dòng)態(tài)寫入文件,將瓦片金字塔逐層寫入到磁盤,形成內(nèi)部以瓦片方式有效存儲(chǔ)組織的三維模型數(shù)據(jù)的大文件。
【專利說(shuō)明】
一種三維模型數(shù)據(jù)的瓦片式大文件存儲(chǔ)組織方法
技術(shù)領(lǐng)域
[0001]本發(fā)明屬于地理空間信息系統(tǒng)技術(shù)領(lǐng)域,特別是涉及一種三維模型數(shù)據(jù)的瓦片式大文件存儲(chǔ)組織方法。
【背景技術(shù)】
[0002]三維GIS是目前GIS的一個(gè)重要發(fā)展方向,它在日益增長(zhǎng)的三維空間信息需求的牽引和蓬勃發(fā)展的現(xiàn)代新興技術(shù)的驅(qū)動(dòng)下得到了穩(wěn)步的發(fā)展。城市三維的建設(shè)與應(yīng)用,已成為地理信息技術(shù)發(fā)展的必然趨勢(shì),也是“數(shù)字城市”建設(shè)的重要組成部分。三維模型數(shù)據(jù)的存儲(chǔ)組織是最為基礎(chǔ)和關(guān)鍵的技術(shù)之一,它的優(yōu)劣直接影響著三維技術(shù)應(yīng)用的發(fā)展前景。
[0003]隨著計(jì)算機(jī)性能和應(yīng)用需求的不斷提高,傳統(tǒng)的二維GIS已經(jīng)不能滿足多分辨率、多尺度和多時(shí)空的直觀三維表達(dá)的需求,迫切需要尋求精確建模和虛擬現(xiàn)實(shí)等技術(shù)實(shí)現(xiàn)現(xiàn)實(shí)世界的三維可視化表達(dá),使得高精度、多分辨率、多時(shí)空、多細(xì)節(jié)層次模型的三維場(chǎng)景建立產(chǎn)生了海量、結(jié)構(gòu)復(fù)雜和多尺度的三維模型數(shù)據(jù)。將三維模型數(shù)據(jù)按照一定的規(guī)則進(jìn)行必要的格網(wǎng)分割處理,處理后的數(shù)據(jù)稱為瓦片(Tile),其瓦片數(shù)量級(jí)十分龐大,通??蛇_(dá)到T甚至P數(shù)量級(jí)。在分辨率不斷提高的前提下,三維模型數(shù)據(jù)量的增長(zhǎng)速度遠(yuǎn)遠(yuǎn)大于計(jì)算機(jī)內(nèi)存的增長(zhǎng)速度,面對(duì)如此大龐大的數(shù)據(jù),要進(jìn)行快速查詢調(diào)用數(shù)據(jù)將是非常困難的,這對(duì)計(jì)算機(jī)硬件和應(yīng)用軟件都提出了非常高的要求,三維GIS技術(shù)的瓶頸之一也就是如何解決海量三維模型數(shù)據(jù)組織問(wèn)題,因此對(duì)三維模型進(jìn)行瓦片分割及其高效存儲(chǔ)組織也是目前三維研究的一個(gè)重要內(nèi)容。
[0004]解決三維模型數(shù)據(jù)的組織存儲(chǔ)難題,對(duì)于實(shí)現(xiàn)三維模型的快速建立,提升大范圍三維場(chǎng)景的漫游速度、查詢相應(yīng)時(shí)間及多用戶并發(fā)請(qǐng)求,提高三維場(chǎng)景的流暢、逼真顯示和人機(jī)交互體驗(yàn)有著重要意義,它決定著三維GIS系統(tǒng)的發(fā)展方向?;诂F(xiàn)有的三維模型組織存儲(chǔ)方法,考慮到不同應(yīng)用環(huán)境、不同組織方法、不同算法對(duì)三維模型數(shù)據(jù)的組織存儲(chǔ)影響效率不同,以及磁盤和內(nèi)存中定義的結(jié)構(gòu)不一樣,具體實(shí)現(xiàn)細(xì)節(jié)也會(huì)不一樣,本文從盡可能的減少調(diào)度次數(shù)和內(nèi)存資源占用角度出發(fā),提出了一種三維模型的瓦片式大文件存儲(chǔ)組織方法,對(duì)于解決三維模型數(shù)據(jù)的存儲(chǔ)組織難題具有現(xiàn)實(shí)意義。
[0005]目前,三維模型數(shù)據(jù)的組織和存儲(chǔ)方法有以下兩種:
(I)分散的小文件組織方法
該方法是指把單個(gè)三維模型或某一區(qū)域中的多個(gè)三維模型存儲(chǔ)在一個(gè)文件中。其主要代表為美國(guó)Sky line公司的TerrainSuit系列軟件,通過(guò)對(duì)模型制作模型點(diǎn)shp文件,在TEPro中根據(jù)導(dǎo)入.X模型并對(duì)其進(jìn)行打包,最后將打包的fly文件整合后形成場(chǎng)景文件,這種方法一定程度上可以實(shí)現(xiàn)對(duì)三維模型數(shù)據(jù)的組織,但由于大量的空間、字段存儲(chǔ)關(guān)系信息和索引信息分開(kāi)存儲(chǔ)、散亂管理,使得空間查詢效率低下,且大大增加了數(shù)據(jù)誤刪除率,降低了數(shù)據(jù)組織管理的安全性。該類方法在下列文獻(xiàn)中均有論述:劉潔,裴繼紅,牛俊英.基于標(biāo)準(zhǔn)模型文件的建筑物三維數(shù)據(jù)模型.現(xiàn)代電子技術(shù),2004.馮琰,郭容寰等.三維城市模型數(shù)據(jù)組織與管理方法研究.測(cè)繪科學(xué),2011. (2)基于關(guān)系型空間數(shù)據(jù)庫(kù)的組織存儲(chǔ)
該方式是指把一個(gè)三維模型作為一個(gè)空間實(shí)體存儲(chǔ)在數(shù)據(jù)庫(kù)中,它不僅具有空間信息,還具有與地物相匹配的屬性信息。雖然這種存儲(chǔ)組織方式有利于三維可視化與三維空間對(duì)象的組織存儲(chǔ)結(jié)合,但由于空間數(shù)據(jù)模型的復(fù)雜性以及數(shù)據(jù)形式的龐雜性,現(xiàn)有關(guān)于面向?qū)ο蟮年P(guān)系型空間數(shù)據(jù)庫(kù)方式的組織存儲(chǔ)的探索主要集中在地形、遙感影像和少量三維實(shí)體的數(shù)據(jù)庫(kù)管理上,如SKyLine、G00gleEarth服務(wù)器端的數(shù)據(jù)存儲(chǔ)和組織方式,較全面的三維模型數(shù)據(jù)庫(kù)組織管理難以實(shí)現(xiàn);此外,關(guān)系型數(shù)據(jù)庫(kù)本身的限制使得組織海量三維模型數(shù)據(jù)變得越來(lái)越力不從心,比如數(shù)據(jù)類型表達(dá)能力差,復(fù)雜查詢功能差,在數(shù)據(jù)的寫入方面卻完全沒(méi)有簡(jiǎn)單的方法來(lái)解決規(guī)?;瘑?wèn)題,大部分讀寫集中在一個(gè)數(shù)據(jù)庫(kù)上讓數(shù)據(jù)庫(kù)不堪重負(fù)。該類方法在下列文獻(xiàn)中均有論述:谷勝濤,李景文等.面向?qū)嶓w的三維空間數(shù)據(jù)模型組織方法及應(yīng)用.城市勘測(cè),2011.胡忠宇.面向?qū)ο蟮娜P(guān)系型空間數(shù)據(jù)庫(kù)的研究.測(cè)繪科學(xué),2009.邢小平,張玉蘭等.三維模型數(shù)據(jù)庫(kù)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).第13屆中國(guó)系統(tǒng)仿真技術(shù)及其應(yīng)用學(xué)術(shù)年會(huì)論文集,2011。
【發(fā)明內(nèi)容】
[0006]本發(fā)明目的在于針對(duì)目前三維模型數(shù)據(jù)難以實(shí)現(xiàn)高效存儲(chǔ)組織的難題,提出一種三維模型數(shù)據(jù)的瓦片式大文件存儲(chǔ)組織方法,綜合考慮到不同文件定義結(jié)構(gòu)以及不同算法對(duì)計(jì)算機(jī)處理影響不同,把瓦片化后的三維模型數(shù)據(jù)進(jìn)行緊縮處理成數(shù)據(jù)塊大文件,并以數(shù)據(jù)塊大文件的形式組成瓦片金字塔。定義了數(shù)據(jù)塊大文件的磁盤組織結(jié)構(gòu)和內(nèi)存組織結(jié)構(gòu);提出了一種新的瓦片金字塔的層級(jí)合并和重組的方法,通過(guò)快速讀取文件頭、快速繪制低精度數(shù)據(jù),使得每次讀入內(nèi)存的數(shù)據(jù)為最少,盡可能減少數(shù)據(jù)塊大文件的調(diào)用次數(shù)和內(nèi)存駐留,優(yōu)化了瓦片金字塔的層級(jí)劃分,從而尋求一種較高效的三維模型數(shù)據(jù)的瓦片式大文件存儲(chǔ)組織方法。
[0007]為實(shí)現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:一種三維模型數(shù)據(jù)的瓦片式大文件存儲(chǔ)組織方法,包括以下步驟:
步驟I,把三維模型數(shù)據(jù)按照全球格網(wǎng)剖分方法瓦片化;
步驟2,把原本離散的瓦片數(shù)據(jù)按照計(jì)算規(guī)則進(jìn)行緊縮重組,使其形成結(jié)構(gòu)相對(duì)規(guī)整的數(shù)據(jù)塊大文件;
步驟3,將劃分好的數(shù)據(jù)塊大文件按分辨率由低到高組成瓦片金字塔;
步驟4,定義數(shù)據(jù)塊大文件的磁盤組織結(jié)構(gòu)和內(nèi)存組織結(jié)構(gòu),磁盤組織結(jié)構(gòu)分為數(shù)據(jù)文件和數(shù)據(jù)索引文件,其存儲(chǔ)結(jié)構(gòu)均分為文件頭部分和數(shù)據(jù)部分;
步驟5,減少瓦片金字塔的層級(jí)劃分。按分辨率由低到高可將瓦片金字塔分為η層,以1:4的比例依次將相鄰兩層數(shù)據(jù)塊大文件合并為一層數(shù)據(jù)塊大文件;
步驟6,對(duì)合并后的數(shù)據(jù)塊大文件進(jìn)行重組,即將上一層數(shù)據(jù)塊大文件組織為文件頭,將下一層數(shù)據(jù)塊大文件組織為文件體;依次往下合并重組;
步驟7,對(duì)相鄰兩層數(shù)據(jù)塊大文件合并重組后,重新映射瓦片金字塔層級(jí)的視域范圍,并將其保存為新數(shù)據(jù)層文件;
步驟8,每劃分一層都利用內(nèi)存映射技術(shù)動(dòng)態(tài)寫入文件,將瓦片金字塔逐層寫入到磁盤,形成內(nèi)部以瓦片方式有效組織的三維模型數(shù)據(jù)的大文件。
[0008]優(yōu)選的,步驟2中包含以下子步驟:
步驟2.1,設(shè)海量瓦片數(shù)據(jù)在X,Y,Z軸的空間范圍為X1,X2,Y1,Y2,Z1,Z2,給定一個(gè)容差ε,則沿坐標(biāo)軸可按實(shí)際需要?jiǎng)澐譃榈乳g隔λ的數(shù)據(jù)塊大文件;
步驟2.2,沿著X,Y,Z的數(shù)據(jù)塊大文件數(shù)目分別為:X1,Y1,Z1,向前取整,劃分得到空間中總的數(shù)據(jù)塊大文件數(shù)目;
步驟2.3,再計(jì)算數(shù)據(jù)塊大文件的單元坐標(biāo),設(shè)數(shù)據(jù)塊大文件的中心點(diǎn)坐標(biāo)為(Χ,Υ,Ζ),以(X1,Y1,Z1)為坐標(biāo)原點(diǎn),則其空間單元坐標(biāo):Xpt,Ypt,Zpt,向前取整;
步驟2.4,計(jì)算數(shù)據(jù)塊大文件的索引號(hào),最終先沿Z軸索引再沿Y軸索引最后是X軸索引,得到數(shù)據(jù)塊大文件的索引號(hào)為Bm = Xpt X A2+Ypt X λ+Ζρ?。
[0009]優(yōu)選的,步驟4中磁盤組織結(jié)構(gòu)分為數(shù)據(jù)文件和數(shù)據(jù)索引文件,其存儲(chǔ)結(jié)構(gòu)均分為文件頭部分和數(shù)據(jù)部分,所述文件頭部分包含數(shù)據(jù)的屬性信息和所有層的層頭信息,其中層頭信息記錄了當(dāng)前層的數(shù)據(jù)塊大文件數(shù)量、索引號(hào)Bid、以及相對(duì)于文件頭的偏移量;所述數(shù)據(jù)部分存儲(chǔ)了塊頭信息和瓦片數(shù)據(jù),其中塊頭信息包含了數(shù)據(jù)塊大文件的地理范圍、數(shù)據(jù)塊在整個(gè)文件中的偏移量。
[0010]優(yōu)選的,步驟4中內(nèi)存組織結(jié)構(gòu)以數(shù)據(jù)塊大文件為單位,數(shù)據(jù)塊大文件是在內(nèi)存中為瓦片數(shù)據(jù)緊縮開(kāi)辟的一個(gè)連續(xù)區(qū)域,由瓦片數(shù)據(jù)緊密填充,避免儲(chǔ)存空間的浪費(fèi)。
[0011]與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:本發(fā)明為了尋求一種高效的三維模型數(shù)據(jù)存儲(chǔ)組織方法,從減少讀取數(shù)據(jù)時(shí)指針移動(dòng)次數(shù)和數(shù)據(jù)在內(nèi)存中調(diào)度速度的角度出發(fā),提出了一種瓦片式大文件存儲(chǔ)組織方法。將海量瓦片數(shù)據(jù)緊縮重組成結(jié)構(gòu)相對(duì)整齊的數(shù)據(jù)塊大文件,再基于數(shù)據(jù)塊大文件組成瓦片金字塔模型。通過(guò)定義數(shù)據(jù)塊大文件在磁盤和內(nèi)存中的組織結(jié)構(gòu),為實(shí)現(xiàn)三維模型數(shù)據(jù)的快速組織和調(diào)度奠定了基礎(chǔ),并與內(nèi)存映射文件技術(shù)相結(jié)合,提出了一種新的層級(jí)合并重組方法,優(yōu)化了瓦片金字塔層級(jí)劃分,使得每次讀入內(nèi)存的數(shù)據(jù)為最少,且盡可能減少數(shù)據(jù)的調(diào)度次數(shù)和內(nèi)存中的駐留,方便數(shù)據(jù)塊大文件的查找,對(duì)三維模型數(shù)據(jù)的存儲(chǔ)組織具有實(shí)際意義。
【附圖說(shuō)明】
[0012]圖1本發(fā)明的總體流程圖;
圖2本發(fā)明的瓦片金字塔數(shù)據(jù)塊大文件在磁盤中的組織形式;
圖3本發(fā)明的瓦片金字塔數(shù)據(jù)塊大文件在內(nèi)存的組織形式;
圖4本發(fā)明的瓦片金字塔層級(jí)合并示意圖;
圖5本發(fā)明基于內(nèi)存映射文件技術(shù)的瓦片金字塔層級(jí)序列形成流程圖;
圖6本發(fā)明的總體算法實(shí)現(xiàn)流程圖。
【具體實(shí)施方式】
[0013]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0014]請(qǐng)參閱圖1,圖6,本發(fā)明提供一種技術(shù)方案:首先將三維模型瓦片化,將海量瓦片數(shù)據(jù)按照計(jì)算方法進(jìn)行緊縮重組,使其形成結(jié)構(gòu)相對(duì)整齊緊密排列的大數(shù)據(jù)文件,再按分辨率由低到高組成瓦片金字塔模型,定義數(shù)據(jù)塊大文件的磁盤組織結(jié)構(gòu)和內(nèi)存組織結(jié)構(gòu),本發(fā)明的重點(diǎn)是優(yōu)化金字塔的層級(jí)劃分,探討了一種新的合并重組的方法,并重新映射瓦片金字塔層級(jí)的視域范圍,將劃分好的每一層基于內(nèi)存映射文件技術(shù)動(dòng)態(tài)寫入文件,尋求一種減少調(diào)度次數(shù)、內(nèi)存占用和指針尋址次數(shù)、快速查找數(shù)據(jù)的高效瓦片數(shù)據(jù)存儲(chǔ)組織方式。
[0015]本發(fā)明實(shí)施的實(shí)現(xiàn)過(guò)程采用計(jì)算機(jī)實(shí)現(xiàn)自動(dòng)化處理,包括以下詳細(xì)步驟,
步驟I,把三維模型數(shù)據(jù)按照全球格網(wǎng)剖分方法瓦片化,即按每個(gè)網(wǎng)格寬、高打上均勻的格網(wǎng),計(jì)算出每個(gè)三維模型數(shù)據(jù)包圍盒所占據(jù)的網(wǎng)格或者所經(jīng)過(guò)的網(wǎng)格單元集合;
步驟2,把原本離散的瓦片數(shù)據(jù)進(jìn)行緊縮重組,使其形成結(jié)構(gòu)相對(duì)規(guī)整的數(shù)據(jù)塊大文件。數(shù)據(jù)塊大文件緊縮重組基本思路是:將瓦片數(shù)據(jù)按照一定規(guī)則劃分成數(shù)據(jù)塊大文件,數(shù)據(jù)塊大文件由瓦片數(shù)據(jù)緊密填充,在磁盤上順序存儲(chǔ),對(duì)每個(gè)數(shù)據(jù)塊大文件分別建立索引信息,通過(guò)索引確定數(shù)據(jù)塊大文件的空間位置后,再可對(duì)指定的數(shù)據(jù)塊大文件實(shí)現(xiàn)塊內(nèi)檢索。具體步驟如下:
步驟2.1,設(shè)海量瓦片數(shù)據(jù)在Z,r為由的空間范圍為Zz A ,Yi ,?之1,Z2,給定一個(gè)容差G則沿坐標(biāo)軸可按實(shí)際需要?jiǎng)澐譃榈乳g隔勒數(shù)據(jù)塊大文件;
步驟2.2,沿著Z,r M數(shù)據(jù)塊大文件數(shù)目分別為:Zz ,Yi Z,向前取整;
步驟2.3,再計(jì)算數(shù)據(jù)塊大文件的單元坐標(biāo),設(shè)數(shù)據(jù)塊大文件的中心點(diǎn)坐標(biāo)為(Z,r Z),以(Zz ,Ii厶)為坐標(biāo)原點(diǎn),則其空間單元坐標(biāo)厶?,向前取整;
步驟2.4,計(jì)算數(shù)據(jù)塊大文件的索引號(hào),最終先沿透由索引再沿玲由索引最后是游由索引,得到數(shù)據(jù)塊大文件的索引號(hào)為Bm=ZpiX ^+YptX I ZptO
[0016]步驟3,將劃分好的數(shù)據(jù)塊大文件按分辨率由低到高組成瓦片金字塔;
步驟4,定義數(shù)據(jù)塊大文件的磁盤組織結(jié)構(gòu)和內(nèi)存組織結(jié)構(gòu);
其中的磁盤組織結(jié)構(gòu)分為數(shù)據(jù)文件和數(shù)據(jù)索引文件,其存儲(chǔ)結(jié)構(gòu)均分為文件頭部分和數(shù)據(jù)部分,所述文件頭部分包含數(shù)據(jù)的屬性信息和所有層的層頭信息,其中層頭信息記錄了當(dāng)前層的數(shù)據(jù)塊大文件數(shù)量、索引號(hào)B1D、以及相對(duì)于文件頭的偏移量;數(shù)據(jù)部分存儲(chǔ)了塊頭信息和瓦片數(shù)據(jù),其中塊頭信息包含了數(shù)據(jù)塊大文件的地理范圍、數(shù)據(jù)塊在整個(gè)文件中的偏移量;數(shù)據(jù)塊大文件在層間按層排列,層內(nèi)按行排列。磁盤組織形式如圖2所示。
[0017]數(shù)據(jù)部分存儲(chǔ)了塊頭信息和瓦片數(shù)據(jù),其中塊頭信息包含了數(shù)據(jù)塊大文件的地理范圍、數(shù)據(jù)塊在整個(gè)文件中的偏移。內(nèi)存組織結(jié)構(gòu)以數(shù)據(jù)塊大文件為單位,數(shù)據(jù)塊大文件是在內(nèi)存中為瓦片數(shù)據(jù)緊縮開(kāi)辟的一個(gè)連續(xù)區(qū)域,由瓦片數(shù)據(jù)緊密填充,避免儲(chǔ)存空間的浪費(fèi)。文件頭常駐內(nèi)存中,在文件頭中記錄每個(gè)數(shù)據(jù)塊大文件在瓦片金字塔文件中的偏移量,在查找瓦片數(shù)據(jù)時(shí),先對(duì)建立內(nèi)存映射對(duì)象,先定位到層,然后在層頭信息中查找數(shù)據(jù)塊大文件的偏移量和數(shù)據(jù)塊大文件的索引號(hào)Bid,再映射到內(nèi)存中來(lái);內(nèi)存組織結(jié)構(gòu)如圖3所示。
[0018]步驟5,減少瓦片金字塔的層級(jí)劃分。根據(jù)分辨率由低到高可將瓦片金字塔模型分為/3層(級(jí)),將第O層的一個(gè)數(shù)據(jù)塊大文件與第I層對(duì)應(yīng)的四個(gè)數(shù)據(jù)塊大文件合并為一層,將第2層的每一個(gè)數(shù)據(jù)塊大文件與第3層依次對(duì)應(yīng)的四個(gè)數(shù)據(jù)塊大文件合并為一層..?即按1:4的比例依次將相鄰兩層數(shù)據(jù)塊大文件合并為一層數(shù)據(jù)塊大文件,如圖4所示;
步驟6,對(duì)合并后的數(shù)據(jù)塊大文件進(jìn)行重組,即將上一層數(shù)據(jù)塊大文件組織為文件頭,將下一層數(shù)據(jù)塊大文件組織為文件體,以減少數(shù)據(jù)調(diào)度次數(shù);依次往下合并重組;
步驟7,對(duì)相鄰兩層數(shù)據(jù)塊大文件合并重組后,重新映射瓦片金字塔層級(jí)的視域范圍,并將其保存為新數(shù)據(jù)層文件;
步驟8,每劃分一層都利用內(nèi)存映射技術(shù)動(dòng)態(tài)寫入文件。將該層級(jí)數(shù)據(jù)映射為內(nèi)存映射對(duì)象Fi Iel,在磁盤上創(chuàng)建一個(gè)文件映射為內(nèi)存映射對(duì)象Fi le2,在堆里分配一層緩存空間,從Filel中映射該層的數(shù)據(jù)到內(nèi)存,并將該層數(shù)據(jù)保存到緩存堆里,從File2中映射該層數(shù)據(jù)到內(nèi)存,把緩存堆里的數(shù)據(jù)保存到Fi le2里,指針移動(dòng)依次讀取每層數(shù)據(jù)塊大文件,遞歸形成瓦片金字塔序列,如圖5所示,最后將瓦片金字塔逐層寫入磁盤,形成內(nèi)部以瓦片方式有效存儲(chǔ)組織的三維模型數(shù)據(jù)的大文件。
[0019]盡管已經(jīng)示出和描述了本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域的普通技術(shù)人員而言,可以理解在不脫離本發(fā)明的原理和精神的情況下可以對(duì)這些實(shí)施例進(jìn)行多種變化、修改、替換和變型,本發(fā)明的范圍由所附權(quán)利要求及其等同物限定。
【主權(quán)項(xiàng)】
1.一種三維模型數(shù)據(jù)的瓦片式大文件存儲(chǔ)組織方法,其特征在于:包括以下步驟: 步驟I,把三維模型數(shù)據(jù)按照全球格網(wǎng)剖分方法瓦片化; 步驟2,把原本離散的瓦片數(shù)據(jù)按照計(jì)算規(guī)則進(jìn)行緊縮重組,使其形成結(jié)構(gòu)相對(duì)規(guī)整的數(shù)據(jù)塊大文件; 步驟3,將劃分好的數(shù)據(jù)塊大文件按分辨率由低到高組成瓦片金字塔; 步驟4,定義數(shù)據(jù)塊大文件的磁盤組織結(jié)構(gòu)和內(nèi)存組織結(jié)構(gòu),磁盤組織結(jié)構(gòu)分為數(shù)據(jù)文件和數(shù)據(jù)索引文件,其存儲(chǔ)結(jié)構(gòu)均分為文件頭部分和數(shù)據(jù)部分; 步驟5,減少瓦片金字塔的層級(jí)劃分; 按分辨率由低到高可將瓦片金字塔分為η層,以1:4的比例依次將相鄰兩層數(shù)據(jù)塊大文件合并為一層數(shù)據(jù)塊大文件; 步驟6,對(duì)合并后的數(shù)據(jù)塊大文件進(jìn)行重組,即將上一層數(shù)據(jù)塊大文件組織為文件頭,將下一層數(shù)據(jù)塊大文件組織為文件體;依次往下合并重組; 步驟7,對(duì)相鄰兩層數(shù)據(jù)塊大文件合并重組后,重新映射瓦片金字塔層級(jí)的視域范圍,并將其保存為新數(shù)據(jù)層文件; 步驟8,每劃分一層都利用內(nèi)存映射技術(shù)動(dòng)態(tài)寫入文件,將瓦片金字塔逐層寫入到磁盤,形成內(nèi)部以瓦片方式有效組織的三維模型數(shù)據(jù)的大文件。2.根據(jù)權(quán)利要求1所述的一種三維模型數(shù)據(jù)的瓦片式大文件存儲(chǔ)組織方法,其特征在于:所述步驟2中包含以下子步驟: 步驟2.1,設(shè)海量瓦片數(shù)據(jù)在X,Y,Z軸的空間范圍為X1J2J1 ,YhZ^Z2,給定一個(gè)容差ε,則沿坐標(biāo)軸可按實(shí)際需要?jiǎng)澐譃榈乳g隔λ的數(shù)據(jù)塊大文件; 步驟2.2,沿著X,Y,Z的數(shù)據(jù)塊大文件數(shù)目分別為:X1,Y1,Z1,向前取整,劃分得到空間中總的數(shù)據(jù)塊大文件數(shù)目; 步驟2.3,再計(jì)算數(shù)據(jù)塊大文件的單元坐標(biāo),設(shè)數(shù)據(jù)塊大文件的中心點(diǎn)坐標(biāo)為(Χ,Υ,Z),以(X1,Y1,Z1)為坐標(biāo)原點(diǎn),則其空間單元坐標(biāo):Xpt,Ypt,Zpt,向前取整; 步驟2.4,計(jì)算數(shù)據(jù)塊大文件的索引號(hào),最終先沿Z軸索引再沿Y軸索引最后是X軸索引,得到數(shù)據(jù)塊大文件的索引號(hào)為Bm = Xpt X A2+Ypt X λ+Ζρ?。3.根據(jù)權(quán)利要求1所述的一種三維模型數(shù)據(jù)的瓦片式大文件存儲(chǔ)組織方法,其特征在于:所述步驟4中磁盤組織結(jié)構(gòu)分為數(shù)據(jù)文件和數(shù)據(jù)索引文件,其存儲(chǔ)結(jié)構(gòu)均分為文件頭部分和數(shù)據(jù)部分,所述文件頭部分包含數(shù)據(jù)的屬性信息和所有層的層頭信息,其中層頭信息記錄了當(dāng)前層的數(shù)據(jù)塊大文件數(shù)量、索引號(hào)Bid、以及相對(duì)于文件頭的偏移量;所述數(shù)據(jù)部分存儲(chǔ)了塊頭信息和瓦片數(shù)據(jù),其中塊頭信息包含了數(shù)據(jù)塊大文件的地理范圍、數(shù)據(jù)塊在整個(gè)文件中的偏移量。4.根據(jù)權(quán)利要求1所述的一種三維模型數(shù)據(jù)的瓦片式大文件存儲(chǔ)組織方法,其特征在于:所述步驟4中內(nèi)存組織結(jié)構(gòu)以數(shù)據(jù)塊大文件為單位,數(shù)據(jù)塊大文件是在內(nèi)存中為瓦片數(shù)據(jù)緊縮開(kāi)辟的一個(gè)連續(xù)區(qū)域,由瓦片數(shù)據(jù)緊密填充,避免儲(chǔ)存空間的浪費(fèi)。
【文檔編號(hào)】G06F17/30GK105956165SQ201610336192
【公開(kāi)日】2016年9月21日
【申請(qǐng)日】2016年5月20日
【發(fā)明人】朱慶
【申請(qǐng)人】江蘇得得空間信息科技有限公司, 南通智慧建筑產(chǎn)業(yè)研究院有限公司