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

技术编号:13567078 阅读:130 留言:0更新日期:2016-08-20 22:59
本发明专利技术涉及一种Micaps第四类格点数据无损压缩算法,其步骤:对Micaps第四类格点数据的头部进行压缩,即重新定义数据头部格式,压缩后的头部文件共47位;对Micaps第四类格点数据的数据部分处理压缩:首先把每个数据乘以10,将单位调整为原单位的0.1;然后,根据头部文件相应的level指示位,去除每个数据前面重复的前两位;将头部文件与压缩后的数据部分组合后得到完整的压缩后数据文件;采用libzip对数据文件再次压缩,最后生成“.zim4”的文件,为了确保文件的完整性,对再次压缩后的文件计算HASH值,并保存该HASH值。本发明专利技术能有效提高存储利用率,方便互联网、甚至北斗系统传输。

【技术实现步骤摘要】

本专利技术涉及一种数据压缩方法,特别是关于一种Micaps第四类格点数据无损压缩算法
技术介绍
目前,Micaps数据是由中国气象局为了便于气象专业工作者浏览、传输数据而研发的包括总共26总数据格式。在Micaps数据设计早期,由于当时气象预报无论是时间分辨率,还是空间分辨率都比较低,因此数据量较小。随着气象预报技术水平的提高,特别是大型计算机计算能力的提高,使得提高数值预报的时空分辨率得以大大提高,由此造成气象数据井喷。以前的数据格式造成生成的文件过大,不利于数据的长期保存和流动,大量气象数据由于没有足够的资金购买硬盘而不得不放弃保存。另外,传统的WinRaR或者WinZip的压缩工具,由于它们具有普适性,因此对于Micaps数据压缩的比率非常有限,无法达到较高比率的压缩比。因此,如何提高气象数据的利用率,便于地方台站或专业机构保存数据,而且又可以和以前的气象数据保持兼容成为目前亟待解决的技术问题。
技术实现思路
针对上述问题,本专利技术的目的是提供一种Micaps第四类格点数据无损压缩算法,该方法能有效提高存储利用率,方便互联网、甚至北斗系统传输。为实现上述目的,本专利技术采取以下技术方案:一种Micaps第四类格点数据无损压缩算法,其特征在于包括以下步骤:1)对Micaps第四类格点数据的头部进行压缩,即重新定义数据头部格式,压缩后的头部文件共47位;2)对Micaps第四类格点数据的数据部分处理压缩:首先把每个数据乘以10,将单位调整为原单位的0.1;然后,根据头部文件相应的level指示位,去除每个数据前面重复的前两位;3)将步骤1)中的头部文件与步骤2)中压缩后的数据部分组合后得到完整的压缩后数据文件;4)采用libzip对步骤3)中的数据文件再次压缩,最后生成“.zim4”的文件,并对再次压缩后的文件计算HASH值,保存该HASH值。进一步,所述步骤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,表示画等值线同时填图。进一步,所述步骤2)中,数据部分使用unsigned integer类型,单位为0.1单位。进一步,对压缩后数据还原步骤如下:(1)使用libzip对数据文件初步解压缩,解压后生成临时文件“.zim4.unzip”;(2)对临时文件进行预处理,先读取临时文件的头部文件,共计47位;然后将头部文件还原为Micaps格点数据文件的头部格式,并记录level的层次;(3)根据level指示位的描述,每次读取不同位数字符串;level为‘00’时,依次读取3个字符串,当这3位字符串组成的数据大于500时,还原后的数据为由这3位数字组成的字符串所表示的数据再加上9000;如果这3位字符串组成的数据小于500时,还原后的数据为由这3位数字组成的字符串所表示的数据再加上10000,然后除以10,完成数据还原;level值为其他值时按照气象填图规范进行还原。本专利技术由于采取以上技术方案,其具有以下优点:1、本专利技术经过对压缩前后的数据文件比对,压缩比最高高达70%,即,压缩后的文件仅为压缩前的30%,数据压缩比率较高。2、本专利技术采用的数据压缩方法为无损压缩,本专利技术根据气象数据的特性,气象数据取值的有限性,采用标志位的方式来针对Micaps第四类数据的内容进行标志,以便后期还原。具体实施方式下面结合实施例对本专利技术进行详细的描述。本专利技术提供一种Micaps第四类格点数据无损压缩算法,Micaps数据第4类格点数据文件格式为ASCII码的数据,该类型数据是用于画等值线的格点数据,网格为经纬度网格。本专利技术对Micaps第四类格点数据进行压缩,并将压缩后的文件后缀定义为“.zim4”,即zip micaps diamond 4的简写形式;压缩后的文件依然包括内容描述和数据两部分,且压缩后的文件由头部和数据块两部分组成。本专利技术具体包括以下步骤:1)对Micaps第四类格点数据的头部进行压缩,即重新定义数据头部格式,压缩后的头部文件共47位: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,表示画等值线同时填图。2)对Micaps第四类格点数据的数据部分处理压缩。数据部分结构是固定3位的连续值,单位为0.1;对数据部分进行压缩时,首先把每个数据乘以10,将单位调整为原单位的0.1;然后,根据头部文件相应的level指示位,去除每个数据前面重复的前两位。为了降低存储使用率,数据部分使用unsigned integer类型,所以单位为0.1单位。3)将步骤1)中的头部文件与步骤2)中压缩后的数据部分组合后得到完整的压缩后数据文件。4)采用libzip对步骤3)中的数据文件再次压缩,最后生成“.zim4”的文件,为了确保文件的完整性,对再次压缩后的文件计算HASH值,HASH值可以保存在其他文件或数据库里。上述各步骤中,对压缩后数据还原是数据压缩过程的逆过程,还原步骤如下:(1)使用libzip对数据文件初步解压缩,解压后生成临时文件“.zim4.unzip”。(2)对临时文件进行预处理,先读取临时文件的头部文件,共计47位;然后将头部文件还原为Micaps格点数据文件的头部格式,并记录level的层次,以便在后续还原数据时使用。(3)根据level指示位的描述,每次读取不同位数字符串。level为‘00’时,依次读取3个字符串,当这3位由数字组成的字符串所表示的数据(比如字
符串“990”表示的数据为990,下同)大于500时,那么还原后的数据为由这3位数字组成的字符串所表示的数据再加上9000;如果这3位由数字组成的字符串组所表示的数据小于500时,还原后的数据为由这3位数字组成的字符串所表示的数据再加上10000,然后除以10,完成数据还原。level值为其他值时按照气象填图规范进行还原。实施例:Micaps数据第4类格点数据文件为:diamond 4 15年3月19日20点ECMWF_海平面气压分析采用某天的ECMWF的格点预报数据头文件为:diamond 4 15年3月19日20点ECMWF_海平面气压分析压缩后的头部样式为:05015031本文档来自技高网
...

【技术保护点】
一种Micaps第四类格点数据无损压缩算法,其特征在于包括以下步骤:1)对Micaps第四类格点数据的头部进行压缩,即重新定义数据头部格式,压缩后的头部文件共47位;2)对Micaps第四类格点数据的数据部分处理压缩:首先把每个数据乘以10,将单位调整为原单位的0.1;然后,根据头部文件相应的level指示位,去除每个数据前面重复的前两位;3)将步骤1)中的头部文件与步骤2)中压缩后的数据部分组合后得到完整的压缩后数据文件;4)采用libzip对步骤3)中的数据文件再次压缩,最后生成“.zim4”的文件,并对再次压缩后的文件计算HASH值,保存该HASH值。

【技术特征摘要】
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...

【专利技术属性】
技术研发人员:王强生
申请(专利权)人:中海油信息科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1