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

news2024/11/23 9:34:47

摘要

本项目旨在基于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月之间气温进入较适宜的时期,且天气状态良好,空气质量较好,是出行的好时间。

特殊气象特征的出行选择 

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2237352.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

外贸管理利器7选,助力高效办公

推荐7款外贸管理软件&#xff0c;包括ZohoBooks、ZohoCRM、富通天下等&#xff0c;各具特色&#xff0c;满足外贸企业不同需求&#xff0c;提高管理效率&#xff0c;助力企业全球化竞争。、 一、Zoho Books Zoho Books是一款外贸财务管理软件&#xff0c;不仅为用户提供了一个…

【JWT】Asp.Net Core中JWT刷新Token解决方案

Asp.Net Core中JWT刷新Token解决方案 前言方案一:当我们操作某个需要token作为请求头的接口时,返回的数据错误error.response.status === 401,说明我们的token已经过期了。方案二:实现用户无感知的刷新token值,我们希望当响应返回的数据是401身份过期时,响应阻拦器自动帮我…

当AI遇上时尚:未来的衣橱会由机器人来打理吗?

内容概要 在当今这个快速发展的时代&#xff0c;人工智能与时尚的结合正在逐渐改写我们对衣橱管理的认知。传统的衣橱管理常常面临着空间不足、穿搭单调及库存过多等挑战&#xff0c;许多人在挑选服饰时难以做出决策。然而&#xff0c;随着技术的进步&#xff0c;智能推荐和自…

编写虚拟的GPIO控制器的驱动程序:和pinctrl的交互使用

往期内容 本专栏往期内容&#xff1a; Pinctrl子系统和其主要结构体引入Pinctrl子系统pinctrl_desc结构体进一步介绍Pinctrl子系统中client端设备树相关数据结构介绍和解析inctrl子系统中Pincontroller构造过程驱动分析&#xff1a;imx_pinctrl_soc_info结构体Pinctrl子系统中c…

【MySQL】数据库整合攻略 :表操作技巧与详解

前言&#xff1a;本节内容讲述表的操作&#xff0c; 对表结构的操作。 是对表结构中的字段的增删查改以及表本身的创建以及删除。 ps&#xff1a;本节内容本节内容适合安装了MySQL的友友们进行观看&#xff0c; 实操更有利于记住哦。 目录 创建表 查看表结构 修改表结构 …

CocoaPods安装步骤详解 - 2024

引言 CocoaPods的安装&#xff0c;如果有VPN就一直开启&#xff0c;会让整个流程非常顺畅。 在现代 iOS 开发中&#xff0c;依赖管理变得越来越重要&#xff0c;CocoaPods 成为开发者们首选的依赖管理工具。它不仅可以简化库的安装与更新&#xff0c;还能帮助开发者更高效地管…

二叉树-堆

树的几个重要定义 1.树根子树根亲缘关系 2.节点的度:有几个子树或根有几个孩子 3.叶子节点:没有孩子的终端节点 度为0 4.分支节点:度不为0的节点 5.树叶子分支节点 6.父亲节点/双亲节点 7.子节点 8.树的度:最大节点的度就是树的度 9.树的层:一般从第一层开始数,也有从0层开始数…

内置RTK北斗高精度定位的4G执法记录仪、国网供电服务器记录仪

内置RTK北斗高精度定位的4G执法记录仪、国网供电服务器记录仪BD311R 发布时间: 2024-10-23 11:28:42 一、 产品图片&#xff1a; 二、 产品特性&#xff1a; 4G性能&#xff1a;支持2K超高清图传&#xff0c;数据传输不掉帧&#xff0c;更稳定。 独立北…

浮动路由:实现出口线路的负载均衡冗余备份。

浮动路由 Tip&#xff1a;浮动路由指在多条默认路由基础上加入优先级参数&#xff0c;实现出口线路冗余备份。 ip routing-table //查看路由表命令 路由优先级参数&#xff1a;越小越优 本次实验测试两条默认路由&#xff0c;其中一条默认路由添加优先级参数&#xff0c;设置…

ssm077铁岭河医院医患管理系统+vue(论文+源码)_kaic

毕业设计&#xff08;论文) 题 目&#xff1a; 医院医患管理系统 姓 名&#xff1a; 学 号&#xff1a; 所属学院&#xff1a; 专业班级&#xff1a; 指导&#xff1a; 职 称&#xff1a; 完成日期 2021年 月 摘 要 21世纪的今天&#xf…

关于在VS中使用Qt不同版本报错的问题

最开始需要配置的地方 首先看一下我的Qt有关的环境变量&#xff1a; Path环境变量里&#xff1a; 这里就是把对应Qt编译器环境下的bin目录放进来&#xff1a;比如你使用的是msvc2017_64或者MinGW QMAKESPEC环境变量&#xff1a; 这个就选择Qt对应的编译器目录下的\mkspecs\w…

Redis 权限控制(ACL)|ACL 命令详解、ACL 持久化

官网文档地址&#xff1a;https://redis.io/docs/latest/operate/oss_and_stack/management/security/acl/ 使用版本&#xff1a;Redis7.4.1 什么是 ACL&#xff1f; ACL&#xff08;Access Control List&#xff09;&#xff0c;权限控制列表&#xff0c;是 Redis 提供的一种…

任务中心全新升级,新增分享接口文档功能,MeterSphere开源持续测试工具v3.4版本发布

2024年11月5日&#xff0c;MeterSphere开源持续测试工具正式发布v3.4版本。 在这一版本中&#xff0c;系统设置方面&#xff0c;任务中心支持实时查看系统即时任务与系统后台任务&#xff1b;接口测试方面&#xff0c;新增接口文档分享功能、接口场景导入导出功能&#xff0c;…

GEE 数据集——美国gNATSGO(网格化国家土壤调查地理数据库)完整覆盖了美国所有地区和岛屿领土的最佳可用土壤信息

目录 简介 代码 引用 网址推荐 知识星球 机器学习 gNATSGO&#xff08;网格化国家土壤调查地理数据库&#xff09; 简介 gNATSGO&#xff08;网格化国家土壤调查地理数据库&#xff09;数据库是一个综合数据库&#xff0c;完整覆盖了美国所有地区和岛屿领土的最佳可用土…

3.PyCharm工具

第三方IDE&#xff0c;集成开发工具&#xff0c;官网下载。 社区版本&#xff0c;免费使用。 创建项目

Rust移动开发:Rust在iOS端集成使用介绍

iOS调用Rust 上篇介绍了 Rust移动开发&#xff1a;Rust在Android端集成使用介绍, 这篇主要看下iOS上如何使用Rust&#xff0c;Rust可以给移动端开发提供跨平台&#xff0c;通用组件支持。 该篇适合对iOS、Rust了解&#xff0c;想知道如何整合调用和编译的&#xff0c;如果想要…

video素材格式转换--mp4转webm(vue3+Nodejs)

总体实现使用ffmpeg 自动化demo实现 vue3Nodejsffmpeg 一、官网下载ffmpeg https://ffmpeg.org/ 1-1选择对应系统下载 1-2下载完成后配置环境变量 1-2-1将下载文件的bin目录配置到环境变量中 例如:D:\ffmpeg\bin 1-3测试ffmpeg是否安装成功 ffmpeg -version 如图 证明安装成…

YOLOPv2论文翻译

YOLOPv2: Better, Faster, Stronger for Panoptic Driving Perception 摘要 在过去的十年中&#xff0c;多任务学习方法在解决全景驾驶感知问题方面取得了令人鼓舞的成果&#xff0c;既提供了高精度又具备高效能的性能。在设计用于实时实际自动驾驶系统的网络时&#xff0c;这…

Golang | Leetcode Golang题解之第553题最优除法

题目&#xff1a; 题解&#xff1a; func optimalDivision(nums []int) string {n : len(nums)if n 1 {return strconv.Itoa(nums[0])}if n 2 {return fmt.Sprintf("%d/%d", nums[0], nums[1])}ans : &strings.Builder{}ans.WriteString(fmt.Sprintf("%d…

基于LORA的一主多从监测系统_实物展示

提供&#xff1a;成品硬件 4G模块 详细开发流程 源码 原理图 主节点和子节点A的合照来一张 主节点 子节点A