syedraihanali/dhaka-environment-logger

GitHub: syedraihanali/dhaka-environment-logger

自动记录达卡市每小时天气、空气质量和紫外线数据的开源工具,用于支持环境数据分析。

Stars: 19 | Forks: 0

# 🌤️ 达卡环境数据记录器 一个自动化的开源系统,用于记录**孟加拉国达卡市的每小时环境数据**,包括: - ☁️ 天气(温度、湿度、气压、风速) - 🌫️ 空气质量(PM2.5、PM10、CO、NO₂、O₃、AQI) - 🌞 紫外线指数(紫外线辐射等级) 该记录器通过 **GitHub Actions** 自动运行,并从 **[OpenWeatherMap](https://openweathermap.org/api)** 和 **[OpenUV](https://www.openuv.io/)** API 收集数据。 所有数据均以 **JSON** 和 **CSV** 格式保存,每月自动轮换,并公开可供分析使用。 ## 🧠 功能特性 ✅ 通过 GitHub Actions 实现每小时自动更新 ✅ 每月自动轮换文件(例如 `environment_2025_10.json`) ✅ 双格式输出 — JSON 和 CSV ✅ 独立的文件夹结构,便于清晰管理 ✅ 100% 免费且无服务器(无需 VPS) ✅ 数据适用于分析、可视化或研究 ## 🗂️ 项目结构 ``` dhaka-environment-logger/ ├── environment_logger.py ├── README.md ├── data/ │ ├── json/ │ │ └── environment_2025_10.json │ └── csv/ │ └── environment_2025_10.csv └── .github/ └── workflows/ └── environment.yml ``` ## ⚙️ 工作原理 1. **GitHub Actions** 每小时自动运行。 2. Python 脚本 (`environment_logger.py`) 获取: - 天气数据(温度、湿度、气压、风力) - 空气污染水平(PM2.5、PM10 等) - 紫外线指数 3. 脚本将这些数据以 JSON 和 CSV 格式保存在 `/data/json` 和 `/data/csv` 目录下。 4. 每个月,记录器会自动创建一组新文件。 5. 数据被提交并推送到 GitHub。 ## 🧩 设置说明 ### 1️⃣ 获取免费 API 密钥 您需要两个 API 密钥: - **OpenWeatherMap API** → [https://home.openweathermap.org/api_keys](https://home.openweathermap.org/api_keys) - **OpenUV API** → [https://www.openuv.io/](https://www.openuv.io/) ### 2️⃣ 向 GitHub 仓库添加 Secrets 1. 进入您的仓库 → **Settings → Secrets and variables → Actions → New repository secret** 2. 添加以下 Secrets: | Secret 名称 | 描述 | |--------------|-------------| | `OPENWEATHER_API_KEY` | 您的 OpenWeatherMap API 密钥 | | `OPENUV_API_KEY` | 您的 OpenUV API 密钥 | ### 3️⃣ 配置作者信息 编辑 `.github/workflows/environment.yml` 文件,替换: ``` git config --global user.name "YOUR_GITHUB_USERNAME" git config --global user.email "YOUR_VERIFIED_EMAIL@example.com" ``` ➡ 使用您的**实际 GitHub 用户名和已验证的电子邮件**(以便您的提交计入贡献图)。 ### 4️⃣ 推送代码 推送后,工作流将在下一个整点(例如 1:00、2:00、3:00 等)自动开始运行。 您也可以在 **Actions → “Run workflow.”** 下手动触发它。 ## 📊 示例数据条目 ``` { "time": "2025-10-12T10:00:00Z", "city": "Dhaka, BD", "temp_c": 30.2, "humidity": 68, "pressure": 1005, "weather": "clear sky", "wind_speed": 3.5, "air_pm2_5": 62, "air_pm10": 98, "air_co": 300, "air_no2": 28, "air_o3": 40, "air_aqi": 4, "uv_index": 6.3 } ``` ## 🕒 数据收集计划 | 数据类型 | 频率 | 来源 | |------------|------------|---------| | 天气 | 每小时 | OpenWeatherMap | | 空气质量 | 每小时 | OpenWeatherMap | | 紫外线指数 | 每小时 | OpenUV | | 文件轮换 | 每月 | 自动管理 | ## 📁 数据文件夹 ``` data/ ├── json/ → Hourly JSON logs per month └── csv/ → Hourly CSV logs per month ``` 每个月都会自动创建新文件(例如 `environment_2025_11.json` 和 `environment_2025_11.csv`)。 ## 📈 潜在用途 - 🌦️ 长期环境趋势跟踪 - 🌫️ 空气污染与紫外线暴露分析 - 📊 可视化仪表盘(Chart.js、Grafana 等) - 🧠 数据科学或气候研究的教育项目 - 🤖 用于天气和 AQI 预测的 AI/ML 建模 ## 🧰 技术栈 - **Python 3.11** - **GitHub Actions** - **OpenWeatherMap API** - **OpenUV API** - **CSV 与 JSON 用于数据存储** ## 🧑‍💻 作者 **[Syed Raihan Ali](https://github.com/syedraihanali)** 💡 为开放数据、自动化和环境意识而构建。 ## 📄 许可证 本项目采用 **MIT 许可证**。 您可以自由使用、修改和分享,但需注明出处。 ### 🔍 关键词 `达卡`, `孟加拉国`, `天气`, `空气质量`, `紫外线指数`, `环境`, `数据记录器`, `自动化`, `开放数据`, `GitHub Actions`, `Python`
标签:API集成, CSV, GitHub Actions, Homebrew安装, JSON, OpenUV, OpenWeatherMap, Python, 代码示例, 可观测性, 孟加拉国, 定时任务, 开放数据, 开源, 数据分析, 数据记录, 文件轮换, 无后门, 无服务器, 每小时更新, 气象数据, 环境数据分析, 环境监测, 环境研究, 空气质量, 紫外线指数, 网络调试, 自动化, 自动笔记, 达卡, 逆向工具