一种Micaps第四类格点数据无损压缩算法

文档序号:10515044阅读:376来源:国知局
一种Micaps第四类格点数据无损压缩算法
【专利摘要】本发明涉及一种Micaps第四类格点数据无损压缩算法,其步骤:对Micaps第四类格点数据的头部进行压缩,即重新定义数据头部格式,压缩后的头部文件共47位;对Micaps第四类格点数据的数据部分处理压缩:首先把每个数据乘以10,将单位调整为原单位的0.1;然后,根据头部文件相应的level指示位,去除每个数据前面重复的前两位;将头部文件与压缩后的数据部分组合后得到完整的压缩后数据文件;采用libzip对数据文件再次压缩,最后生成“.zim4”的文件,为了确保文件的完整性,对再次压缩后的文件计算HASH值,并保存该HASH值。本发明能有效提高存储利用率,方便互联网、甚至北斗系统传输。
【专利说明】
-种Μ i caps第四类格点数据无损压缩算法
技术领域
[0001] 本发明设及一种数据压缩方法,特别是关于一种Micaps第四类格点数据无损压缩 算法。
【背景技术】
[0002] 目前,Micaps数据是由中国气象局为了便于气象专业工作者浏览、传输数据而研 发的包括总共26总数据格式。在Micaps数据设计早期,由于当时气象预报无论是时间分辨 率,还是空间分辨率都比较低,因此数据量较小。随着气象预报技术水平的提高,特别是大 型计算机计算能力的提高,使得提高数值预报的时空分辨率得W大大提高,由此造成气象 数据井喷。W前的数据格式造成生成的文件过大,不利于数据的长期保存和流动,大量气象 数据由于没有足够的资金购买硬盘而不得不放弃保存。另外,传统的WinRaR或者WinZip的 压缩工具,由于它们具有普适性,因此对于Micaps数据压缩的比率非常有限,无法达到较高 比率的压缩比。
[0003] 因此,如何提高气象数据的利用率,便于地方台站或专业机构保存数据,而且又可 W和W前的气象数据保持兼容成为目前亟待解决的技术问题。

【发明内容】

[0004] 针对上述问题,本发明的目的是提供一种Micaps第四类格点数据无损压缩算法, 该方法能有效提高存储利用率,方便互联网、甚至北斗系统传输。
[0005] 为实现上述目的,本发明采取W下技术方案:一种Micaps第四类格点数据无损压 缩算法,其特征在于包括W下步骤:1)对Micaps第四类格点数据的头部进行压缩,即重新定 义数据头部格式,压缩后的头部文件共47位;2)对Micaps第四类格点数据的数据部分处理 压缩:首先把每个数据乘W10,将单位调整为原单位的0.1;然后,根据头部文件相应的 level指示位,去除每个数据前面重复的前两位;3)将步骤1)中的头部文件与步骤2)中压缩 后的数据部分组合后得到完整的压缩后数据文件;4)采用libzip对步骤3)中的数据文件再 次压缩,最后生成".zim4"的文件,并对再次压缩后的文件计算HASH值,保存该HASH值。
[0006] 进一步,所述步骤1)中,压缩后的头部文件结构如下:organization: 1位,0为 ECMWF数据;Level指示位:2位,50表示500百帕,85表示850百帕,00表示海平面;年月日时 次:10位,遵循Micaps数据惯例,使用北京时;时效:2位;经度格距:2位,精度为0.1;缔度格 距:2位,精度为0.1;起始经度:3位,取值0~360;终止经度:3位,取值0~360;起始缔度:3 位,取值0~180;终止缔度:3位,取值0~180;缔向格点数:4位;经向格点数:4位;等值线间 隔:2位;等值线起始值:2位;终止值:2位;平滑系数加粗线值:2位,为00,表示画等值线同时 填图。
[0007] 进一步,所述步骤2)中,数据部分使用unsigned integer类型,单位为0.1单位。 [000引进一步,对压缩后数据还原步骤如下:(1)使用libzip对数据文件初步解压缩,解 压后生成临时文件".zim4.unzip"; (2)对临时文件进行预处理,先读取临时文件的头部文 件,共计47位;然后将头部文件还原为Micaps格点数据文件的头部格式,并记录level的层 次;(3)根据level指示位的描述,每次读取不同位数字符串;level为'00'时,依次读取3个 字符串,当运3位字符串组成的数据大于500时,还原后的数据为由运3位数字组成的字符串 所表示的数据再加上9000;如果运3位字符串组成的数据小于500时,还原后的数据为由运3 位数字组成的字符串所表示的数据再加上10000,然后除W10,完成数据还原;level值为其 他值时按照气象填图规范进行还原。
[0009] 本发明由于采取W上技术方案,其具有W下优点:1、本发明经过对压缩前后的数 据文件比对,压缩比最高高达70%,即,压缩后的文件仅为压缩前的30%,数据压缩比率较 高。2、本发明采用的数据压缩方法为无损压缩,本发明根据气象数据的特性,气象数据取值 的有限性,采用标志位的方式来针对Micaps第四类数据的内容进行标志,W便后期还原。
【具体实施方式】
[0010] 下面结合实施例对本发明进行详细的描述。
[0011] 本发明提供一种Micaps第四类格点数据无损压缩算法,Micaps数据第4类格点数 据文件格式为ASCII码的数据,该类型数据是用于画等值线的格点数据,网格为经缔度网 格。本发明对Micaps第四类格点数据进行压缩,并将压缩后的文件后缀定义为".zim4",即 zip micaps diamond 4的简写形式;压缩后的文件依然包括内容描述和数据两部分,且压 缩后的文件由头部和数据块两部分组成。
[0012] 本发明具体包括W下步骤:
[0013] 1)对Micaps第四类格点数据的头部进行压缩,即重新定义数据头部格式,压缩后 的头部文件共47位:
[0014] organization: 1位,0为ECMWF数据;
[0015] Leve 1指示位:2位,50表示500百帕,85表示850百帕,00表示海平面;
[0016] 年月日时次:10位,遵循Micaps数据惯例,使用北京时;
[0017] 时效:2位;
[001引经度格距:2位,精度为0.1;
[0019] 缔度格距:2位,精度为0.1;
[0020] 起始经度:3位,取值0~360;
[0021] 终止经度:3位,取值0~360;
[0022] 起始缔度:3位,取值0~180;
[0023] 终止缔度:3位,取值0~180;
[0024] 缔向格点数:4位;
[002引经向格点数:4位;
[0026] 等值线间隔:2位;
[0027] 等值线起始值:2位;
[00測终止值:2化
[0029] 平滑系数加粗线值:2位,为00,表示画等值线同时填图。
[0030] 2)对Micaps第四类格点数据的数据部分处理压缩。
[0031] 数据部分结构是固定3位的连续值,单位为0.1;对数据部分进行压缩时,首先把每 个数据乘Wio,将单位调整为原单位的0.1;然后,根据头部文件相应的level指示位,去除 每个数据前面重复的前两位。为了降低存储使用率,数据部分使用unsigned integer类型, 所W单位为0.1单位。
[0032] 3)将步骤1)中的头部文件与步骤2)中压缩后的数据部分组合后得到完整的压缩 后数据文件。
[0033] 4)采用libzip对步骤3)中的数据文件再次压缩,最后生成".zim4"的文件,为了确 保文件的完整性,对再次压缩后的文件计算HASH值,HASH值可W保存在其他文件或数据库 里。
[0034] 上述各步骤中,对压缩后数据还原是数据压缩过程的逆过程,还原步骤如下:
[0035] (1)使用libzip对数据文件初步解压缩,解压后生成临时文件".zim4.unzip"。
[0036] (2)对临时文件进行预处理,先读取临时文件的头部文件,共计47位;然后将头部 文件还原为Micaps格点数据文件的头部格式,并记录level的层次,W便在后续还原数据时 使用。
[0037] (3)根据level指示位的描述,每次读取不同位数字符串。level为'00'时,依次读 取3个字符串,当运3位由数字组成的字符串所表示的数据(比如字符串巧90"表示的数据为 990,下同)大于500时,那么还原后的数据为由运3位数字组成的字符串所表示的数据再加 上9000;如果运3位由数字组成的字符串组所表示的数据小于500时,还原后的数据为由运3 位数字组成的字符串所表示的数据再加上10000,然后除W10,完成数据还原。level值为其 他值时按照气象填图规范进行还原。
[003引实施例;
[0039] Micaps数据第4类格点数据文件为:
[0040] diamond 4 15年3月19日20点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的格点预报数据头文件为:
[0043] diamond 4 15年3月19日20点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] 之前的数据块为:
[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引压缩时,先把每个数字乘W10,将单位调整为原单位的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] 则压缩后的数据为:
[0化1 ] 11711711411110210110010309809710110310610710310711111311711811711811811811812 0121120118122120120118124126124123122122.. .
[0052]将头文件与数据块两者组合,完整的压缩后的数据文件为:
[0化3] 05015031920002525360180000090014500370452401171171141111021011001030980971011 03106107103107111113117118117118118118118120121120118122120120118124126124123 122122.. .
[0054]上述各实施例仅用于说明本发明,各个步骤都是可W有所变化的,在本发明技术 方案的基础上,凡根据本发明原理对个别步骤进行的改进和等同变换,均不应排除在本发 明的保护范围之外。
【主权项】
1. 一种Micaps第四类格点数据无损压缩算法,其特征在于包括以下步骤: 1) 对Micaps第四类格点数据的头部进行压缩,即重新定义数据头部格式,压缩后的头 部文件共47位; 2) 对Micaps第四类格点数据的数据部分处理压缩:首先把每个数据乘以10,将单位调 整为原单位的0.1;然后,根据头部文件相应的level指示位,去除每个数据前面重复的前两 位; 3) 将步骤1)中的头部文件与步骤2)中压缩后的数据部分组合后得到完整的压缩后数 据文件; 4) 采用libzip对步骤3)中的数据文件再次压缩,最后生成".zim4"的文件,并对再次压 缩后的文件计算HASH值,保存该HASH值。2. 如权利要求1所述的一种Micaps第四类格点数据无损压缩算法,其特征在于:所述步 骤1)中,压缩后的头部文件结构如下: organization: 1位,0为ECMWF数据; Level指示位:2位,50表示500百帕,85表示850百帕,00表示海平面; 年月日时次:10位,遵循Micaps数据惯例,使用北京时; 时效:2位; 经度格距:2位,精度为0.1; 炜度格距:2位,精度为0.1; 起始经度:3位,取值0~360; 终止经度:3位,取值0~360; 起始炜度:3位,取值0~180; 终止炜度:3位,取值0~180; 炜向格点数:4位; 经向格点数:4位; 等值线间隔:2位; 等值线起始值:2位; 终止值:2位; 平滑系数加粗线值:2位,为00,表示画等值线同时填图。3. 如权利要求1或2所述的一种Micaps第四类格点数据无损压缩算法,其特征在于:所 述步骤2)中,数据部分使用unsigned integer类型,单位为0.1单位。4. 如权利要求1所述的一种Micaps第四类格点数据无损压缩算法,其特征在于:对压缩 后数据还原步骤如下: (1) 使用libzip对数据文件初步解压缩,解压后生成临时文件".zim4.unzip" ; (2) 对临时文件进行预处理,先读取临时文件的头部文件,共计47位;然后将头部文件 还原为Micaps格点数据文件的头部格式,并记录level的层次; (3) 根据level指示位的描述,每次读取不同位数字符串;level为'00'时,依次读取3个 字符串,当这3位字符串组成的数据大于500时,还原后的数据为由这3位数字组成的字符串 所表示的数据再加上9000;如果这3位字符串组成的数据小于500时,还原后的数据为由这3 位数字组成的字符串所表示的数据再加上10000,然后除以10,完成数据还原;level值为其 他值时按照气象填图规范进行还原。
【文档编号】H03M7/30GK105871382SQ201610185773
【公开日】2016年8月17日
【申请日】2016年3月29日
【发明人】王强生
【申请人】中海油信息科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1