本發(fā)明專(zhuān)利技術(shù)提供了一種包含無(wú)數(shù)據(jù)的柵格數(shù)據(jù)寫(xiě)入及讀取的方法及裝置,其中,所述方法包括:按預(yù)置大小對(duì)所述柵格數(shù)據(jù)劃分柵格塊;在柵格數(shù)據(jù)文件中針對(duì)所述柵格塊寫(xiě)入相應(yīng)的數(shù)據(jù),具體包括:當(dāng)所述柵格塊為無(wú)數(shù)據(jù)的柵格塊時(shí),則針對(duì)該柵格塊分配第一標(biāo)識(shí),并按照所述第一標(biāo)識(shí)生成塊數(shù)據(jù)偏移信息;當(dāng)所述柵格塊為有數(shù)據(jù)的柵格塊時(shí),則針對(duì)該柵格塊分配第二標(biāo)識(shí)以及塊數(shù)據(jù)存儲(chǔ)編號(hào),并按照所述第二標(biāo)識(shí)以及塊數(shù)據(jù)存儲(chǔ)編號(hào)生成塊數(shù)據(jù)偏移信息;根據(jù)所述第二標(biāo)識(shí)以及塊數(shù)據(jù)存儲(chǔ)編號(hào),寫(xiě)入所述柵格塊中各柵格點(diǎn)對(duì)應(yīng)的數(shù)據(jù)。本發(fā)明專(zhuān)利技術(shù)可以在柵格數(shù)據(jù)中包含一定數(shù)量無(wú)數(shù)據(jù)柵格塊情況下,能高效讀取柵格數(shù)據(jù)并避免存儲(chǔ)空間浪費(fèi)。
【技術(shù)實(shí)現(xiàn)步驟摘要】
本申請(qǐng)涉及空間數(shù)據(jù)
,特別是涉及一種包含無(wú)數(shù)據(jù)的柵格數(shù)據(jù)寫(xiě)入的方法,一種包含無(wú)數(shù)據(jù)的柵格數(shù)據(jù)寫(xiě)入的裝置,一種包含無(wú)數(shù)據(jù)的柵格數(shù)據(jù)讀取的方法,一種包含無(wú)數(shù)據(jù)的柵格數(shù)據(jù)讀取的裝置。
技術(shù)介紹
柵格數(shù)據(jù)模型用規(guī)則的正方形或者矩形柵格組成,每個(gè)柵格點(diǎn)位置由柵格所在的行列號(hào)來(lái)定義,柵格的數(shù)值為柵格所表達(dá)的內(nèi)容的屬性值。從這種意義上來(lái)講,柵格數(shù)據(jù)可以稱(chēng)為“屬性明顯,位置隱含”空間數(shù)據(jù)表達(dá)方式。每個(gè)柵格點(diǎn)代表了實(shí)際地表上的一個(gè)區(qū)域,如果一個(gè)柵格點(diǎn)代表的地表區(qū)域越小,數(shù)據(jù)越精確,但是數(shù)據(jù)量也越大。柵格點(diǎn)的大小通常叫做數(shù)據(jù)的分辨率(resolution),例如,有兩份柵格數(shù)據(jù),前者分辨率為250mX250m,那么I平方千米的范圍需要用16(4X4)個(gè)柵格點(diǎn)來(lái)表達(dá);但如果分辨率為IkmX lkm,那么只需要一個(gè)柵格點(diǎn)就夠了。很明顯,前者表達(dá)更加精確,但是占用存儲(chǔ)空間大。在柵格數(shù)據(jù)模型中,柵格點(diǎn)的數(shù)值含義由用戶(hù)指定。一般來(lái)講,其含義有兩種類(lèi)型其一,指實(shí)際的測(cè)量數(shù)值,如溫度、數(shù)字高程模型等;其二,代表某種類(lèi)別的編碼,如土地利用等。這里,就會(huì)發(fā)生某些柵格點(diǎn)不應(yīng)該具有數(shù)值或者無(wú)法得到具體數(shù)值的情況,例如,在描述全國(guó)土地利用類(lèi)型的柵格數(shù)據(jù)模型中,凡是空間范圍對(duì)應(yīng)在水面的那些柵格點(diǎn)都不應(yīng)該具有代表某種土地利用類(lèi)型的代碼值;還有些可能因?yàn)樽匀粭l件的限制,人類(lèi)無(wú)法測(cè)量或得不到該柵格點(diǎn)的具體土地利用類(lèi)型等情況,或者是在利用衛(wèi)星獲取數(shù)據(jù)時(shí)候,因云霧或其他因素導(dǎo)致結(jié)果柵格出現(xiàn)黑色斑塊,這些柵格點(diǎn)沒(méi)有測(cè)量到實(shí)際數(shù)據(jù)等。對(duì)這些情況的柵格點(diǎn),我們用“無(wú)數(shù)據(jù)值”來(lái)記錄該柵格點(diǎn)的數(shù)值,在實(shí)際應(yīng)用中,可以用O或者-32768或者-9999999等等表示,方式很靈活,完全由具體的實(shí)際應(yīng)用確定。“無(wú)數(shù)據(jù)柵格塊”指的含義是柵格數(shù)據(jù)中含有大量的“無(wú)數(shù)據(jù)”的柵格點(diǎn)并且分布比較集中,形成空間上的某局部區(qū)域全是“無(wú)數(shù)據(jù)”柵格點(diǎn)組成的柵格塊,如果按照一般做法,存儲(chǔ)每個(gè)柵格塊的柵格點(diǎn)的數(shù)據(jù),則需要大量的存儲(chǔ)空間。因此,本領(lǐng)域技術(shù)人員要解決的技術(shù)問(wèn)題之一在于對(duì)柵格數(shù)據(jù)中包含一定數(shù)量的“無(wú)數(shù)據(jù)柵格塊”情況下,提出一種能高效并避免存儲(chǔ)空間浪費(fèi)的柵格數(shù)據(jù)寫(xiě)入及讀取方法。
技術(shù)實(shí)現(xiàn)思路
本申請(qǐng)所要解決的技術(shù)問(wèn)題是提供一種包含無(wú)數(shù)據(jù)的柵格數(shù)據(jù)寫(xiě)入的方法及裝置,以及,一種包含無(wú)數(shù)據(jù)的柵格數(shù)據(jù)讀取的方法及裝置。用以在柵格數(shù)據(jù)中包含一定數(shù)量的無(wú)數(shù)據(jù)柵格塊時(shí),能高效讀取柵格數(shù)據(jù)并避免存儲(chǔ)空間浪費(fèi)。為了解決上述問(wèn)題,本申請(qǐng)公開(kāi)了一種包含無(wú)數(shù)據(jù)的柵格數(shù)據(jù)寫(xiě)入的方法,所述柵格數(shù)據(jù)包括M*N個(gè)柵格點(diǎn),所述M為行,N為列,包括按預(yù)置大小對(duì)所述柵格數(shù)據(jù)劃分柵格塊;在柵格數(shù)據(jù)文件中針對(duì)所述柵格塊寫(xiě)入相應(yīng)的數(shù)據(jù),具體包括當(dāng)所述柵格塊為無(wú)數(shù)據(jù)的柵格塊時(shí),則針對(duì)該柵格塊分配第一標(biāo)識(shí),并按照所述第一標(biāo)識(shí)生成塊數(shù)據(jù)偏移信息;當(dāng)所述柵格塊為有數(shù)據(jù)的柵格塊時(shí),則針對(duì)該柵格塊分配第二標(biāo)識(shí)以及塊數(shù)據(jù)存儲(chǔ)編號(hào),并按照所述第二標(biāo)識(shí)以及塊數(shù)據(jù)存儲(chǔ)編號(hào)生成塊數(shù)據(jù)偏移信息;根據(jù)所述第二標(biāo)識(shí)以及塊數(shù)據(jù)存儲(chǔ)編號(hào),寫(xiě)入所述柵格塊中各柵格點(diǎn)對(duì)應(yīng)的數(shù)據(jù)。優(yōu)選地,所述柵格塊的大小為m*n個(gè)柵格點(diǎn),所述為m行,η為列;所述按預(yù)置大小對(duì)柵格數(shù)據(jù)劃分柵格塊的步驟包括當(dāng)M不能整除m時(shí),則補(bǔ)充對(duì)應(yīng)柵格數(shù)據(jù)的行數(shù)令M能整除m ;當(dāng)N不能整除η時(shí),則補(bǔ)充對(duì)應(yīng)柵格數(shù)據(jù)的列數(shù)令N能整除η。·優(yōu)選地,所述方法還包括將所述柵格數(shù)據(jù)的基本信息寫(xiě)入柵格數(shù)據(jù)文件,所述柵格數(shù)據(jù)的基本信息包括柵格塊的大小。優(yōu)選地,所述根據(jù)所述第二標(biāo)識(shí)以及塊數(shù)據(jù)存儲(chǔ)編號(hào),寫(xiě)入所述柵格塊中各柵格點(diǎn)對(duì)應(yīng)的數(shù)據(jù)的步驟包括讀取柵格塊對(duì)應(yīng)的塊數(shù)據(jù)偏移信息中的塊數(shù)據(jù)存儲(chǔ)編號(hào)以及基本信息中柵格塊的大小;依據(jù)所述塊數(shù)據(jù)存儲(chǔ)編號(hào)以及柵格塊的大小計(jì)算得出所述柵格塊的實(shí)際存儲(chǔ)起始位;從所述實(shí)際存儲(chǔ)起始位寫(xiě)入所述柵格塊中各柵格點(diǎn)對(duì)應(yīng)的數(shù)據(jù)。優(yōu)選地,所述方法還包括在將有數(shù)據(jù)的柵格塊修改為無(wú)數(shù)據(jù)的柵格塊時(shí),則在所述有數(shù)據(jù)柵格塊對(duì)應(yīng)的塊數(shù)據(jù)偏移信息中,將第二標(biāo)識(shí)修改為第一標(biāo)識(shí),并添加第三標(biāo)識(shí),保留該柵格塊原有數(shù)據(jù)所占的存儲(chǔ)空間。優(yōu)選地,所述方法還包括在針對(duì)在先為有數(shù)據(jù)柵格塊,被修改為無(wú)數(shù)據(jù)的柵格塊中寫(xiě)入新數(shù)據(jù)時(shí),在所述無(wú)數(shù)據(jù)柵格塊的塊數(shù)據(jù)偏移信息中,將第一標(biāo)識(shí)修改為第二標(biāo)識(shí),將新數(shù)據(jù)寫(xiě)入保留的存儲(chǔ)空間中。優(yōu)選地,所述方法還包括在無(wú)數(shù)據(jù)的柵格塊中寫(xiě)入數(shù)據(jù)時(shí),則對(duì)所述柵格塊分配相應(yīng)大小的存儲(chǔ)空間,針對(duì)該柵格塊對(duì)應(yīng)的塊數(shù)據(jù)偏移信息中添加塊數(shù)據(jù)存儲(chǔ)編號(hào)并將第一標(biāo)識(shí)修改為第二標(biāo)識(shí)。本申請(qǐng)實(shí)施例還公開(kāi)了一種包含無(wú)數(shù)據(jù)的柵格數(shù)據(jù)讀取的方法,柵格數(shù)據(jù)文件中包含基本信息,塊數(shù)據(jù)偏移信息,以及有數(shù)據(jù)的柵格塊中各柵格點(diǎn)對(duì)應(yīng)的數(shù)據(jù);其中,所述基本信息包括柵格塊的大小;所述塊數(shù)據(jù)偏移信息中包含第二標(biāo)識(shí)以及塊數(shù)據(jù)存儲(chǔ)編號(hào);所述方法包括獲取柵格塊對(duì)應(yīng)的塊數(shù)據(jù)偏移信息以及基本信息中柵格塊的大小;判斷所述柵格塊對(duì)應(yīng)的塊數(shù)據(jù)偏移信息中是否為第二標(biāo)識(shí);若為第二標(biāo)識(shí),則依據(jù)所述塊數(shù)據(jù)偏移信息中的塊數(shù)據(jù)存儲(chǔ)編號(hào)以及柵格塊的大小,計(jì)算解析得到該柵格塊的實(shí)際存儲(chǔ)起始位;從所述實(shí)際存儲(chǔ)起始位讀取所述柵格塊中各柵格點(diǎn)對(duì)應(yīng)的數(shù)據(jù)。本申請(qǐng)實(shí)施例還公開(kāi)了一種包含無(wú)數(shù)據(jù)的柵格數(shù)據(jù)寫(xiě)入的裝置,所述柵格數(shù)據(jù)包括M*N個(gè)柵格點(diǎn),所述M為行,N為列,包括柵格數(shù)據(jù)劃分模塊,用于按預(yù)置大小對(duì)所述柵格數(shù)據(jù)劃分柵格塊;柵格數(shù)據(jù)寫(xiě)入模塊,用于在柵格數(shù)據(jù)文件中針對(duì)所述柵格塊寫(xiě)入相應(yīng)的數(shù)據(jù),具體包括無(wú)數(shù)據(jù)柵格塊處理子模塊,用于當(dāng)所述柵格塊為無(wú)數(shù)據(jù)的柵格塊時(shí),則針對(duì)該柵格塊分配第一標(biāo)識(shí),并按照所述第一標(biāo)識(shí)生成塊數(shù)據(jù)偏移信息;有數(shù)據(jù)柵格塊處理子模塊,用于當(dāng)所述柵格塊為有數(shù)據(jù)的柵格塊時(shí),則針對(duì)該柵格塊分配第二標(biāo)識(shí)以及塊數(shù)據(jù)存儲(chǔ)編號(hào),并按照所述第二標(biāo)識(shí)以及塊數(shù)據(jù)存儲(chǔ)編號(hào)生成塊數(shù)據(jù)偏移信息;柵格塊數(shù)據(jù)寫(xiě)入子模塊,用于根據(jù)所述第二標(biāo)識(shí)以及塊數(shù)據(jù)存儲(chǔ)編號(hào),寫(xiě)入所述柵格塊中各柵格點(diǎn)對(duì)應(yīng)的數(shù)據(jù)。優(yōu)選地,所述柵格塊的大小為m*n個(gè)柵格點(diǎn),所述為m行,η為列;所述柵格數(shù)據(jù)劃分模塊包括柵格數(shù)據(jù)行補(bǔ)充子模塊,用于當(dāng)M不能整除m時(shí),則補(bǔ)充對(duì)應(yīng)柵格數(shù)據(jù)的行數(shù)令M能整除m ;柵格數(shù)據(jù)列補(bǔ)充子模塊,用于當(dāng)N不能整除η時(shí),則補(bǔ)充對(duì)應(yīng)柵格數(shù)據(jù)的列數(shù)令N能整除η。 優(yōu)選地,所述裝置還包括基本信息寫(xiě)入模塊,用于將所述柵格數(shù)據(jù)的基本信息寫(xiě)入柵格數(shù)據(jù)文件,所述柵格數(shù)據(jù)的基本信息包括柵格塊的大小。優(yōu)選地,所述柵格塊數(shù)據(jù)寫(xiě)入子模塊包括塊數(shù)據(jù)偏移信息讀取子模塊,用于讀取柵格塊對(duì)應(yīng)的塊數(shù)據(jù)偏移信息中的塊數(shù)據(jù)存儲(chǔ)編號(hào)以及基本信息中柵格塊的大小;存儲(chǔ)起始位計(jì)算子模塊,用于依據(jù)所述塊數(shù)據(jù)存儲(chǔ)編號(hào)以及柵格塊的大小計(jì)算得出所述柵格塊的實(shí)際存儲(chǔ)起始位;柵格塊數(shù)據(jù)寫(xiě)入子模塊,用于從所述實(shí)際存儲(chǔ)起始位寫(xiě)入所述柵格塊中各柵格點(diǎn)對(duì)應(yīng)的數(shù)據(jù)。優(yōu)選地,其特征在于,所述裝置還包括第一修改模塊,用于在將有數(shù)據(jù)的柵格塊修改為無(wú)數(shù)據(jù)的柵格塊時(shí),則在所述有數(shù)據(jù)柵格塊對(duì)應(yīng)的塊數(shù)據(jù)偏移信息中,將第二標(biāo)識(shí)修改為第一標(biāo)識(shí),并添加第三標(biāo)識(shí),保留該柵格塊原有數(shù)據(jù)所占的存儲(chǔ)空間。優(yōu)選地,所述裝置還包括第二修改模塊,用于在針對(duì)在先為有數(shù)據(jù)柵格塊,被修改為無(wú)數(shù)據(jù)的柵格塊中寫(xiě)入新數(shù)據(jù)時(shí),在所述無(wú)數(shù)據(jù)柵格塊的塊數(shù)據(jù)偏移信息中,將第一標(biāo)識(shí)修改為第二標(biāo)識(shí),將新數(shù)據(jù)寫(xiě)入保留的存儲(chǔ)空間中。 優(yōu)選地本文檔來(lái)自技高網(wǎng)...
【技術(shù)保護(hù)點(diǎn)】
一種包含無(wú)數(shù)據(jù)的柵格數(shù)據(jù)寫(xiě)入的方法,其特征在于,所述柵格數(shù)據(jù)包括M*N個(gè)柵格點(diǎn),所述M為行,N為列,包括:按預(yù)置大小對(duì)所述柵格數(shù)據(jù)劃分柵格塊;在柵格數(shù)據(jù)文件中針對(duì)所述柵格塊寫(xiě)入相應(yīng)的數(shù)據(jù),具體包括:當(dāng)所述柵格塊為無(wú)數(shù)據(jù)的柵格塊時(shí),則針對(duì)該柵格塊分配第一標(biāo)識(shí),并按照所述第一標(biāo)識(shí)生成塊數(shù)據(jù)偏移信息;當(dāng)所述柵格塊為有數(shù)據(jù)的柵格塊時(shí),則針對(duì)該柵格塊分配第二標(biāo)識(shí)以及塊數(shù)據(jù)存儲(chǔ)編號(hào),并按照所述第二標(biāo)識(shí)以及塊數(shù)據(jù)存儲(chǔ)編號(hào)生成塊數(shù)據(jù)偏移信息;根據(jù)所述第二標(biāo)識(shí)以及塊數(shù)據(jù)存儲(chǔ)編號(hào),寫(xiě)入所述柵格塊中各柵格點(diǎn)對(duì)應(yīng)的數(shù)據(jù)。
【技術(shù)特征摘要】
【專(zhuān)利技術(shù)屬性】
技術(shù)研發(fā)人員:孫成寶,鄭國(guó)柱,
申請(qǐng)(專(zhuān)利權(quán))人:北京地拓科技發(fā)展有限公司,
類(lèi)型:發(fā)明
國(guó)別省市:
還沒(méi)有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。