年初写了篇文章《2020 年,西安气温变舒适了》,通过对过去几年平均月度气温的分析,可看出: 2020 年西安确实变温暖了,但夏天却比其他年份要稍微凉快点。
根据生活体验,除了气温,感觉近几年也越来越潮湿。年中网上有篇文章,标题大意是「西北地区正变得湿热,西安恐成最大赢家」,这说法相当惊艳。反正找数据,顺带找来西北七个市区的,一同分析下是不是这样。
气相数据集来自一款软件「小麦芽」,内容为各地气象站逐年数据,分别是:泾河站(西安)、榆中站(兰州)、银川站、酒泉站、西宁站、格尔木站、乌鲁木齐站。有五个气象站位于西北五省省会,甘肃和青海因为地域太广袤,各选了距离一千多公里的两个气相站。数据集中与潮湿有关的参数有四个:年降水量、年降水天数、露点温度、单日最大降水量。
降水指下雨或下雪。露点温度指空气中水汽与水的平衡温度,露点温度越高,会感觉越潮湿。
因为西安在2006年将数据对外口径从西安站改为泾河站,而且泾河站2006年数据不全,所以只取了各地2007年至2021年10月的数据。
数据集概览见下表。
pythonimport pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline
rc = {'axes.unicode_minus': False, 'figure.figsize':(15.0, 6.0)}
sns.set(context='notebook', style='ticks', font='SimHei', rc=rc)
pythondatalist = [
r'data\逐年数据\小麦芽\西安泾河气象数据-2006-2021-年度-来自小麦芽.xls',
r'data\逐年数据\小麦芽\格尔木气象数据-1980-2021-年度-来自小麦芽.xls',
r'data\逐年数据\小麦芽\酒泉气象数据-1980-2021-年度-来自小麦芽.xls',
r'data\逐年数据\小麦芽\兰州榆中气象数据-2004-2021-年度-来自小麦芽.xls',
r'data\逐年数据\小麦芽\乌鲁木齐气象数据-1980-2021-年度-来自小麦芽.xls',
r'data\逐年数据\小麦芽\西宁气象数据-1980-2021-年度-来自小麦芽.xls',
r'data\逐年数据\小麦芽\银川气象数据-1980-2021-年度-来自小麦芽.xls'
]
dflist = []
for i in datalist:
temps = pd.read_excel(i)
temps1 = temps[temps['年份']>2006]
dflist.append(temps1)
df1 = pd.concat(dflist)
df1['站名'].replace('JINGHE, CH', '西安泾河', inplace=True)
df1['站名'].replace('GOLMUD, CH', '格尔木', inplace=True)
df1['站名'].replace('JIUQUAN SUZHOU, CH', '酒泉', inplace=True)
df1['站名'].replace('YU ZHONG, CH', '兰州榆中', inplace=True)
df1['站名'].replace('WU LU MU QI, CH', '乌鲁木齐', inplace=True)
df1['站名'].replace('XINING, CH', '西宁', inplace=True)
df1['站名'].replace('YINCHUAN, CH', '银川', inplace=True)
display(df1)
降水量增加有助于潮湿度提高。通过各年降水量条形图,发现西北七市大概从2015年左右开始有个降雨量增加趋势,最大值在2017~2019年,2019年之后年降水量有所降低,但也不低于2015年前平均值。
其中西安和格尔木比较特别,今年降水量是近15年来最大值,这还只是今年前10个月的数据。
乌鲁木齐和酒泉这两个地理位置最靠西边的城市,2015年之后降水量增长得有点极端,基本是之前好几倍。比如乌鲁木齐,2017年降水量大概是2015年的3倍。而且出乎意料的是,这两个市在2016~2019年间,几乎每年降水量都超过了地理位置最东的西安。
如果不是数据的问题,那么2015~2018年间,西北应该是发生了某种气候事件,导致降水量异常增加。
pythong1 = sns.catplot(
kind='bar',
x='年份',
y='降水量(mm)',
col='站名',
col_wrap=2,
col_order=['兰州榆中', '格尔木', '酒泉', '西安泾河', '乌鲁木齐', '西宁', '银川'],
ci=None,
data=df1
)
g1.set_axis_labels("年份", "降水量/mm", fontsize=14)
g1.set_xticklabels(rotation=60)
g1.fig.subplots_adjust(top=0.92) # adjust the Figure in rp
g1.fig.suptitle('西北七市年降水量', fontsize=14)
年降水天数,从直观上更容易察觉,一年下雨天数多了,就会觉得雨下的更多了。
从图上看,2013年之后,西北七市的年降水天数都有明显增加,同样在2017或2018年左右出现降水天数最多的一年。
北方人对降雨要比南方人敏感,仅凭生活经验,2013年之后确实更潮湿了。
pythong2 = sns.catplot(
kind='bar',
x='年份',
y='降水天数',
col='站名',
col_wrap=2,
col_order=['兰州榆中', '格尔木', '酒泉', '西安泾河', '乌鲁木齐', '西宁', '银川'],
ci=None, data=df1
)
g2.set_axis_labels("年份", "降水天数/天", fontsize=14)
g2.set_xticklabels(rotation=60)
g2.fig.subplots_adjust(top=0.92) # adjust the Figure in rp
g2.fig.suptitle('西北七市年降水天数', fontsize=14)
看下近15年,每年的雨下得最大的那一天的降水量是多少,也能看出下雨下得多极端。
单日最大降雨量图上,看不来各市区有什么趋势,近年来每年最大降雨量的变化幅度都很大。
用今年与去年相比,西安单日最大降雨量上升最多,乌鲁木齐下降最多。西安今年夏天下了好几场瓢泼大雨,好多年都没见过雨那么大的。2015至2020年间,乌鲁木齐的单日最大降雨量居然是这七市最大,这有点颠覆我对新疆的认知,一直以为那边少雨,也不会有大暴雨。
pythong4 = sns.relplot(
kind='line',
x='年份',
y='最大单日降水量(mm)',
hue='站名',
data=df1
)
g4.set_axis_labels("年份", "最大单日降水量/mm", fontsize=14)
g4.set_xticklabels(rotation=60)
g4.fig.suptitle('单日最大降雨量', fontsize=14)
平均露点温度不容易感知,但却能量化潮湿度。平均露点温度越高,越会感觉潮湿闷热。
从图上看,西安潮湿度遥遥领先其他六市,毕竟地理位置最东。而且近几年一直呈明显上升趋势,今年升高最多,更加潮湿。
相比2020年,西北七市今年湿度都有所升高。但除了西安,其他六市在2020年都出现近年来的最低平均露点温度,而且近15年来的变化趋势只见波动,并不见明显的上升。
pythong3 = sns.relplot(
kind='line',
x='年份',
y='平均露点温度(℃)',
hue='站名',
data=df1
)
g3.set_axis_labels("年份", "平均露点温度/℃", fontsize=14)
g3.set_xticklabels(rotation=60)
g3.fig.suptitle('平均露点温度', fontsize=14)
最后绘制一张西安的按照月降水量累积的年降水量图。
今年的降水量数据只有前10月的,但也已经超过往年。7、8、9三个月承包了大部分降雨,9月下的雨最多,10月初还下过一礼拜,之后进秋就没多少雨。
pythontemps = pd.read_csv('泾河站-2006-2021-月度气象数据-来自WheatA-整理后.csv', encoding="gbk")
ax = sns.histplot(
data=temps,
x='年份',
# Use the value variable here to turn histogram counts into weighted
# values.
weights='降水量(mm)',
hue='月份',
multiple='stack',
# Add white borders to the bars.
edgecolor='white',
# Shrink the bars a bit so they don't touch.
shrink=0.8,
bins=16,
# binwidth=0.6,
discrete=True,
palette=sns.diverging_palette(150, 275, s=80, l=55, n=12),
)
x = range(2006, 2022)
ax.set_xticks(x)
xlabs = range(2006, 2022)
ax.set_xticklabels(xlabs)
ax.set_ylabel("降水量/mm", fontsize=14)
ax.set_xlabel("年份", fontsize=14)
ax.set_title('西安年降水量', fontsize=14)
以上西北七市,从年降水量、年降水天数看,大概从2013年之后,确实变得湿了。但从平均露点温度看,只有西安明显变潮了。
西安这地一下雨就降温,因此今年夏天感觉不很热,雨多,潮湿。希望这种气候趋势能保持住,住着舒服,未来八水绕长安,京兆种蜜橘,没准能成真。
本文作者:tsingk
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!