添加新云天气象小编微信或QQ:130188121,及时获取或发布气象升学、就业、会议、征稿及学术动态信息!
最新热点文章:气象招聘 | 气象人才招聘会官网上线了!
2020上海国际气象人才招聘会 | 人才报名入口
2020上海国际气象人才招聘会 | 用人单位报名入口
今天我们来讲讲风数据的简单处理和分析。通过这个案例,你将知道一些与风数据处理和分析有关的Python函数库和绘图方法。具体内容如下:
1)如何从网络上获取数据并读取格式化数据(reading data)
2)如何处理时间变量(datetime variable)
3)如何判别异常值和去除异常值(Outlier)
4)如何使用Pandas.DataFrame来筛选、整合、选择数据
5)如何绘制风玫瑰图
6)如何绘制数据的统计分布曲线
7)如何从数据中获取Weibull分布参数
8)如何绘制16位风向统计柱状图
9)如何绘制单点风矢量动画和GIF输出
10)如何绘制箱式统计图(boxplot)
11)风的矢量分解函数的使用
Python编程语言已经成为世界上最流行和受欢迎的编程语言。它的灵活性和易用性已经强大的函数库吸引了数据分析爱好者。今天我们一起来看一例使用Python语言来处理和分析风数据的一个案例。希望这个案例能够帮助到大家。
风数据是我们应用气象专业的同行们经常要接触的。相比温度、降水量、太阳辐射等气象要素,风要素的重要特征是它是一个矢量要素,有方向有大小。风方向从正北方向为0°开始,顺时针转向360°,因此正东方向就对应风向90°,正南为180°,正西为270°,正北为0°。在气象上通常将风向划分为16个方向,用符号N,NNE,NE,...来表示。风速则根据风速大小划分等级,比如国际通用的风力等级:蒲福风级(https://baike.baidu.com/item/蒲福风级)。因此有了风向、风速的分类分级,我们就可以对风要素进行分析,获取不同地方的风场特征。其中最重要的风场特征表现形式是风玫瑰图。下面我们就风数据的读取、预处理和分析来做一个案例。
# 加载一些常用的Python函数库
# numpy是支持多维数据存储、运算、分析函数库
# pandas是结构化数据的存储、运算、分析函数库
# matplotlib是比用绘图函数库
# seaborn是绘图函数库
# warnings是运行警告函数库
import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as snsimport warnings
# 运行环境设置:在Notebook中抑制警告输出
warnings.filterwarnings('ignore')
# 在notebook中显示绘制的图像
%matplotlib
# 加载风数据。风数据存放在网络上。注:本案例的风数据是在原始数据基础上增加了噪声
url = 'https://raw.githubusercontent.com/yangsbin/Meteo_data_analysis/master/data/wind_data.txt'
# 通过Pandas的read_csv函数读取格式化数据,参数中sep是读取的原数据列的分隔符参数定义, header是头行(None就是无头行),names定义了每个数据列的名称;WD定义为风向;WS定义为风速
wind_data = pd.read_csv(url, sep = r'\s+', header = None, names = ['Year','Month','Day','Hour', 'WD','WS'])
# 原始数据中风速是10倍值,因此将读取后的数据中的风速列数据除10转化为正常值
wind_data.WS = wind_data.WS/10.0
# 浏览wind_data数据变量的前5行的数值
wind_data.head()
# 加载日期和时间函数库,处理与日期和时间有关的变量或数值
from datetime import datetime
# 定义一个空列表变量,用于存储时间变量
datetimes = []
# 定义year_v变量存放原数据中的Year数据列
year_v = wind_data['Year'].values
# 定义month_v变量存放原数据中的Month数据列
month_v = wind_data['Month'].values
# 定义day_v变量存放原数据中的Day数据列
day_v = wind_data['Day'].values
# 定义hour_v变量存放原数据中的Hour数据列
hour_v = wind_data['Hour'].values
# 下面的循环是整合各时间要素变量,每个时间值都是“年月日时”
# List数据类型的append方法就是把每个时间值串起来形成一个列表</