# 银发群体高温多时间尺度预警和服务优化可视化研究 本科毕业设计 — 河南理工大学计算机科学与技术学院 ## 概述 本项目针对焦作市和郑州市老年群体,构建了基于 LSTM-Attention 的多时间尺度高温健康风险预警模型,并开发了 ECharts 可视化大屏系统。 ### 核心功能 - **多时间尺度预警**:短期(1-3天)、中期(7天)、长期(30天)三级高温健康风险预测 - **深度学习模型**:BiLSTM + Multi-Head Attention,三头输出同时预测三个时间尺度 - **基线对比**:XGBoost 三分类器,验证深度学习方法有效性 - **可视化大屏**:6 面板深色科技蓝风格 Web 大屏,含温度趋势、风险预警、人口统计等 - **完整论文**:LaTeX 学位论文,含 7 个章节 + 参考文献 + 附录 ### 技术栈 | 层 | 技术 | |----|------| | 数据处理 | Python, xarray, pandas, numpy | | 气象数据 | ERA5-Land (CDS API) | | 深度学习 | PyTorch 2.12, CUDA 12.6 | | 传统模型 | XGBoost, scikit-learn | | Web 后端 | Flask | | 可视化 | ECharts 5.5 | | 包管理 | uv | | 论文 | LaTeX (XeLaTeX + ctexbook) | ## 环境配置 ### 系统要求 - Python 3.13 - NVIDIA GPU (推荐,RTX 4060 或以上) - Windows 11 / Linux ### 安装 ```bash # 创建虚拟环境 uv venv --python "D:\settings\Language\Python\Python 3.13.13\python.exe" # 安装依赖 uv pip install -e . ``` ### CDS API 配置(数据下载必需) 1. 注册 Copernicus CDS 账号:https://cds.climate.copernicus.eu/ 2. 获取 API Key 3. 创建 `~/.cdsapirc`: ``` url: https://cds.climate.copernicus.eu/api key: : ``` ## 运行指南 ### 1. 数据获取与预处理 ```bash # 下载 ERA5 气象数据(需要 CDS API 配置) python -m src.data.download_era5 # 收集死亡率与人口数据 python -m src.data.collect_mortality # 运行预处理管道 python -m src.data.preprocess ``` ### 2. 探索性数据分析 ```bash jupyter notebook notebooks/eda.ipynb ``` ### 3. 模型训练 ```bash # 训练 LSTM-Attention 模型 python -m src.models.train # 模型评估与对比 python -m src.models.evaluate ``` ### 4. 启动可视化大屏 ```bash python -m src.web.app # 浏览器打开 http://localhost:5005 ``` ### 5. 论文编译 ```bash cd thesis make # 或手动: xelatex main && biber main && xelatex main && xelatex main ``` ## 项目结构 ``` project/ ├── data/ │ ├── raw/era5/ # ERA5 原始 NetCDF 文件 │ ├── processed/ # 预处理后 CSV 和 NPZ 序列 │ └── external/ # 死亡率/人口/暴露反应数据 ├── src/ │ ├── data/ # 数据获取与预处理 │ │ ├── download_era5.py │ │ ├── collect_mortality.py │ │ └── preprocess.py │ ├── models/ # 模型定义与训练 │ │ ├── lstm_attention.py │ │ ├── xgboost_baseline.py │ │ ├── train.py │ │ └── evaluate.py │ ├── web/ # Web 可视化 │ │ ├── app.py │ │ └── static/index.html │ └── utils/ │ └── config.py # 全局配置 ├── notebooks/ │ └── eda.ipynb # 探索性数据分析 ├── outputs/ │ ├── models/ # 训练好的模型权重 │ ├── figures/ # 论文和评估图表 │ └── logs/ # 训练日志 ├── thesis/ # LaTeX 学位论文 │ ├── main.tex │ ├── chapters/ # 各章节 tex 文件 │ ├── refs.bib # 参考文献 │ └── Makefile └── docs/superpowers/ # 设计文档和计划 ``` ## 模型架构 ``` 输入 (14天气象序列) → Linear 嵌入 (16 → 128) → 2层 BiLSTM (128, dropout=0.3) → Multi-Head Attention (4 heads) → Linear 投影 (256 → 128) → 三头输出 ├── 短期头 (128→64→4) ├── 中期头 (128→64→4) └── 长期头 (128→64→4) ``` 总参数量:~983K ## 风险等级定义 | 等级 | 条件 | 颜色 | |------|------|------| | 低风险 | 体感温度 < 32°C | 绿 | | 中风险 | 体感温度 32-35°C | 黄 | | 高风险 | 体感温度 35-38°C 或连续 3 天 >35°C | 橙 | | 严重风险 | 体感温度 >= 38°C 且连续 3 天 >35°C | 红 | ## 数据来源 | 数据 | 来源 | 时间范围 | |------|------|----------| | 气象数据 | ERA5-Land (Copernicus CDS) | 2010-2024 | | 死亡率 | 中国卫生健康统计年鉴 | 2010-2023 | | 暴露反应曲线 | Chen et al. (2018) Lancet Planet Health | — | | 人口数据 | 第七次全国人口普查 (2020) | 2020 | | 老龄化率 | 河南省统计年鉴 | 2010-2023 |