Skip to content
/ DeepTP Public

基于深度学习的飞行轨迹预测系统,融合天气数据和飞行计划实现智能航迹预测

License

Notifications You must be signed in to change notification settings

yankmo/DeepTP

Repository files navigation

DeepTP 深度学习飞行轨迹预测项目运行报告

项目概述

DeepTP是一个基于深度学习的飞行轨迹预测系统,使用编码器-解码器LSTM架构来预测飞行轨迹。本报告详细记录了项目的运行过程、遇到的问题及解决方案。

项目结构分析

核心目录结构

DeepTP-master/
├── src/                          # 源代码目录
│   ├── Run_RNN_model_Lite.py     # 主要运行脚本
│   ├── configs/                  # 配置文件目录
│   │   └── encoder_decoder_nn_lite.ini  # 模型配置文件
│   ├── nn/session/               # 训练好的模型存储
│   │   └── develop_LiteEncoder_decoder_LSTM_20250710-133856/
│   │       └── model.ckpt-2499   # 预训练模型文件
│   ├── datasets_lite.py          # 数据集处理模块
│   ├── rnn_encoder_decoder_lite.py  # 神经网络架构
│   └── utils_features.py         # 特征处理工具
├── data_sampled/                 # 数据集目录
│   ├── NCWF/                     # 天气雷达数据
│   ├── features/                 # 特征数据
│   ├── filtered_weather_data/    # 过滤后的天气数据
│   ├── test_flight_tracks_all.csv    # 测试飞行轨迹
│   ├── test_flight_plans_all.csv     # 测试飞行计划
│   └── test_flight_plans_util.CSV    # 飞行计划工具数据
└── output_figs/                  # 输出结果图像

数据集详细分析

1. NCWF (National Convective Weather Forecast) 数据

位置: data_sampled/NCWF/

文件说明:

  • gridded_storm.npz: 主要的网格化风暴数据文件,包含所有时间点的NCWF数据
  • ncwf_info_file.npz: NCWF信息文件,包含时间索引和元数据
  • alt_dict.pkl: 高度字典文件
  • 2013_08_01_HHMMZ.npz: 按小时分割的NCWF数据文件(项目运行过程中生成)

数据特征:

  • 时间范围: 2013年8月1日开始
  • 数据格式: NumPy压缩数组
  • 包含743个时间点的天气数据
  • 每个时间点包含年、月、日、小时信息

2. 飞行数据

轨迹数据: test_flight_tracks_all.csv

  • 包含实际飞行轨迹的GPS坐标、时间戳、高度等信息

飞行计划数据: test_flight_plans_all.csv

  • 包含预定的飞行路径、起降机场、计划时间等

飞行计划工具数据: test_flight_plans_util.CSV

  • 包含飞行计划的辅助信息和元数据

3. 天气数据

位置: data_sampled/filtered_weather_data/

文件类型:

  • namanl_218_YYYYMMDD_HHMM_FFF.npz: NAM模型天气数据
    • YYYY: 年份
    • MM: 月份
    • DD: 日期
    • HH: 小时
    • FFF: 预报时效(000, 001, 002, 003, 006小时)
  • grbs_common_info.npz: GRIB文件通用信息
  • grbs_level_common_info.pkl: GRIB层级信息
  • grbs_smallgrid_kdtree.pkl: 网格KD树索引

4. 特征数据

位置: data_sampled/features/

文件说明:

  • standardize_arr_lite.npz: 标准化参数文件
    • 包含训练数据的均值和标准差
    • 用于数据预处理和后处理

运行过程详细记录

阶段1: 初始运行尝试

问题: 缺少NCWF小时级数据文件

  • 错误信息: FileNotFoundError: [Errno 2] No such file or directory: '../data_sampled/NCWF/2013_08_01_0100Z.npz'
  • 原因: 预测脚本需要按小时分割的NCWF文件,但只有聚合的gridded_storm.npz文件

解决方案: 创建数据预处理脚本

阶段2: 数据预处理

创建文件: generate_hourly_ncwf.py

功能:

# 主要功能
1. 加载 gridded_storm.npz  ncwf_info_file.npz
2. 根据时间信息生成文件名格式: YYYY_MM_DD_HHMMZ.npz
3. 提取对应时间点的NCWF数据
4. 保存为独立的小时级文件

生成的文件:

  • 2013_08_01_0000Z.npz
  • 2013_08_01_0100Z.npz
  • 2013_08_01_0200Z.npz
  • ... (共10个测试文件)

阶段3: 路径配置修正

问题: 相对路径错误

  • 脚本中使用../data_sampled/路径
  • 从项目根目录运行时路径不匹配

解决方案: 修改Run_RNN_model_Lite.py

# 修改前
self.std_arr_loader = np.load('../data_sampled/features/standardize_arr_lite.npz')

# 修改后  
self.std_arr_loader = np.load('data_sampled/features/standardize_arr_lite.npz')

涉及的路径修正:

  • 标准化数组路径
  • NCWF数据根目录
  • 测试轨迹文件路径
  • 飞行计划文件路径
  • 天气数据根目录
  • 各种元数据文件路径

阶段4: 配置文件定位

问题: 配置文件路径错误

  • 原始路径: configs/encoder_decoder_nn_lite.ini
  • 实际路径: src/configs/encoder_decoder_nn_lite.ini

解决方案: 使用正确的配置文件路径

阶段5: 成功运行

最终命令:

python src/Run_RNN_model_Lite.py --config src/configs/encoder_decoder_nn_lite.ini --train_or_predict predict --name src/nn/session/develop_LiteEncoder_decoder_LSTM_20250710-133856/model.ckpt-2499

运行结果:

  • 退出码: 0 (成功)
  • TensorFlow警告: 版本兼容性提示,不影响功能
  • 生成预测结果图像

核心文件功能说明

1. Run_RNN_model_Lite.py

功能: 主要运行脚本

  • 模型加载和初始化
  • 数据预处理
  • 预测执行
  • 结果可视化

关键类:

  • RNNModelLite: 主要模型类
  • DatasetSample: 数据集处理类

2. datasets_lite.py

功能: 数据集处理模块

  • 飞行轨迹数据加载
  • 天气数据集成
  • 特征工程

3. rnn_encoder_decoder_lite.py

功能: 神经网络架构定义

  • LSTM编码器-解码器结构
  • 注意力机制
  • 损失函数定义

4. utils_features.py

功能: 特征处理工具

  • NCWF文件名匹配: match_ncwf_fname()
  • 特征立方体生成
  • 数据标准化

模型架构分析

网络结构

  • 编码器: LSTM层,处理历史轨迹和天气数据
  • 解码器: LSTM层,生成未来轨迹预测
  • 特征融合: 集成飞行计划、天气、轨迹特征

输入数据

  1. 历史飞行轨迹: GPS坐标、高度、速度
  2. 天气数据: NCWF雷达数据、NAM模型数据
  3. 飞行计划: 预定路径、时间信息

输出结果

  • 未来轨迹点预测
  • 可视化图像(8个样本)

生成的预测结果

输出目录: output_figs/

生成文件:

  • generated_samp1.png ~ generated_samp8.png: 8个预测轨迹样本
  • original_fp_track.png: 原始飞行计划轨迹对比
  • downsample_fp_track.png: 下采样轨迹
  • feature_cube_path.png: 特征立方体路径可视化

技术要点总结

1. 数据预处理挑战

  • 时间序列对齐: 确保飞行数据与天气数据时间同步
  • 多源数据融合: 集成GPS轨迹、天气雷达、数值天气预报
  • 特征标准化: 处理不同量纲的特征数据

2. 深度学习模型

  • 序列到序列架构: 适合轨迹预测任务
  • 注意力机制: 关注重要的历史信息
  • 多模态输入: 处理异构数据源

3. 工程实现

  • 模块化设计: 清晰的代码结构
  • 配置管理: 灵活的参数配置
  • 错误处理: 完善的异常处理机制

遇到的主要问题及解决方案

问题类型 具体问题 解决方案 影响
数据缺失 NCWF小时级文件不存在 创建数据预处理脚本 中等
路径配置 相对路径错误 修改脚本中的路径引用
配置文件 配置文件路径错误 定位正确的配置文件
版本兼容 TensorFlow API警告 确认为兼容性警告,不影响功能

项目成果

  1. 成功运行: DeepTP模型预测功能正常工作
  2. 数据完整: 所有必需的数据文件已准备就绪
  3. 结果输出: 生成了8个飞行轨迹预测样本
  4. 文档完善: 详细记录了运行过程和问题解决方案

后续建议

  1. 性能优化: 考虑使用GPU加速训练和预测
  2. 数据扩展: 增加更多时间段的训练数据
  3. 模型改进: 尝试更先进的深度学习架构
  4. 实时预测: 开发实时轨迹预测系统

报告生成时间: 2025年7月10日
项目状态: 运行成功
技术栈: Python, TensorFlow, NumPy, Pandas

About

基于深度学习的飞行轨迹预测系统,融合天气数据和飞行计划实现智能航迹预测

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published