python编程案例_气象编程 | Python:一个简单的风数据处理和分析案例

5bd5738da52589fb640aa3b9982bfbb7.png

添加新云天气象小编微信或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()   

5e35ff1d7987882d0a0821f3ca306435.png

# 加载日期和时间函数库,处理与日期和时间有关的变量或数值

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方法就是把每个时间值串起来形成一个列表</

  • 0
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值