Skip to content

Repository files navigation

🌦️基于机器学习的天气预测及可视化 WeatherNow

ContributorsForksStargazersIssuesMIT License


Logo

 Weather Now  

基于机器学习的天气预测及可视化模型!
浏览文档 »

🔗 查看 Demo · 🐞 反馈 Bug · ✨ 请求新功能

关于本项目

image GitHub 上有很多优秀的关于天气预测的 Repository ,但都是基于本地化和网络爬虫进行的,所以我创建了这个Repository。我们的项目基于机器学习的随机森林模型对天气进行预测,并且通过Streamlit Cloud 部署到服务器端。

当然,没有一个Repository可以满足所有人的要求,因为你的需求可能与众不同。所以我们会在未来添加更多内容。你也可以通过复刻(fork)本仓库并且创建一个拉取请求(pull request)或者创建议题(issue)来向我们提出建议。感谢所有帮助我们扩充本仓库的贡献者!

如果你对我的网站感兴趣,欢迎访问我的线上网站🌦️Weather Now 来开始。

✨ 功能

  • 实时天气查询:获取全球各城市的当前天气。
  • 机器学习预测:使用随机森林算法训练模型并拟合数据
  • 天气详细信息:显示温度、湿度、气压、风速等。
  • 简洁易用:友好的用户界面和交互体验。

⌨️ 技术栈

  • 前端:HTML, CSS, JavaScript
  • 后端:Python
  • API:Streamlit API

📦 项目架构

软件结构规范

软件结构规范

WeatherNow 项目符合现代 Web 开发的最佳实践,结构简洁清晰、模块化设计良好、易于扩展和维护。通过分离关注点、合理的 API 密钥管理以及清晰的文档,项目不仅具备高可用性和安全性,同时也便于开发者扩展和社区贡献。

本项目大体上采用了分层系统风格架构。 总体分为表示层,应用层,服务层,数据访问层。 层与层之前不能直接进行互通,非相邻分层之间不可以进行数据互通,只可以进行迭代访问。

表示层: 负责处理用户界面和用户交互。例如,网页或移动应用的前端界面。
应用层: 包含系统的业务逻辑,处理用户请求并执行相关的操作。
服务层: 提供应用层所需的特定服务,如认证或数据转换服务。
数据访问层: 负责与数据库或其他持久性存储进行交互。

转到 SoftwareArchitecture 查看更多介绍

文件规范

文件规范

我们遵循了 Github 项目:pythonic-project-guidelines的规范要求,对项目文件结构构成如下:

WeatherNow/ ├── db
├── src
├   ├──lib
├   ├──main.py
├── images
├── test
├── README.md
├── VISUALIZATION.py

转到 project-guidelines 查看更多介绍

🚀 部署环境

本项目完全由Python构建,请你确保正确安装了Python。 为避免Pypi兼容性,你的Python版本应在3.9及以上。 你可以通过以下方式查看你的Python版本

  • Power Shell
    python --version​
  • Python
    import sys
    #sys模块提供了一系列有关Python运行环境的变量和函数。
    print(sys.version)

🏃 开始

这是一份在本地构建项目的指导的例子。 要获取本地副本并且配置运行,你可以按照下面的示例步骤操作。

🛠️ 依赖

如果你尝试本地部署本项目,请确保你正确安装了以下这些模块,以下是两种依赖安装的例程,他将指导你如何正确配置依赖。

  1. 我们提供了配置依赖的工具 Require.exe ,你可以避免所有的命令行操作,只需要运行此工具即可。

  2. 如果你使用的并非windos系统或者基于其他理由希望使用命令行。 你可以通过依赖管理工具,例如pip来安装这些模块。以下是使用pip进行依赖配置的例程。你可以在命令行中输入如下命令:

Tip

在此之前,请确保你的pip处于最新版本 你可以通过如下命令对pip更新

pip install --upgrade pip
pip install moudelname

转到 requirements.txt 查看所有你所应安装的模块

👨‍💻 安装

下面是一个指导你如何安装和配置你的应用的例子。这个模板不需要任何服务器知识或相关网络服务。

  1. 克隆本仓库
    git clone https://github.com/Tyxy-R/WeatherNow.git
  2. 使用命令行工具安装外部依赖
    pip install -r requirements.txt
    
  3. 使用命令行工具启动项目
    streamlit run /yourpath/src/VISUALIZATION.py
    

如果你对命令行不熟悉或者基于其他任何原因希望避免使用命令行,我们提供了 WeatherNow.exe 帮助你进行一键安装。你所需要的做的仅有:

  1. 从 release 中下载我们最新的发行版本。
  2. 运行 WeatherNow.exe
  3. enjoy it 😄

📝 项目更新

  • 针对训练数据进行本地化存储
  • 进一步调优模型的拟合效果
  • 更换数据源减少网站响应延迟
  • 使用Streamlit Cloud进行服务器部署
  • 进一步优化可视化界面

到 open issues 页查看所有请求的功能 (以及已知的问题)。

✍️ 贡献

贡献让开源社区成为了一个非常适合学习、启发和创新的地方。你所做出的任何贡献都是受人尊敬的。

如果你有好的建议,请复刻(fork)本仓库并且创建一个拉取请求(pull request)。你也可以简单地创建一个议题(issue),并且添加标签「enhancement」。不要忘记给项目点一个 star!再次感谢!

  1. 复刻(Fork)本项目
  2. 创建你的 Feature 分支 (git checkout -b feature/AmazingFeature)
  3. 提交你的变更 (git commit -m 'Add some AmazingFeature')
  4. 推送到该分支 (git push origin feature/AmazingFeature)
  5. 创建一个拉取请求(Pull Request)

📃 许可证

根据 MIT 许可证分发。打开 LICENSE 查看更多内容。

🤝 联系我们

@author:R

tian5784879@gmail.comtian5784879@gmail.com

项目链接: https://github.com/Tyxy-R/WeatherNow

💛致谢

此项目的可视化模板和对streamlit部署环境处理主要灵感来源于作者JuneWaySue
此项目的可视化界面的大部分组件主要来源于Streamlit Gallery,感谢为开源做出贡献的作者。

(返回顶部)

About

Machine-learning weather prediction and interactive visualization with Python and Streamlit.

Topics

Resources

Code of conduct

Contributing

Stars

22 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages