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

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

Info

Publication number
CN105871382B
CN105871382B CN201610185773.0A CN201610185773A CN105871382B CN 105871382 B CN105871382 B CN 105871382B CN 201610185773 A CN201610185773 A CN 201610185773A CN 105871382 B CN105871382 B CN 105871382B
Authority
CN
China
Prior art keywords
data
file
micaps
compressed
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610185773.0A
Other languages
English (en)
Other versions
CN105871382A (zh
Inventor
王强生
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CNOOC Information Technology Co Ltd
Original Assignee
CNOOC Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CNOOC Information Technology Co Ltd filed Critical CNOOC Information Technology Co Ltd
Priority to CN201610185773.0A priority Critical patent/CN105871382B/zh
Publication of CN105871382A publication Critical patent/CN105871382A/zh
Application granted granted Critical
Publication of CN105871382B publication Critical patent/CN105871382B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction

Abstract

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

Description

一种Micaps第四类格点数据无损压缩算法
技术领域
本发明涉及一种数据压缩方法,特别是关于一种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_海平面气压分析
压缩后的头部样式为:0501503192000252536018000009001450037045240
之前的数据块为:
压缩时,先把每个数字乘以10,将单位调整为原单位的0.1。
则压缩后的数据为:
117117114111102101100103098097101103106107103107111113117118117118118118118120121120118122120120118124126124123122122...
将头文件与数据块两者组合,完整的压缩后的数据文件为:
0501503192000252536018000009001450037045240117117114111102101100103098097101103106107103107111113117118117118118118118120121120118122120120118124126124123122122...
上述各实施例仅用于说明本发明,各个步骤都是可以有所变化的,在本发明技术方案的基础上,凡根据本发明原理对个别步骤进行的改进和等同变换,均不应排除在本发明的保护范围之外。

Claims (3)

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单位。
CN201610185773.0A 2016-03-29 2016-03-29 一种Micaps第四类格点数据无损压缩算法 Active CN105871382B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610185773.0A CN105871382B (zh) 2016-03-29 2016-03-29 一种Micaps第四类格点数据无损压缩算法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610185773.0A CN105871382B (zh) 2016-03-29 2016-03-29 一种Micaps第四类格点数据无损压缩算法

Publications (2)

Publication Number Publication Date
CN105871382A CN105871382A (zh) 2016-08-17
CN105871382B true CN105871382B (zh) 2019-10-18

Family

ID=56626249

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610185773.0A Active CN105871382B (zh) 2016-03-29 2016-03-29 一种Micaps第四类格点数据无损压缩算法

Country Status (1)

Country Link
CN (1) CN105871382B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109274377A (zh) * 2018-08-22 2019-01-25 泰康保险集团股份有限公司 区块链网络的数据处理方法、装置、介质及电子设备
US10630312B1 (en) 2019-01-31 2020-04-21 International Business Machines Corporation General-purpose processor instruction to perform compression/decompression operations
US10831497B2 (en) 2019-01-31 2020-11-10 International Business Machines Corporation Compression/decompression instruction specifying a history buffer to be used in the compression/decompression of data
CN113704207B (zh) * 2021-08-10 2023-05-09 南京信息工程大学 一种基于视频压缩技术的高空气象数据压缩及解码方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104166549A (zh) * 2014-08-08 2014-11-26 江苏省气象科学研究所 气象要素等值面分析平台及构建方法
CN105182450A (zh) * 2015-10-15 2015-12-23 成都信息工程大学 一种强对流天气短时预警系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104166549A (zh) * 2014-08-08 2014-11-26 江苏省气象科学研究所 气象要素等值面分析平台及构建方法
CN105182450A (zh) * 2015-10-15 2015-12-23 成都信息工程大学 一种强对流天气短时预警系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
调用WinRAR压缩备份Micaps数据文件;姚愚等;《成都信息工程学院学报》;20130615;全文 *

Also Published As

Publication number Publication date
CN105871382A (zh) 2016-08-17

Similar Documents

Publication Publication Date Title
CN105871382B (zh) 一种Micaps第四类格点数据无损压缩算法
CN102906751B (zh) 一种数据存储、数据查询的方法及装置
EP3812915B1 (en) Big data statistics at data-block level
US10089341B2 (en) Multidimensional data storage and retrieval method for monitoring system
CN104348490A (zh) 一种基于效果优选的组合数据压缩算法
TWI683548B (zh) 資料壓縮存儲方法、資料壓縮存儲裝置、電腦可讀取記錄媒體以及電腦設備
CN102682024B (zh) 未残缺jpeg文件碎片重组的方法
CN104753540A (zh) 数据压缩方法、数据解压方法和装置
CN101968796B (zh) 一种双向并发执行的文件级可变长数据分块方法
CN107301194A (zh) 瓦片式栅格地图的压缩存储及发布方法
CN104112010B (zh) 一种数据存储方法及装置
CN106202708B (zh) 一种将勘察测绘得出的cad地形图快速入库的方法
CN106095991B (zh) 一种自动生成从关系型数据库向MongoDB数据库数据迁移的代码的方法
CN102497450A (zh) 一种基于两级体系的分布式数据压缩处理方法
US20110258163A1 (en) Dynamically created two-stage self extracting archives
CN105787090A (zh) 一种电力数据的olap系统的索引建立方法和系统
CN114187369A (zh) 一种基于视频压缩技术的气象预报数据压缩方法
CN105872731A (zh) 数据处理的方法和装置
CN105631000B (zh) 基于移动终端位置特征信息的终端缓存的数据压缩方法
CN107436848B (zh) 一种实现用户数据和压缩数据间转换的方法及装置
CN110349635A (zh) 一种基因测序数据质量分数的并行压缩方法
CN103744885A (zh) 一种基于子块的融合颜色和方向特征的图像检索方法
CN205681582U (zh) 4k高清后期非编处理系统
CN110021349A (zh) 基因数据的编码方法
CN112181920A (zh) 一种车联网大数据高性能压缩存储方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant