# view_trajtory_tools **Repository Path**: funpony/view_trajtory_tools ## Basic Information - **Project Name**: view_trajtory_tools - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 2 - **Created**: 2024-11-23 - **Last Updated**: 2024-11-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 空战轨迹可视化小工具 本项目旨在提取、处理和可视化空战场景中的动态 3D 运动数据。项目包含用于数据提取和动态绘图的 Python 脚本,以及可直接运行的 PowerShell 和 Linux Shell 脚本以实现自动化。 ## 项目结构 ```plaintext view_air_combat/ ├── processed_data/ # 提取后的数据存放目录 │ ├── control.json # 提取的控制数据 │ ├── state.json # 提取的状态数据 ├── raw_data/ # 原始输入数据存放目录 │ ├── data.json # 原始输入数据文件 ├── scripts/ # 数据处理和绘图的 Python 脚本 │ ├── extract_state_control.py # 提取原始 JSON 数据的脚本 │ ├── plot_dynamic_position.py # 绘制 3D 动态动画的脚本 ├── dynamic_plot.html # 输出的 3D 动画 HTML 文件 ├── run.ps1 # 自动化的 PowerShell 脚本(适用于 Windows) ├── run.sh # 自动化的 Shell 脚本(适用于 Linux) ``` --- ## 环境准备 请确保以下环境已配置好: - **Python** (3.8 或更高版本) - 安装必要的 Python 包: ```bash pip install plotly tqdm numpy ``` --- ## 使用说明 ### 1. 自动化运行 #### 在 Windows 上(使用 PowerShell) 运行自动化脚本 `run.ps1`: ```powershell .\run.ps1 ``` #### 在 Linux 上(使用 Shell) 运行自动化脚本 `run.sh`: ```bash ./run.sh ``` --- ### 2. 手动运行 #### 2.1 提取数据 使用 `extract_state_control.py` 脚本从原始数据中提取状态和控制数据: ```bash python scripts/extract_state_control.py raw_data/data.json processed_data 3000 ``` - **`raw_data/data.json`**:输入 JSON 文件路径。 - **`processed_data`**:提取数据的输出目录。 - **`3000`**:提取的最大数据条数。 #### 2.2 绘制动态 3D 动画 使用 `plot_dynamic_position.py` 脚本生成动态 3D 动画: ```bash python scripts/plot_dynamic_position.py processed_data ``` #### 2.3 绘制 2D 速度控制变化图片 使用 `plot_speed_control.py` 脚本生成动态 2D 绘图: ```bash python scripts/plot_speed_control.py processed_data ``` --- ## 输出结果 1. **提取的数据**: - `processed_data/state.json`:提取的状态数据。 - `processed_data/control.json`:提取的控制数据。 2. **动态动画**: - `dynamic_plot.html`:生成的 3D 动画文件,可在任何现代浏览器中打开查看。 - `speed_and_control_plot.png` 生成的 2D 速度和控制参数 绘图文件 --- ## 使用工作流 1. 将原始输入数据(`data.json`)放入 `raw_data/` 目录中。 2. `data.json`格式如下: ```json [ { "instruction": "Now your position is (0.0, 0.0, 6821.671193646911), the speed is (133.18307413489447, 0.0, 0.0), the relative position of the enemy is (5843.055495247758, 1805.4686761594858, -1884.29906125235), the relative speed of the enemy is (-219.35065794356413, -1.0552485570154862e-14, 27.99754515623645), please output the control command according to the current state.", "input": "", "output": "The instruction is [0.40139538049697876, 1.0, 2.7913429737091064]" }, { ... }, ... ] ``` 3. 运行对应的自动化脚本(Windows 使用 `run.ps1`,Linux 使用 `run.sh`)。 4. 提取后的状态和控制数据将存储在 `processed_data/` 目录中。 --- ## 注意事项