Files
elderly-heat-warning/docs/superpowers/specs/2026-05-26-elderly-heat-warning-design.md
T
Serendipity a0478b0b11 feat: 初始化老年群体高温预警项目基础工程
搭建完整的项目目录结构,配置项目依赖与元信息,添加数据下载、预处理、模型训练、可视化相关的核心业务代码,补充项目设计文档与.gitignore配置,导入初始外部参考数据文件。
2026-05-26 20:05:10 +08:00

13 KiB
Raw Blame History

银发群体高温多时间尺度预警和服务优化可视化研究 — 设计文档

本科毕业设计 | 2026-05-26 | 方案 C:混合架构


1. 项目概述

1.1 目标

构建一个面向焦作、郑州两市的高温热浪对老年群体健康风险的预测预警系统,包含深度学习预测模型和 Web 可视化大屏两部分,并撰写完整的 LaTeX 学位论文。

1.2 约束

约束
学术层级 本科毕业论文(河南理工大学计算机学院)
工期 4-5 周出初稿(时间较紧)
GPU NVIDIA RTX 4060 Laptop 8GB
Python 环境 uv 新建虚拟环境
地理范围 焦作市 + 郑州市
时间尺度 短期(1-3天) + 中期(7天) + 长期(30天)

1.3 成功标准

  1. LSTM-Attention 模型在测试集上 Macro F1 ≥ 0.70
  2. XGBoost baseline 完成对比实验
  3. Web 大屏 6 个面板全部可交互展示
  4. 模型推理 + API 响应 ≤ 2 秒
  5. LaTeX 论文 ≥ 30 页,参考文献 ≥ 35 篇
  6. 代码可复现,README 包含完整运行说明

2. 整体架构

┌─────────────────────────────────────────────────────────┐
│                    数据层 (Data Layer)                    │
│  ┌──────────────┐  ┌──────────────┐  ┌───────────────┐  │
│  │ ERA5 气象数据 │  │ 统计年鉴死亡率 │  │ 地方统计局数据 │  │
│  └──────┬───────┘  └──────┬───────┘  └───────┬───────┘  │
│         └─────────────────┼─────────────────┘           │
│                    ┌──────▼──────┐                       │
│                    │ 数据预处理管道 │                      │
│                    └──────┬──────┘                       │
├───────────────────────────┼─────────────────────────────┤
│                  模型层 (Model Layer)                     │
│  ┌──────────────────────┐ ┌──────────────────────┐      │
│  │   LSTM + Attention   │ │   XGBoost Baseline   │      │
│  │  三头输出(短/中/长)   │ │  三个独立分类器       │      │
│  └──────────┬───────────┘ └──────────┬───────────┘      │
│             └───────────┬───────────┘                   │
│                  ┌──────▼──────┐                         │
│                  │  模型对比评估  │                        │
│                  └──────┬──────┘                         │
├───────────────────────────┼─────────────────────────────┤
│              可视化层 (Visualization Layer)               │
│  ┌──────────────────────────────────────────────────┐   │
│  │              Flask API 后端                        │   │
│  └──────────────────────┬───────────────────────────┘   │
│  ┌──────────────────────▼───────────────────────────┐   │
│  │          HTML/ECharts 大屏前端 (6 面板)             │   │
│  └──────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────┘

2.1 技术选型

技术 理由
数据处理 xarray + pandas + numpy ERA5 NetCDF 读取
深度学习 PyTorch + pytorch-lightning 训练结构化
传统模型 xgboost + scikit-learn Baseline 对比
后端 Flask 轻量快速
前端 纯 HTML + ECharts + MapV 无需构建工具
包管理 uv 快速安装
论文 LaTeX (XeLaTeX + ctexbook) 中文支持

3. 数据方案

3.1 气象数据:ERA5-Land

项目 详情
来源 Copernicus CDS (cds.climate.copernicus.eu)
变量 2m气温、相对湿度、地表气压、风速、降水量
时空范围 2010-2024,焦作(35.24°N,113.22°E) + 郑州(34.75°N,113.62°E)
分辨率 0.1°×0.1° 逐日
格式 NetCDF → xarray
获取 免费注册,cdsapi Python 库下载

3.2 死亡率数据

策略 来源 粒度
第一方案 《中国卫生健康统计年鉴》+ 文献暴露-反应曲线 省级年度
第二方案 知网/CNKI 硕博论文附录 城市月度
补充指标 百度指数"中暑"搜索量、120急救公开数据 日级

3.3 人口数据

  • 第七次人口普查(老龄化率、人口结构)
  • 《河南省统计年鉴》(历年变化趋势)
  • LandScan 全球人口格网(可选)

3.4 预处理流程

ERA5 NetCDF → 坐标提取 → 日值聚合 → 特征工程
                                    ├── 热浪识别(连续3天>35°C)
                                    ├── 滑动平均温度
                                    ├── 昼夜温差
                                    └── 滞后效应(lag 0-7天)

死亡率数据 → 数字化/录入 → 时间对齐 → 人口标准化

全数据集 → 统一 DataFrame → 训练/验证/测试(7:1.5:1.5,按时间序)

3.5 特征工程

  • 最高/最低/平均温度
  • 热浪天数、热浪强度
  • 滞后温度(lag 0,1,3,7天)
  • 湿度、体感温度(Heat Index
  • 月份/季节 one-hot
  • 城市 one-hot

4. 模型设计

4.1 问题定义

  • 输入:过去 14 天气象特征序列 + 时间特征
  • 输出:三个时间尺度的风险等级(低/中/高/严重,4 分类)

4.2 主模型:LSTM + Attention

输入序列 (lookback=14天)
  → 特征嵌入层 (Linear, →64维)
  → 2层 BiLSTM (128→64, dropout=0.3)
  → Multi-Head Attention (4 heads)
  → 三分支输出 (短期头/中期头/长期头,各4分类)
超参数
Lookback 14 天
LSTM 层 2 (双向)
隐藏维度 128→64
Dropout 0.3
Attention heads 4
损失函数 Focal Loss
优化器 AdamW (lr=1e-3)
Batch size 32
Epochs 100 (Early Stop, patience=15)

4.3 BaselineXGBoost

三个独立分类器,同等特征,用于对比。

4.4 风险等级定义

等级 条件 颜色
体感温度 < 32°C 🟢 绿
体感温度 32-35°C 🟡
体感温度 35-38°C 或连续3天>35°C 🟠
严重 体感温度 ≥ 38°C 且连续3天>35°C 🔴

4.5 评估指标

  • Accuracy + Macro F1(分类)
  • 混淆矩阵
  • MAE/RMSE(连续温度预测)
  • LSTM vs XGBoost 对比表

5. 可视化大屏

5.1 布局(6 面板)

┌────────────────────────────────────────────────┐
│          高温热浪与老年群体健康预警平台           │
│          焦作·郑州  |  日期/时间                 │
├───────────────────┬───────────┬────────────────┤
│  ① 双城温度热力图  │ ② 风险等级 │ ③ 老年人口概况 │
│  (MapV+百度地图)   │  (仪表盘)  │  (数字+饼图)   │
├───────────────────┴───────────┴────────────────┤
│  ④ 温度-死亡率关联 (双Y轴折线)                   │
│  ⑤ 多尺度预警时间线 (条形图)                     │
├────────────────────────────────────────────────┤
│  ⑥ 历史高温事件回顾 (柱状图+折线)                │
└────────────────────────────────────────────────┘

5.2 交互流程

  • 前端 fetch('/api/predict') → Flask 加载模型 → 推理 → 返回 JSON
  • 静态页面 + 纯 ECharts,无需前端构建工具
  • 深色科技蓝主题(#0a1632 背景)

5.3 API 端点

端点 方法 返回
/ GET 大屏首页
/api/predict GET 最新预测结果 JSON
/api/history GET 历史数据(可选日期范围)
/api/risk GET 当前风险等级 + 建议

6. 论文大纲

6.1 章节结构(约 30-40 页)

章节 内容 预计页数
摘要 中英文摘要 2
第1章 绪论(背景、现状、内容、路线) 5-6
第2章 相关理论与技术基础 5-6
第3章 数据获取与预处理 5-6
第4章 多时间尺度高温预警模型 6-8
第5章 预警可视化系统设计与实现 5-6
第6章 实验结果与分析 4-5
第7章 总结与展望 1-2
参考文献 35-45 篇 3-4
致谢/附录 2-3

6.2 LaTeX 配置

  • 引擎:XeLaTeX
  • 文档类:ctexbook
  • 参考文献:BibLaTeX + GB/T 7714
  • 字体:思源宋体/黑体(免费商用)
  • 编译:latexmk -xelatex

7. 目录结构

project/
├── data/                    # 数据目录
│   ├── raw/                 # 原始下载数据
│   ├── processed/           # 预处理后数据
│   └── external/            # 外部参考数据
├── src/
│   ├── data/                # 数据获取与预处理
│   │   ├── download_era5.py
│   │   ├── download_mortality.py
│   │   └── preprocess.py
│   ├── models/              # 模型
│   │   ├── lstm_attention.py
│   │   ├── xgboost_baseline.py
│   │   └── train.py
│   ├── web/                 # Web 可视化
│   │   ├── app.py           # Flask 后端
│   │   ├── static/
│   │   │   └── index.html   # 大屏前端
│   │   └── templates/
│   └── utils/               # 工具函数
│       ├── config.py
│       └── metrics.py
├── notebooks/               # 探索性分析
│   └── eda.ipynb
├── outputs/                 # 输出
│   ├── models/              # 训练好的模型权重
│   ├── figures/             # 论文插图
│   └── logs/                # 训练日志
├── thesis/                  # LaTeX 论文
│   ├── main.tex
│   ├── chapters/
│   ├── figures/
│   ├── refs.bib
│   └── Makefile
├── docs/
│   └── superpowers/specs/   # 设计文档
├── pyproject.toml
├── README.md
└── .gitignore

8. 实施阶段

阶段 内容 预计时间
Phase 1 环境搭建、数据下载与预处理 第 1 周
Phase 2 探索性数据分析 + 特征工程 第 1-2 周
Phase 3 LSTM-Attention 模型实现与训练 第 2-3 周
Phase 4 XGBoost Baseline + 模型对比 第 3 周
Phase 5 Flask 后端 + ECharts 大屏前端 第 3-4 周
Phase 6 LaTeX 论文撰写 第 2-5 周(并行)

9. 风险与缓解

风险 影响 缓解措施
ERA5 下载速度慢 只下载双城附近网格,减小请求量
死亡率数据无法获取日粒度 使用文献暴露-反应曲线替代
训练不收敛 从简单模型逐步增加复杂度
时间不足 论文与代码并行撰写;XGBoost 优先确保 baseline 可用