温馨提示:文末有 CSDN 平台官方提供的学长 Wechat / QQ 名片 :)

1. 项目简介

本项目利用网络爬虫技术从某天气预报网站抓取某一城市的历史天气数据,构建天气数据分析与预测系统,实现对天气状况、最高气温、最低气温、风力和风向等维度的可视化分析和横向纵向比较, 并构建机器学习聚类算法实现对天气数据的预测分析。

2. 功能组成

基于机器学习的天气数据分析与预测系统的功能组成如下图所示:

3. 热门城市天气数据获取

天气数据主要包括:天气状况、气温、风力风向、AQI指数等,本项目利用 python 编写网络爬虫从某天气预报网站抓取热门城市的天气数据:

years = [2016, 2017, 2018, 2019, 2020, 2021]
months = list(range(1, 13))all_city = []
all_date = []
all_tianqi = []
all_qiwen = []
all_feng = []year_months = []
for year in years:for month in months:year_months.append('{}{}'.format(year, month if month > 9 else '0{}'.format(month)))for city in city_map:for year_month in year_months:print('爬取{} {} 的气温数据'.format(city, year_month))url = 'http://www.xxxxxx.com/lishi/{}/month/{}.html'.format(city_map[city], year_month)response = requests.get(url)response = response.textsoup = BeautifulSoup(response, 'lxml')items = soup.table.find_all('tr')for i, item in enumerate(items):if i == 0:continuedata = item.find_all('td')all_city.append(city)date = remove_space(data[0].text)tianqi = remove_space(data[1].text)qiwen = remove_space(data[2].text)feng = remove_space(data[3].text)all_date.append(date)all_tianqi.append(tianqi)all_qiwen.append(qiwen)all_feng.append(feng)weather_df = pd.DataFrame({'城市': all_city, '日期': all_date, '天气状况': all_tianqi, '气温': all_qiwen, '风力风向': all_feng})
weather_df.to_csv('weather_data.csv', encoding='utf8', index=False)

4. 基于机器学习的天气数据分析与预测系统

4.1 系统注册登录

4.2 热门城市历史天气查询

系统提供热门城市(北京、上海、天津、重庆、贵阳、海口等30余个)按照年份和月份查询当月的天气数据:

4.3 热门城市天气状况统计分析

通过对热门城市近几年的气温变化、天气状况、风力风向等指标的统计分析,可实现城市天气变化的整体把握:

4.4 热门城市气温变化情况

通过对热门城市近几年的气温变化分析,包括最低气温和最高气温,可发现气温基本呈现升高的态势,也反应出全球气候变暖问题的严重性!

def analysis_weather_year1_year2(city, start_year, end_year):"""开始结束年间的天气变化分析"""start_year, end_year = int(start_year), int(end_year)df = weather_df[(weather_df['城市'] == city) & (weather_df['年'] >= start_year) & (weather_df['年'] <= end_year)]df = df.sort_values(by='日期', ascending=True)times = df['日期'].values.tolist()high_temp = df['最高气温'].values.tolist()low_temp = df['最低气温'].values.tolist()# 天气状况tianqi_counts = df['天气状况'].value_counts().reset_index()# 风力与风向feng_counts = df['最大风力风向'].value_counts().reset_index()return jsonify({'日期': times, '最高气温': high_temp, '最低气温': low_temp,'天气状况': tianqi_counts['index'].values.tolist(),'天气状况_个数': tianqi_counts['天气状况'].values.tolist(),'风力风向': feng_counts['index'].values.tolist()[::-1],'风力风向_个数': feng_counts['最大风力风向'].values.tolist()[::-1]})

4.5 城市气温年度日历热力图

计算热门城市的某一年份每天的平均气温,利用 echarts 的 calendar 组件实现日历的气温热力图的绘制:

def get_city_calendar_data(city, year):df = weather_df[(weather_df['城市'] == city) | (weather_df['年'] == int(year))]df = df.sort_values(by='日期', ascending=True)max_zhibiao = max((df['最高气温'] + df['最低气温']) / 2)results = {}times = df['日期'].values.tolist()zhibiao_values = ((df['最高气温'] + df['最低气温']) / 2).values.tolist()data = {}for i in range(df.shape[0]):data[times[i]] = zhibiao_values[i]results[year] = dataprint(results)results['最大值'] = max_zhibiaoresults['年份'] = [year]return jsonify(results)

4.6 聚类算法天气预测

基于聚类算法实现天气状况、风力风向、AQI指数的预测,并基于AQI指数,进行出行建议。空气质量共分为6级:

  • 空气质量级别为一级,空气质量状况属于优。此时,空气质量令人满意,基本无空气污染,各类人群可正常活动;
  • 空气质量级别为二级,空气质量状况属于良。此时空气质量可接受,但某些污染物可能对极少数异常敏感人群健康有较弱影响,建议极少数异常敏感人群应减少户外活动;
  • 空气质量级别为三级,空气质量状况属于轻度污染。此时,易感人群症状有轻度加剧,健康人群出现刺激症状。建议儿童、老年人及心脏病、呼吸系统疾病患者应减少长时间、高强度的户外锻炼;
  • 空气质量级别为四级,空气质量状况属于中度污染。此时,进一步加剧易感人群症状,可能对健康人群心脏、呼吸系统有影响,建议疾病患者避免长时间、高强度的户外锻练,一般人群适量减少户外运动;
  • 空气质量级别为五级,空气质量状况属于重度污染。此时,心脏病和肺病患者症状显著加剧,运动耐受力降低,健康人群普遍出现症状,建议儿童、老年人和心脏病、肺病患者应停留在室内,停止户外运动,一般人群减少户外运动;
  • 空气质量级别为六级,空气质量状况属于严重污染。此时,健康人群运动耐受力降低,有明显强烈症状,提前出现某些疾病,建议儿童、老年人和病人应当留在室内,避免体力消耗,一般人群应避免户外活动。

5. 总结

本项目利用网络爬虫技术从某天气预报网站抓取某一城市的历史天气数据,构建天气数据分析与预测系统,实现对天气状况、最高气温、最低气温、风力和风向等维度的可视化分析和横向纵向比较, 并构建机器学习聚类算法实现对天气数据的预测分析。

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码

技术交流认准下方 CSDN 官方提供的学长 Wechat / QQ 名片 :)

精彩专栏推荐订阅:

1. Python 毕设精品实战案例
2. 自然语言处理 NLP 精品实战案例
3. 计算机视觉 CV 精品实战案例

​​

基于机器学习的天气数据分析与预测系统相关推荐

  1. 基于机器学习的天气预测

    基于机器学习的天气预测 文章目录 基于机器学习的天气预测 1.数据导入与预处理 空值的处理 将上一行数据填充到空值处 异常值的处理,画图来判断是否存在异常值 对目标值进行处理 2.样本比例调整 调整样 ...

  2. 大数据分析与可视化介绍,基于机器学习的大数据分析具有哪些独特的特点

    在大数据时代,人们迫切希望在由普通机器组成的大规模集群上实现高性能的以机器学习算法为核心的数据分析,为实际业务提供服务和指导,进而实现数据的最终变现.与传统的在线联机分析处理OLAP不同,对大数据的深 ...

  3. 论文精读——基于机器学习的越南生活固体废弃物预测

    论文精读--基于机器学习的越南生活固体废弃物预测 Abstract 1. Introduction(partly) 2. ML - based models and applications for ...

  4. 【Python】基于机器学习的财务数据分析——识别财务造假

    [Python]基于机器学习的财务数据分析--识别财务造假 前言: 本文数据使用了2021泰迪杯官方给出的数据. 其中第一章的代码给出了如何由比赛数据生成案例分析所使用的数据 而第二章则重点介绍了 如 ...

  5. 基于Python的租房数据分析与展示系统的设计和实现

    <基于Python的租房数据分析与展示系统的设计和实现>该项目采用技术Python的django框架.mysql数据库 ,项目含有源码.论文.PPT.配套开发软件.软件安装教程.项目发布教 ...

  6. 基于flask徐州市天气信息可视化分析系统-计算机毕设 附源码 04600

    基于flask徐州市天气信息可视化分析系统 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最 ...

  7. 基于机器学习的锂离子电池健康状态预测:进展与展望

    (本文为文献解读,仅为个人理解,如有错误,请指正) 一.SOH的预测方法 1.直接校准法: 优点:计算复杂度低.简单易于实现 缺点:对实验条件要求严格.现实难以实现 2.基于滤波器的方法: 优点:良好 ...

  8. 基于flask徐州市天气信息可视化分析系统 毕设源码04600

    摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题.针对天气信息等问题,对天气 ...

  9. 基于机器学习的深度语义分析的预测新技术收敛性的方法

    文章: Machine-learning-based deep semantic analysis approach for forecasting new technology convergenc ...

最新文章

  1. Scrum Mastery:有效利用组织的5个步骤
  2. 修复Debian grub
  3. sdut 2107 DFS
  4. __getattr__在python2.x与python3.x中的区别及其对属性截取与代理类的影响
  5. 计算机应用基础模块4客观题,国开河北[课程号]00815《计算机应用基础》模块4PowerPoint2010电子演示文稿系统——客观题辅导答案...
  6. weblogic与sitemesh乱码问题
  7. 【结论】游戏(jzoj 5536)
  8. 安装包卸载时如何删除安装时写在系统环境变量中的内容
  9. 充满生机!UI设计灵感|绿植相关APP界面设计
  10. 今天开博第一篇,呵呵
  11. Android动画系列 - PropertyAnim 详解
  12. Atitit 远程工作的几种办公模式 目录 1. 未来的趋势 远程办公 1 1.1. 遥远的阴影 1 1.2. 一个单中心的团队,是一个团队,每个人都被共处于同一物理位置。 2 1.3. 一个多站
  13. 5G牌照发放了,但需要购买5G手机的用户应等明年再购买
  14. 【OpenGL】笔记二十一、Alpha测试、混合测试
  15. 计算机管理主分区改成逻辑分区,Win7将主分区变为逻辑分区的方法
  16. 深度学习项目-图片自动着色
  17. java添加tomcat_Java以及Tomcat配置
  18. 使用手机访问电脑上开发的html页面
  19. r7 5700u核显相当于什么显卡 R75700u相当于什么水平
  20. 编程之路永无止境,想要与众不同你得这样做

热门文章

  1. ACL2022 PAIE: Prompting Argument Interaction for Event Argument Extraction
  2. 重装操作系统的20条原则
  3. 微博实时号权重是什么,如何养成高权重高的号
  4. 老邹寻找Magento商业合作伙伴
  5. 怎么复制黑苹果config配置_黑苹果主机(百分百成功硬件配置)
  6. 苹果手机用计算机打不开怎么回事啊,苹果手机商店打不开怎么办
  7. 关于直播的iOS开发
  8. 怎样用计算机放音乐,QQ音乐怎么用手机控制电脑放歌曲,qq音乐怎么连接电脑|qq音乐怎么用手机控制电脑...
  9. Ubuntu16.04 安装Pangolin出现错误,已解决(亲测成功)
  10. AutoCAD基本操作