摘 要:本文主要是针对天气预报数据的特点,对其进行数据预处理,然后用Huffman算法、算术编码对其进行数据压缩,并与压缩软件WinRAR的压缩结果进行性能比较。
关键词:天气预报数据压缩;压缩算法优化;Huffman算法;算术编码
1、引言
随着我国经济和社会的不断发展,天气预报和气象服务深入到经济发展和社会生活的任何一个角落,气象信息对社会发展的作用比任何时期都显著,当代社会气象信息的需求呈数百倍的增长。
3、天气预报数据的特征分析及算法设计
天气预报数据是一种特殊数据。它不仅含有结构,而且相邻的数据之间紧密相关。天气预报数据相邻区域的气温非常相近,而且天气预报数据很多都是有取值范围,如温度一般在-50 ℃ 与50 ℃之间,风力在12级以内,等等。天气预报中的各种中文表示都占用了较多的存放空间。针对这些问题,我们可以做相应的数据转换,对天气预报数据进行预处理,然后再进行压缩实验。具体处理方法如下:
(1) 天气预报中的地名若用中文表示,需要占用较多的存放空间。对于这一问题,我们是用编号取代中文表示,这样可以压缩很多字节。然后,再对用编号代替后的城市名进行差分,即前后两个编号作差,最后得到一串全1的数据。
(2)天气预报数据中的天气若用中文表示,需要占用较多的存放空间,而且很多地方可能会出现相同的天气现象,因此,可以对天气信息做如下处理后,再进行压缩。每种天气现象分别用数字1,2,3……表示并代替。例如,定义“晴”用1表示,“阴”用2表示,则为“晴转阴”开辟两个字节的存储空间,用对应的编号将其储存。如果只有一种天气现象是“晴”,则表示为“晴转晴”,即
(3)一般地,相邻区域的气温非常相近。根据这一特点,我们将对相邻区域的气温进行差值运算。例如,哈尔滨的气温为21~6,长春的气温为19~6,则可表示为两者对应温度差分别 3 和 0。
(4)对风向的数据处理,与2中对天气的处理相同。
(5)对风速的数据做如下处理:
①风速用“-”表示的,定义为风速是0级,即“-”就表示为“0-0级”;
②风速为“n级”的,用“n-n级”表示;
最后,输出风速对应项之差,例如,哈尔滨风速“5-6级”,长春风速“5-6级”,转换后,可以得到两者对应风速差分别为0和0。
(6)对于有取值范围的数据,我们会限制它的存放字长,从而减少它的存放空间,达到压缩目的。
经过上面的数据预处理后,整个文件的数据大部分都集中在0值附近,这就表明,天气预报数据具有较大的压缩空间,可以利用数据的这个统计特性对数据进行压缩。 然后分别用Huffman算法和算术编码对其进行数据压缩。
4、实验结果分析
在C环境下,采用3中的算法对天气预报数据进行压缩实验,并从压缩性能上与常用压缩软件WinRAR进行比较。
实验的数据为实测的天气预报的txt文本类型数据,该文件的大小为966字节。首先在C环境下,对源文档数据进行数据预处理,然后运行Huffman算法、算术编码算法,进行实验,得到实验结果并进行性能比较如表4-1所示。
表4-1 本文压缩算法实验结果对比
压缩算法天气预报预处理后数据大小压缩后数据大小Huffman804字节246字节算术编码804字节268字节WinRAR804字节274字节WinRAR(未处理)968节485字节 从表4-3的实验结果可以知道,对天气预报数据做过预处理后,数据的大小从968字节变为了804字节,很显然,做过预处理的数据大小明显减少了,达到了减少存放空间的目的。
与数据处理前的实验结果相比较,经过数据预处理后的数据,再使用WinRAR软件进行压缩,压缩后数据大小有明显变小,压缩效果良好。
由上表中还可以看出,与通用压缩软件WinRAR相比,本文的算法对天气预报数据的压缩压缩效果较好。因此,可以说本文的压缩算法用于对天气预报数据进行数据压缩是非常有效的。
5、结论
本实验得到了我们满意的结果:数据预处理后,数据大小有明显减小;与WinRAR软件相比,我们的压缩率有明显提高,压缩效果良好。但是本文在算法过程中并没有考虑到压缩速度和压缩时间的问题,也仅仅使用了最普遍简单的Huffman算法和算术编码,因此,可以试着尝试其他更复杂的算法,并把压缩时间和速度考虑在内,找到更好的算法来实现压缩。
参考文献
.北京:电子工业出版社.1995:94-114
中国论文网(www.lunwen.net.cn)免费学术期刊论文发表,目录,论文查重入口,本科毕业论文怎么写,职称论文范文,论文摘要,论文文献资料,毕业论文格式,论文检测降重服务。