Skip to content

stupdada/task2

Repository files navigation

上海出租车轨迹分析项目

本项目将课程中的上海出租车轨迹分析整理为可复现的工程化流程,覆盖三类任务:

  • 实验一:时空特征分析
  • 实验二:出行行为分析
  • 实验三:交通状态分析(exp3 + part3 双体系)

目录结构(代码优先)

task2/
├─ config/
├─ src/shanghai_taxi/
├─ scripts/
├─ tests/
├─ outputs/
│  ├─ assets/      # 仅保留 exp3_* 与 part3_* 关键图
│  ├─ data/        # 仅保留 exp3_* 与 part3_* 关键表
│  └─ reports/     # 保留报告与 part3 热力图
├─ run_project.py
└─ requirements.txt

环境准备

py -3 -m venv .venv_clean
.\.venv_clean\Scripts\Activate.ps1
pip install -r requirements.txt

命令行用法

统一入口:

py -3 run_project.py <command> [options]

常用命令:

  • py -3 run_project.py all --resume
  • py -3 run_project.py report --resume
  • py -3 run_project.py ppt --resume
  • py -3 run_project.py exp3 --resume --limit 200

常用参数:

  • --config:配置文件路径
  • --data-root:覆盖原始数据目录
  • --output-root:覆盖输出目录
  • --limit:仅处理前 N 个原始文件
  • --resume:优先复用已有阶段产物

exp3part3 双体系说明

exp3(基础交通状态统计)

  • 来源:项目流水线自产(run_project.py exp3
  • 典型产物:
    • outputs/assets/exp3_*.png
    • outputs/data/exp3_*.csv
  • 作用:给出小时速度、分时段速度、低速热点等基础交通状态画像。

part3(扩展分析)

  • 来源:项目内已纳入的扩展结果文件
  • 典型产物:
    • outputs/assets/part3_*.png
    • outputs/data/part3_*.csv
    • outputs/reports/part3_congestion_heatmap.html
  • 作用:补充拥堵传播、预测方法说明、速度-流量关系与 BPR 通行能力评估。

项目核心公式

  1. Haversine 球面距离(用于 OD 直线距离)

$$ a = \sin^2\left(\frac{\Delta\varphi}{2}\right) + \cos(\varphi_1)\cos(\varphi_2)\sin^2\left(\frac{\Delta\lambda}{2}\right), \quad c = 2\arcsin(\sqrt{a}), \quad d = 6371\cdot c $$

其中 $d$ 单位为 km。

  1. 行程切分判据(同一车辆时序)

$$ \text{if } \Delta t > \texttt{trip_gap_minutes} \Rightarrow \text{new trip} $$

默认阈值:trip_gap_minutes = 5

  1. 观测速度(stage3 中用于效率描述)

$$ \text{observed_speed} = \frac{\text{od_distance_km}}{\text{duration_min}/60} $$

  1. 网格化(热点统计)

$$ \text{grid_lng} = \left\lfloor \frac{\text{lng}}{\text{grid_size}} \right\rfloor \cdot \text{grid_size}, \quad \text{grid_lat} = \left\lfloor \frac{\text{lat}}{\text{grid_size}} \right\rfloor \cdot \text{grid_size} $$

默认 grid_size = 0.01

  1. 低速热点筛选与排序口径
  • 先过滤:point_count >= low_speed_min_points
  • 再排序:mean_speed 升序、point_count 降序
  • 取 Top10 作为低速热点
  1. BPR 通行能力函数(用于 part3 方法说明)

$$ t = t_0\left[1 + \alpha\left(\frac{v}{c}\right)^\beta\right] $$

其中 $t$ 为拥堵状态旅行时间,$t_0$ 为自由流旅行时间,$v/c$ 为流量-容量比。

输出与版本管理

仓库采用 outputs 白名单策略,仅跟踪关键交付:

  • outputs/人工修改.pptx(最终版 PPT)
  • outputs/assets/exp3_*.pngoutputs/data/exp3_*.csv
  • outputs/assets/part3_*.pngoutputs/data/part3_*.csv
  • outputs/reports/report.md
  • outputs/reports/stage3_basic_report.html
  • outputs/reports/part3_congestion_heatmap.html

PPT 说明

  • 脚本生成产物路径由程序配置控制(默认可生成 风格3_修订版.pptx)。
  • GitHub 中当前认定的最终交付版为:outputs/人工修改.pptx

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors