基于python的天气数据采集与可视化分析,对20个城市的天气适宜出行度分析

摘要

本项目旨在基于Python对20个城市的天气数据进行采集与可视化分析,以评估天气的适宜出行度。该分析通过四个主要指标进行量化,这些指标分别是天气状况良好率、空气质量优良率、气温适宜率和安全天气率。通过这些指标,我们能够有效地判断不同城市在特定时间段内的天气情况,从而为出行决策提供科学依据。

天气状况良好率是指出行时适宜露天行走的天气条件的比率。这包括晴天、阴天和多云天气,而排除降雨、降雪、沙尘和雾霾等不适宜的天气情况。通过分析历史天气数据,我们能够计算出各个城市在一定时间段内天气状况良好的天数占总天数的比例。

空气质量优良率是通过监测空气质量指数(AQI)来衡量的。AQI值小于等于100被视为空气质量良好,因此我们计算每个城市在分析期间内AQI小于等于100的天数比率。这一指标对出行的健康安全具有重要影响。

气温适宜率的计算基于每日气温的区间值。定义适宜温度为10至30度,因此我们的计算方法是将每日气温区间与适宜温度区间进行重合比对,计算重合部分占当日气温区间的比例。这一指标能够反映出适宜出行的温度环境。

安全天气率是指不出现对人类有危险的天气条件的比率。危险天气包括沙尘暴、严重的雨雪天气以及风速达到6级或以上的强风。通过监测这些天气状况,我们能够进一步评估出行的安全性。

将上述四个指标计算到手后,项目通过加权平均的方法综合评估天气适宜出行度。每个指标根据其在出行决策中的重要性赋予不同的权重,最终得出一个综合评分。这个评分将为用户提供一个简单明了的出行参考,使他们能够根据天气状况做出更明智的出行选择。

通过本项目的分析,我们不仅能够深入了解各城市的天气特点,还能帮助人们更好地规划出行,减少因天气导致的不便与风险。数据的可视化展示将使分析结果更加直观,便于受众理解与应用。未来,项目可以扩展至更多城市和时间段,进一步增强分析的全面性和准确性。

分析思路

本次分析对中国20个城市,在一年中不同时间的天气是否适宜出行做了量化,总结出一些有用的规律,包括:

  • 在冬季(12、1、2月),南方城市如广州、福州、昆明的气温适宜,天气状况良好,适宜出行。
  • 在夏季(6、7、8月),北方城市如银川、长春、呼和浩特等城市的气温适宜,天气状况良好,适宜出行。
  • 在4-5月以及9-10月份,大部分城市的出行天气适宜度都达到一年中的较好乃至最好的时期。

数据说明

数据通过python数据采集了2345天气网站包含了2019年1月1日到2023年12月31日的5年时间里,中国20个城市的每日天气指标,包括最低最高气温、晴雨情况、空气质量以及风速风向。这20个城市分别是武汉、杭州、天津、长春、广州、沈阳、南宁、北京、哈尔滨、南京、合肥、昆明、南昌、福州、太原、济南、海口、呼和浩特、西宁、银川。

其中呼和浩特、海口、西宁、银川四个城市在2019年9月21日到9月22日的天气数据存在数据缺失,但缺失数量较少,对本次分析影响不大。

主要代码如下:

# 新建一个excel工作簿对象
wb = Workbook()
sheet = wb.active
list1=[('杭州', '58457'), ('湖州', '58450'), ('嘉兴', '58452'), ('金华', '58549'), ('丽水', '58646'), ('宁波', '58465'), ('衢州', '58633'), ('绍兴', '58453'), ('台州', '58651'), ('温州', '58659'), ('舟山', '58477')]

# 指定需要的城市id和月份
city_id_list = ["58457", "58457"]
month_list = ["8", "9"]
start_row = 0

# 循环调用get_weather函数
for city_id in city_id_list:
    for month in month_list:
        start_row = get_weather(city_id, month, start_row)

天气适宜出行度怎么算?

天气适宜出行度是一个综合指标。其由下面四个指标的加权平均数:

  • 天气状况良好率:出现适宜露天行走的天气,包括晴天、阴天、多云天气(也就是不是雨雪沙雾霾的天气)等天气的比率。
  • 空气质量优良率:空气质量指数(AQI)<=100的比率。
  • 气温适宜率:设10-30度为适宜温度。因为每日气温是一个区间值,因此计算方式是气温区间和适宜温度的区间进行对比,计算重合的部分占当日气温区间的比率。
  • 安全天气率:不出现对人有危险的天气的比率。这里的危险天气包括沙雾霾天气、大/暴级别的雨雪天气、6级以上大风。之所以没有包括高温和低温,是因为已经包含在气温适宜率中了。

得到上述四个指标后,对其取加权平均数,即得到天气适宜出行度

其中w_1,w_2,w_3,w_4代表相应指标的权重,目前全部为1,即四个指标的权重相同。

环境准备

python3.7及以上版本+pycharm+matplotlib库+requests库+pandas库

天气适宜出行度的分布

从中可以看到

  • 4-5月以及9-10月是各个城市普遍的出行好时候。而且刚好遇上五一节和国庆节。
  • 在冬季(12、1、2月),福州、广州、昆明等偏南方城市的天气适宜出行度较好。这些城市有着适宜的温度和更高比率的好天气。
  • 而在夏季(6、7、8月),因为高温和增加的降水等原因,许多南方城市也会转入不适宜出行的时节。而此时偏北方的银川、呼和浩特、长春等城市变得适宜出行。

一些旅游城市的情况:

  • 杭州最佳的出行月份是10月,其次是9月和4月。
  • 昆明最佳的出行月份是3月,其次是4月和11月。
  • 海口最佳的出行月份是12月,其次是2月和3月

天气适宜出行度聚类

  • 上图中,天气出行适度越相似的城市和月份会聚集在一起。例如广州、海口、昆明、福州、南宁就有着较高的相似度。

一些城市的天气适宜出行度

  • 昆明全年的天气都较适宜出行。不过6月到10月会进入雨水较多的时期,对于出行会造成影响。而冬季的气温不如春秋季适宜,所以最佳的出行时间是3-4月以及11月。
  • 从杭州的天气情况来看,最适宜出行的时间是4-5月和9-11月。冬季和夏季主要因为气温条件不太适宜,因此较不适宜出行。
  • 广州夏季降水较多、气温高,因而不太适宜出行。最佳的出行时间是10月份到2月份。
  • 哈尔滨最适宜出行的时间是夏天,这个时候气温适宜且空气质量较好。当然,在哈尔滨的冬季,其一些自然景观也是非常值得去体验的,但从天气角度看,不太适宜出行。
  • 银川在4月到9月之间气温进入较适宜的时期,且天气状态良好,空气质量较好,是出行的好时间。

特殊气象特征的出行选择

考虑到一些出行需求是和特殊气象特征相关的,比如赏雪、观雨。因此下面对一些特殊气象的出行需求提供数据支持,其包括:

相关推荐
l138494274518 分钟前
Java综合练习
java·开发语言·算法
人机emmo_490372112219 分钟前
第4关 Java分支结构之Switch【Java 分支结构之 Switch:灵活的选择利器】
java·开发语言·python
重生之我是数学王子25 分钟前
QT 实现仿制 网络调试器(未实现连接唯一性) QT5.12.3环境 C++实现
开发语言·c++·qt
cuber膜拜38 分钟前
pip 与当前python环境版本不匹配, pyenv, pipenv, conda
python·conda·pip
枫の准大一1 小时前
C++从零到满绩——类和对象(中)
开发语言·c++
HEX9CF1 小时前
【数字图像处理+MATLAB】通过 Roberts, Prewitt, Sobel, LoG 等算子实现图像边缘检测:使用 edge 函数
开发语言·matlab·edge
研一计算机小白一枚1 小时前
Which Tasks Should Be Learned Together in Multi-task Learning? 译文
人工智能·python·学习·机器学习
凡人的AI工具箱1 小时前
40分钟学 Go 语言高并发实战:高性能缓存组件开发
开发语言·后端·缓存·架构·golang
大白的编程日记.1 小时前
【C++笔记】数据结构进阶之二叉搜索树(BSTree)
开发语言·数据结构·c++·笔记
Eric.Lee20211 小时前
数据集-目标检测系列- 蘑菇 检测数据集 mushroom >> DataBall
人工智能·python·yolo·目标检测·计算机视觉·蘑菇检测