亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種Micaps第四類格點(diǎn)數(shù)據(jù)無損壓縮算法

文檔序號:10515044閱讀:458來源:國知局
一種Micaps第四類格點(diǎn)數(shù)據(jù)無損壓縮算法
【專利摘要】本發(fā)明涉及一種Micaps第四類格點(diǎn)數(shù)據(jù)無損壓縮算法,其步驟:對Micaps第四類格點(diǎn)數(shù)據(jù)的頭部進(jìn)行壓縮,即重新定義數(shù)據(jù)頭部格式,壓縮后的頭部文件共47位;對Micaps第四類格點(diǎn)數(shù)據(jù)的數(shù)據(jù)部分處理壓縮:首先把每個數(shù)據(jù)乘以10,將單位調(diào)整為原單位的0.1;然后,根據(jù)頭部文件相應(yīng)的level指示位,去除每個數(shù)據(jù)前面重復(fù)的前兩位;將頭部文件與壓縮后的數(shù)據(jù)部分組合后得到完整的壓縮后數(shù)據(jù)文件;采用libzip對數(shù)據(jù)文件再次壓縮,最后生成“.zim4”的文件,為了確保文件的完整性,對再次壓縮后的文件計算HASH值,并保存該HASH值。本發(fā)明能有效提高存儲利用率,方便互聯(lián)網(wǎng)、甚至北斗系統(tǒng)傳輸。
【專利說明】
-種Μ i caps第四類格點(diǎn)數(shù)據(jù)無損壓縮算法
技術(shù)領(lǐng)域
[0001] 本發(fā)明設(shè)及一種數(shù)據(jù)壓縮方法,特別是關(guān)于一種Micaps第四類格點(diǎn)數(shù)據(jù)無損壓縮 算法。
【背景技術(shù)】
[0002] 目前,Micaps數(shù)據(jù)是由中國氣象局為了便于氣象專業(yè)工作者瀏覽、傳輸數(shù)據(jù)而研 發(fā)的包括總共26總數(shù)據(jù)格式。在Micaps數(shù)據(jù)設(shè)計早期,由于當(dāng)時氣象預(yù)報無論是時間分辨 率,還是空間分辨率都比較低,因此數(shù)據(jù)量較小。隨著氣象預(yù)報技術(shù)水平的提高,特別是大 型計算機(jī)計算能力的提高,使得提高數(shù)值預(yù)報的時空分辨率得W大大提高,由此造成氣象 數(shù)據(jù)井噴。W前的數(shù)據(jù)格式造成生成的文件過大,不利于數(shù)據(jù)的長期保存和流動,大量氣象 數(shù)據(jù)由于沒有足夠的資金購買硬盤而不得不放棄保存。另外,傳統(tǒng)的WinRaR或者WinZip的 壓縮工具,由于它們具有普適性,因此對于Micaps數(shù)據(jù)壓縮的比率非常有限,無法達(dá)到較高 比率的壓縮比。
[0003] 因此,如何提高氣象數(shù)據(jù)的利用率,便于地方臺站或?qū)I(yè)機(jī)構(gòu)保存數(shù)據(jù),而且又可 W和W前的氣象數(shù)據(jù)保持兼容成為目前亟待解決的技術(shù)問題。

【發(fā)明內(nèi)容】

[0004] 針對上述問題,本發(fā)明的目的是提供一種Micaps第四類格點(diǎn)數(shù)據(jù)無損壓縮算法, 該方法能有效提高存儲利用率,方便互聯(lián)網(wǎng)、甚至北斗系統(tǒng)傳輸。
[0005] 為實現(xiàn)上述目的,本發(fā)明采取W下技術(shù)方案:一種Micaps第四類格點(diǎn)數(shù)據(jù)無損壓 縮算法,其特征在于包括W下步驟:1)對Micaps第四類格點(diǎn)數(shù)據(jù)的頭部進(jìn)行壓縮,即重新定 義數(shù)據(jù)頭部格式,壓縮后的頭部文件共47位;2)對Micaps第四類格點(diǎn)數(shù)據(jù)的數(shù)據(jù)部分處理 壓縮:首先把每個數(shù)據(jù)乘W10,將單位調(diào)整為原單位的0.1;然后,根據(jù)頭部文件相應(yīng)的 level指示位,去除每個數(shù)據(jù)前面重復(fù)的前兩位;3)將步驟1)中的頭部文件與步驟2)中壓縮 后的數(shù)據(jù)部分組合后得到完整的壓縮后數(shù)據(jù)文件;4)采用libzip對步驟3)中的數(shù)據(jù)文件再 次壓縮,最后生成".zim4"的文件,并對再次壓縮后的文件計算HASH值,保存該HASH值。
[0006] 進(jìn)一步,所述步驟1)中,壓縮后的頭部文件結(jié)構(gòu)如下:organization: 1位,0為 ECMWF數(shù)據(jù);Level指示位:2位,50表示500百帕,85表示850百帕,00表示海平面;年月日時 次:10位,遵循Micaps數(shù)據(jù)慣例,使用北京時;時效:2位;經(jīng)度格距:2位,精度為0.1;締度格 距:2位,精度為0.1;起始經(jīng)度:3位,取值0~360;終止經(jīng)度:3位,取值0~360;起始締度:3 位,取值0~180;終止締度:3位,取值0~180;締向格點(diǎn)數(shù):4位;經(jīng)向格點(diǎn)數(shù):4位;等值線間 隔:2位;等值線起始值:2位;終止值:2位;平滑系數(shù)加粗線值:2位,為00,表示畫等值線同時 填圖。
[0007] 進(jìn)一步,所述步驟2)中,數(shù)據(jù)部分使用unsigned integer類型,單位為0.1單位。 [000引進(jìn)一步,對壓縮后數(shù)據(jù)還原步驟如下:(1)使用libzip對數(shù)據(jù)文件初步解壓縮,解 壓后生成臨時文件".zim4.unzip"; (2)對臨時文件進(jìn)行預(yù)處理,先讀取臨時文件的頭部文 件,共計47位;然后將頭部文件還原為Micaps格點(diǎn)數(shù)據(jù)文件的頭部格式,并記錄level的層 次;(3)根據(jù)level指示位的描述,每次讀取不同位數(shù)字符串;level為'00'時,依次讀取3個 字符串,當(dāng)運(yùn)3位字符串組成的數(shù)據(jù)大于500時,還原后的數(shù)據(jù)為由運(yùn)3位數(shù)字組成的字符串 所表示的數(shù)據(jù)再加上9000;如果運(yùn)3位字符串組成的數(shù)據(jù)小于500時,還原后的數(shù)據(jù)為由運(yùn)3 位數(shù)字組成的字符串所表示的數(shù)據(jù)再加上10000,然后除W10,完成數(shù)據(jù)還原;level值為其 他值時按照氣象填圖規(guī)范進(jìn)行還原。
[0009] 本發(fā)明由于采取W上技術(shù)方案,其具有W下優(yōu)點(diǎn):1、本發(fā)明經(jīng)過對壓縮前后的數(shù) 據(jù)文件比對,壓縮比最高高達(dá)70%,即,壓縮后的文件僅為壓縮前的30%,數(shù)據(jù)壓縮比率較 高。2、本發(fā)明采用的數(shù)據(jù)壓縮方法為無損壓縮,本發(fā)明根據(jù)氣象數(shù)據(jù)的特性,氣象數(shù)據(jù)取值 的有限性,采用標(biāo)志位的方式來針對Micaps第四類數(shù)據(jù)的內(nèi)容進(jìn)行標(biāo)志,W便后期還原。
【具體實施方式】
[0010] 下面結(jié)合實施例對本發(fā)明進(jìn)行詳細(xì)的描述。
[0011] 本發(fā)明提供一種Micaps第四類格點(diǎn)數(shù)據(jù)無損壓縮算法,Micaps數(shù)據(jù)第4類格點(diǎn)數(shù) 據(jù)文件格式為ASCII碼的數(shù)據(jù),該類型數(shù)據(jù)是用于畫等值線的格點(diǎn)數(shù)據(jù),網(wǎng)格為經(jīng)締度網(wǎng) 格。本發(fā)明對Micaps第四類格點(diǎn)數(shù)據(jù)進(jìn)行壓縮,并將壓縮后的文件后綴定義為".zim4",即 zip micaps diamond 4的簡寫形式;壓縮后的文件依然包括內(nèi)容描述和數(shù)據(jù)兩部分,且壓 縮后的文件由頭部和數(shù)據(jù)塊兩部分組成。
[0012] 本發(fā)明具體包括W下步驟:
[0013] 1)對Micaps第四類格點(diǎn)數(shù)據(jù)的頭部進(jìn)行壓縮,即重新定義數(shù)據(jù)頭部格式,壓縮后 的頭部文件共47位:
[0014] organization: 1位,0為ECMWF數(shù)據(jù);
[0015] Leve 1指示位:2位,50表示500百帕,85表示850百帕,00表示海平面;
[0016] 年月日時次:10位,遵循Micaps數(shù)據(jù)慣例,使用北京時;
[0017] 時效:2位;
[001引經(jīng)度格距:2位,精度為0.1;
[0019] 締度格距:2位,精度為0.1;
[0020] 起始經(jīng)度:3位,取值0~360;
[0021] 終止經(jīng)度:3位,取值0~360;
[0022] 起始締度:3位,取值0~180;
[0023] 終止締度:3位,取值0~180;
[0024] 締向格點(diǎn)數(shù):4位;
[002引經(jīng)向格點(diǎn)數(shù):4位;
[0026] 等值線間隔:2位;
[0027] 等值線起始值:2位;
[00測終止值:2化
[0029] 平滑系數(shù)加粗線值:2位,為00,表示畫等值線同時填圖。
[0030] 2)對Micaps第四類格點(diǎn)數(shù)據(jù)的數(shù)據(jù)部分處理壓縮。
[0031] 數(shù)據(jù)部分結(jié)構(gòu)是固定3位的連續(xù)值,單位為0.1;對數(shù)據(jù)部分進(jìn)行壓縮時,首先把每 個數(shù)據(jù)乘Wio,將單位調(diào)整為原單位的0.1;然后,根據(jù)頭部文件相應(yīng)的level指示位,去除 每個數(shù)據(jù)前面重復(fù)的前兩位。為了降低存儲使用率,數(shù)據(jù)部分使用unsigned integer類型, 所W單位為0.1單位。
[0032] 3)將步驟1)中的頭部文件與步驟2)中壓縮后的數(shù)據(jù)部分組合后得到完整的壓縮 后數(shù)據(jù)文件。
[0033] 4)采用libzip對步驟3)中的數(shù)據(jù)文件再次壓縮,最后生成".zim4"的文件,為了確 保文件的完整性,對再次壓縮后的文件計算HASH值,HASH值可W保存在其他文件或數(shù)據(jù)庫 里。
[0034] 上述各步驟中,對壓縮后數(shù)據(jù)還原是數(shù)據(jù)壓縮過程的逆過程,還原步驟如下:
[0035] (1)使用libzip對數(shù)據(jù)文件初步解壓縮,解壓后生成臨時文件".zim4.unzip"。
[0036] (2)對臨時文件進(jìn)行預(yù)處理,先讀取臨時文件的頭部文件,共計47位;然后將頭部 文件還原為Micaps格點(diǎn)數(shù)據(jù)文件的頭部格式,并記錄level的層次,W便在后續(xù)還原數(shù)據(jù)時 使用。
[0037] (3)根據(jù)level指示位的描述,每次讀取不同位數(shù)字符串。level為'00'時,依次讀 取3個字符串,當(dāng)運(yùn)3位由數(shù)字組成的字符串所表示的數(shù)據(jù)(比如字符串巧90"表示的數(shù)據(jù)為 990,下同)大于500時,那么還原后的數(shù)據(jù)為由運(yùn)3位數(shù)字組成的字符串所表示的數(shù)據(jù)再加 上9000;如果運(yùn)3位由數(shù)字組成的字符串組所表示的數(shù)據(jù)小于500時,還原后的數(shù)據(jù)為由運(yùn)3 位數(shù)字組成的字符串所表示的數(shù)據(jù)再加上10000,然后除W10,完成數(shù)據(jù)還原。level值為其 他值時按照氣象填圖規(guī)范進(jìn)行還原。
[003引實施例;
[0039] Micaps數(shù)據(jù)第4類格點(diǎn)數(shù)據(jù)文件為:
[0040] diamond 4 15年3月19日20點(diǎn)ECMWFJ每平面氣壓分析
[0041] 15 3 19 20 0 999 2.500 2.500-180.000 180.000 0.000 90.000 145 37 4.0 952.0 1040.0 0 0 1011.7 10Π .7 101!.4 1011.1 1010.2 1010.1 1010.0 1010.3 1009.8 1009.7 1010.1 1010.3 1010.6 1010.7 1010.3 1010.7 1011.1 1011.3 1011.7 1011.8 1011.7 1011.8 1011.8 10Π .8 101!.8 1012.0 1012.1 1012.0 1011.8 1012.2 1012.0 1012.0 1011.8 1012.4 1012.4 1012.6 10124 10! 2.3 1012.2 1012.2
[0042] 采用某天的ECMWF的格點(diǎn)預(yù)報數(shù)據(jù)頭文件為:
[0043] diamond 4 15年3月19日20點(diǎn)60\1師'_海平面氣壓分析
[0044] 1-) 3 19 20 0 999 2. 500 2.日0円-180. 000 180. 000 0 000 90. 000 145 37 4.0 952.0 1040.0 0 0
[0045] 壓縮后的頭部樣式為:0501503192000252536018000009001450037045240
[0046] 之前的數(shù)據(jù)塊為:
[0047] 1011.7 101 !.7 1011.4 1011.1 1010.2 1010.1 1010.0 1010.3 1009,8 1009.7 1010.1 1010.3 ! 010.6 1010.7 1010.3 1010.7 1011.1 1011.3 1011.7 1011.8 Ι0Π .7 1011.8 1011.8 1011.8 1011.8 1012.0 1012.1 1012.0 1011.8 1012.2 1012.0 1012.0 1011.8 1012.4 1012.4 1012.6 1012.4 1012.3 1012.2 1012.2
[004引壓縮時,先把每個數(shù)字乘W10,將單位調(diào)整為原單位的0.1。 10117 10117 10114 10111 10102 10101 10100 10103 10098 10097 10101 10)03 10106 10107 10103 10107 )()11) 10113 10117 10)18
[0049] 10117 10118 10118 10118 10118 10120 !012i 10120 10118 10122 10120 10120 10118 10)24 10124 10126 10124 10123 )0122 10122
[0050] 則壓縮后的數(shù)據(jù)為:
[0化1 ] 11711711411110210110010309809710110310610710310711111311711811711811811811812 0121120118122120120118124126124123122122.. .
[0052]將頭文件與數(shù)據(jù)塊兩者組合,完整的壓縮后的數(shù)據(jù)文件為:
[0化3] 05015031920002525360180000090014500370452401171171141111021011001030980971011 03106107103107111113117118117118118118118120121120118122120120118124126124123 122122.. .
[0054]上述各實施例僅用于說明本發(fā)明,各個步驟都是可W有所變化的,在本發(fā)明技術(shù) 方案的基礎(chǔ)上,凡根據(jù)本發(fā)明原理對個別步驟進(jìn)行的改進(jìn)和等同變換,均不應(yīng)排除在本發(fā) 明的保護(hù)范圍之外。
【主權(quán)項】
1. 一種Micaps第四類格點(diǎn)數(shù)據(jù)無損壓縮算法,其特征在于包括以下步驟: 1) 對Micaps第四類格點(diǎn)數(shù)據(jù)的頭部進(jìn)行壓縮,即重新定義數(shù)據(jù)頭部格式,壓縮后的頭 部文件共47位; 2) 對Micaps第四類格點(diǎn)數(shù)據(jù)的數(shù)據(jù)部分處理壓縮:首先把每個數(shù)據(jù)乘以10,將單位調(diào) 整為原單位的0.1;然后,根據(jù)頭部文件相應(yīng)的level指示位,去除每個數(shù)據(jù)前面重復(fù)的前兩 位; 3) 將步驟1)中的頭部文件與步驟2)中壓縮后的數(shù)據(jù)部分組合后得到完整的壓縮后數(shù) 據(jù)文件; 4) 采用libzip對步驟3)中的數(shù)據(jù)文件再次壓縮,最后生成".zim4"的文件,并對再次壓 縮后的文件計算HASH值,保存該HASH值。2. 如權(quán)利要求1所述的一種Micaps第四類格點(diǎn)數(shù)據(jù)無損壓縮算法,其特征在于:所述步 驟1)中,壓縮后的頭部文件結(jié)構(gòu)如下: organization: 1位,0為ECMWF數(shù)據(jù); Level指示位:2位,50表示500百帕,85表示850百帕,00表示海平面; 年月日時次:10位,遵循Micaps數(shù)據(jù)慣例,使用北京時; 時效:2位; 經(jīng)度格距:2位,精度為0.1; 煒度格距:2位,精度為0.1; 起始經(jīng)度:3位,取值0~360; 終止經(jīng)度:3位,取值0~360; 起始煒度:3位,取值0~180; 終止煒度:3位,取值0~180; 煒向格點(diǎn)數(shù):4位; 經(jīng)向格點(diǎn)數(shù):4位; 等值線間隔:2位; 等值線起始值:2位; 終止值:2位; 平滑系數(shù)加粗線值:2位,為00,表示畫等值線同時填圖。3. 如權(quán)利要求1或2所述的一種Micaps第四類格點(diǎn)數(shù)據(jù)無損壓縮算法,其特征在于:所 述步驟2)中,數(shù)據(jù)部分使用unsigned integer類型,單位為0.1單位。4. 如權(quán)利要求1所述的一種Micaps第四類格點(diǎn)數(shù)據(jù)無損壓縮算法,其特征在于:對壓縮 后數(shù)據(jù)還原步驟如下: (1) 使用libzip對數(shù)據(jù)文件初步解壓縮,解壓后生成臨時文件".zim4.unzip" ; (2) 對臨時文件進(jìn)行預(yù)處理,先讀取臨時文件的頭部文件,共計47位;然后將頭部文件 還原為Micaps格點(diǎn)數(shù)據(jù)文件的頭部格式,并記錄level的層次; (3) 根據(jù)level指示位的描述,每次讀取不同位數(shù)字符串;level為'00'時,依次讀取3個 字符串,當(dāng)這3位字符串組成的數(shù)據(jù)大于500時,還原后的數(shù)據(jù)為由這3位數(shù)字組成的字符串 所表示的數(shù)據(jù)再加上9000;如果這3位字符串組成的數(shù)據(jù)小于500時,還原后的數(shù)據(jù)為由這3 位數(shù)字組成的字符串所表示的數(shù)據(jù)再加上10000,然后除以10,完成數(shù)據(jù)還原;level值為其 他值時按照氣象填圖規(guī)范進(jìn)行還原。
【文檔編號】H03M7/30GK105871382SQ201610185773
【公開日】2016年8月17日
【申請日】2016年3月29日
【發(fā)明人】王強(qiáng)生
【申請人】中海油信息科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1