ChaoQiezi / StreamflowSimulation

基于LSTM针对长时序的气温、降水、气压、相对湿度、风速等气象站点数据,对尼洋河径流进行模拟预测

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

径流模拟

本项目基于2010年~2015年气温, 气压, 相对湿度, 风速, 日照, 地温, 降水量特征因子(时间分辨率: 日)的去 模拟径流数据(包括巴河桥, 更张, 工布江达三个站点)。

项目结构

  • Assets 目录: 存储运行时产生的中间结果和图表
    • Charts 目录: 存储图表文件
      • ··· 文件: 图表
    • scalers.pkl 文件: 标准化参数存储器
  • Scripts 目录: 脚本文件
    • Download 目录: 下载文件相关脚本文件
      • era5temperature.py 代码: 下载ERA5再分析资料脚本文件
    • era5_preprocessing.py 代码: 预处理ERA5(.nc)的脚本文件
    • extract_rel_station.py 代码: 提取和整合气象数据(站点不匹配搁置)
    • time_series_processing.py 代码: 时间序列数据集预处理
    • generate_time_series_samples.py 代码: 生成样本数据集
    • train.py 代码: 模型训练
    • eval.py 代码: 模型评估
  • utils 目录: 存储函数和类
    • model.py 代码: 模型相关函数和类
    • utils.py 代码: 常用函数和类
  • Config.py 配置文件
  • main.py 主程序: 整个流程的运行
  • README.MD 项目说明文档

后期可能增加

  1. 增加多步预测 -- 2024/6/2完成,可实现不同记忆期和不同预见期的模型运行
  2. 未来或许换训练集、验证集、测试集(遥遥无期),目前是训练集和测试集
  3. 完善整个流程, 方便记忆期和预见期调整后, 快速进行模型整体运行 -- 2024/6/2完成,在根目录main.py文件执行即可,无需分批执行train.py,eval.py等
  4. 超参数优化(获取基础参数) -- 没有时间和精力,通过文献获取基本参数代入
  5. 张琪的面平均降水量计算(将平均流量替换?)
  6. 增加日志存储方便回溯
  7. 似乎可以尝试加入L2正则化避免模型过拟合
  8. 本代码没有研究径流和降水在不同滞时的关系, 因为似乎论文中的特征项仅有降水量,而本研究有诸多特征项,因此暂时没有考虑这方面的研究.
  9. 本代码没有类似《基于LSTM和气候要素分带...金沙江上游流域径流模拟研究_张子凡.pdf》研究基于不同高程分带分别进行模型训练
  10. 本文没有积雪面积数据的输入,可能导致冬季低估,春季高估的情况
  11. 本文可能会增加特征重要性分析

可能存在的问题

  1. 在main中尝试多种记忆期和预见期,但似乎在后期某个循环阶段后训练时间由3min==>30min+ ==> 单独运行查看是否正常

About

基于LSTM针对长时序的气温、降水、气压、相对湿度、风速等气象站点数据,对尼洋河径流进行模拟预测

License:Apache License 2.0


Languages

Language:Python 100.0%