You are on page 1of 2

2019 年第 9 期 信息通信 2019

(总第 201 期) INFORMATION & COMMUNICATIONS (Sum. No 201)

基于 Python 的风向风速数据分析的设计与实现
李文倩,刘 婕
(宿迁学院信息工程学院,江苏 宿迁 223800)

摘要:
Python 语言简介,功能强大,不仅在人工智能上凸显其优势,而且在数据分析等应用领域也有着广泛的应用。本文
以江苏省气象数据为例, 运用 Python 语言的科学计算包、图像处理数据包实现气象数据的风向风速分析, 给出了风向风
速的玫瑰图,根据玫瑰图预测了气象的未来走势,完成了系统的图形化设计。
关键词:数据分析;数据可视化;风向玫瑰图;气象数据预测
中图分类号:TP312.1 文献标识码:A 文章编号:1673-1131(2019)09-0029-02

0 引言
随着信息化的普及和科技的发展,气象信息化已成为服
务社会不可或缺的一部分。气象部门每天都会产生出大量
的数据,发掘数据中的潜在价值,解决“数据丰富,信息贫乏”
的问题,成为迫切的任务。气象数据的分析离不开计算机的
处理,选择合适的计算机语言分析数据可以起到事半功倍的
效果。基于 Python 的风向风速数据分析的设计与实现,首
先要获取大量数据存储在本地,通过对数据建模分析,利用 图 2 数据预处理
Python 丰富的库进行特征提取,进而用 Python 的图像包对 2.2 数据分析
直观的数据进行可视化,通过分析风向玫瑰图预测风向风速 Numpy 是一个 Python 的科学计算的基础包,支持大量的
的走势。 维度数组与矩阵运算,同时针对数组运算提供大量的数学函
数库 [1]。通过 Numpy 对数据预处理后得到的 Excel 表格进行
1 语言简介
数据分析,为接下来利用 Matplotlib 库进行数据可视化提供便
Python 是一个高层次并结合了解释性、编译性、互动性 利。通过前期数据预处理,对数据进行整理、清洗、过滤并分
和完全面向对象的脚本语言,Python 较其他语言而言,具有 析。
将数据分析后的数据表格导入并读取, 数据源文件是 Excel
丰富的标准库与第三方库,使其在数据分析等数据应用方面 表格,分别是江苏省 2018 年各城市的风向风速数据。
具有无可比拟的优势 [3]。Python 中内置常用数据结构与算 2.3 数据可视化
法,不仅有利于提高程序的易读性,而且使数据分析中的数 在大数据时代, 需用数据进行事实论证, 并进行分析预测。
据可视化易于实现。此外,Python 还被称为“胶水”语言,有 基于 Python 的风向风速数据分析的设计与实现,通过 xlrd 扩
很强的融合能力,利用“胶水”特性,Python 能够与其他语言 展包导入 Excel 表格,调用 open_workbook 函数读取表格中数
的各种模块连接在一起自动运行,发挥良好嵌入扩展的优 据。将各个城市属性列放入 city 数组中,以便于运行图统一
势。 存储, 对城市进行统一分析。 在编写代码过程中,通过设置 Py-
plot 图像包中的 rcParams 属性来解决 Python 中文显示的问题。
2 气象数据分析
基于 Python 的风向风速数据分析预测需通过风向玫瑰图
风向风速数据分析整体框架如图 1 所示。 来进行数据可视化,运用公式(1)得到风向频率。

(1)

图 1 整体框架图 公式(1)中 gn 为 n 方向的风向频率,fn 为这段时间内出现


n 方向风的次数,c 为静风次数。频率最大的方位,表示该方位
数据的预处理包含了数据的清洗、过滤及特征选择;数据
风出现次数最多。
分析主要运用 Python 中 Numpy 包建模分析,通过数据分析获
基于 Python 的风向风速数据可视化,指在读取表格中风
取全年的风向风速气象数据,为数据可视化后的分析预测做
向风速的数据后,利用 Python 中强大的 Matplotlib 图形绘制
好准备;数据可视化借助图形,清晰有效地展示信息,提高了
库实现风向风速玫瑰图。实现数据可视化的主要步骤是调用
分析预测的准确性;数据预测是分析数据可视化后形成的图
Matplotlib 库中的 WindroseAxes.from_ax 函数进行数据图像
像,从而对气象数据进行预测。
显示,并可借助第三方图像工具包 Pyplot 对图片进行设置,使
2.1 数据预处理 获得的图像更加清晰直观。
数据预处理是指在数据分析之前对数据进行的一些特征 数据可视化过程如图 3 所示。
提取。通过从“中国天气网”、
“中国气象网”等网站上查找相
关气象数据后,对数据进行分类整理并进行清洗、过滤,清洗
不符合事实的数据、过滤重复的数据。将处理后数据转化 Excel
表格,以提高数据的准确性,便于数据分析。数据预处理过程
如图 2 所示。 图 3 数据可视化

29
信息通信 李文倩等:基于 Python 的风向风速数据分析的设计与实现

2.4 气象数据分析预测 图 4 中,南京全年以东北风为主导风向,风向主要以东


基于 Python 的风向风速数据分析的设计与实现,主要 偏北为主,其次为东偏南方向,其他方向均较少。风频大多
对各城市的风向风速玫瑰图进行分析理解,从而得出江苏省 时候处于 2.6~5.2m/s 范围内,少部时间处于 0.0~2.6m/s 范
各城市的风向风速变化规律及各城市之间的相同点及不同 围内,极少时候处于 5.2~7.8m/s 范围内。风频最高可达到
点,并与事实进行对比论证,更加准确的预测出各城市未来 7.8~10.4m/s 的范围,但处于此范围的风较少。南京 2018 年
的风向风速变化方向,对未来气象数据预测分析有着深远的 全年中未出现风频处于 10.4~13.0 与 13.0~infm/s 范围内的
影响。 风。图 5 中,徐州全年以东风为主导风向,风向主要以正东
图 4、图 5 例图中,风速共分为六个范围,不同的颜色代 为主,其次为东偏北、东偏南方向,其他方向均较少。风频
表不同的风频。每块扇形区域所占面积的大小则表示该地 大多时候处于 1.8~3.6m/s 范围内,其余风频相对较少。风
区风向风的出现频率,频率最大的方位表示该地区的主导风 频最高可达到 7.2~9.0m/s 的范围,但处于此范围的风较少。
向。 徐州 2018 年全年中未出现风频处于 9.0~inf? m/s 范围内的
图 4、图 5 分别是以南京和徐州全年风向风速玫瑰图为例 风。
的示图: 由于南京属于亚热带季风气候, 受季风影响,风向以东偏
北方向为主。而徐州地处江苏省的北端,受副热带高压北抬
的影响,势力加强,风向以东南方向为主。图 4 中,南京全年
以东北风为主导风向; 图 5 中,
徐州全年以正东风为主导风向,
其次是东南风。整体来说,分析结果与事实相符。南京与徐
州的风向大致相同,但由于徐州较南京而言地势偏低, 因此南
京的整体风频略高于徐州。图 4、图 5 预测,未来南京的风向
仍旧以东偏北方向为主,东偏南方向次之, 其他方向较少。风
频最低处于 0.0~2.6m/s 范围内,最高可达到 7.8~10.4m/s 的范
围,但整体风频还是处于 2.6~5.2m/s 范围内。
未来徐州的风向以正东方向为主,东偏南方向次之,其
他方向均较少。风频最低处于 0.0~1.8m/s 范围内,最高可达
到 7.2~9.0m/s 的范围,但整体风频还是处于在 1.8~3.6m/s 范
围内。
3 结语
将新的科学技术应用在不同的行业领域,必然推动这行
业的进步和发展。本文将近年来热门的 Python 技术应用在气
象分析行业,利用 Python 语言处理大量数据的优势,
围绕气象
的风向风速进行分析:从数据预处理、数据分析、数据可视化、
图 4 南京全年风向风速分布图 数据预测等方面详细讲解了实现的过程。后续将进一步结合
气象数据进行更全面的分析,完善气象预测的功能和显示性
能。基于 Python 的气象数据分析方法对其他行业的数据分析
提供了参考。
参考文献:
[ 1] 黄红梅,张良均.Python 数据分析与应用[M].北京:
人民邮
电出版社,2018.
[ 2] 阮敬. Python 数据分析基础 [M]. 北京:中国统计出版社,
2017.
[3] [美]阿曼多·凡丹戈.Python 数据分析(第 2 版)[M].北京:
人民邮电出版社,2018.
[ 4] 零一,韩要宾,黄圆圆.Python3 爬虫、数据清洗与可视化实
战[M].北京:
电子工业出版社,2018.
[ 5] 曹丽娟, 周玲,陈艳丽,马广亮.风玫瑰图的研究与程序自
动成图设计[J].计算机工程:2013,02.

图 5 徐州全年风向风速分布图

30

You might also like