# chengshanjiao-waterway **Repository Path**: joy_2_0/csj ## Basic Information - **Project Name**: chengshanjiao-waterway - **Description**: “成山角水域航迹模式识别与最热航线提取”是一个专注于海上交通航迹数据处理与空间模式分析的开源项目。项目以成山角海域的 AIS 船舶轨迹为核心研究对象,构建了从原始数据清洗、轨迹时间对齐、DTW 相似度计算,到降维聚类、KDE 热度图生成与最热航线提取的完整分析流程。 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-09-08 - **Last Updated**: 2025-11-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: 轨迹聚类, 最热航线提取, 相似度计算, KDE热力分析, CV亮度提取 ## README # 成山角水域航迹模式识别与最热航线提取 本仓库复现并开源“成山角(CSJ)水域”航迹分析的最终研究路线,聚焦 **NewHuman(人工质检后的轨迹)→ 簇对映射(pairs)→ 聚类分组落地 → KDE 热度图 → 最热航线提取 → 边界提取 → 速度场(SOG)解析**。主线仅包含论文采用的实现;探索性方法另见 `explorations/`,不影响主线复现。 ## 数据与目录约定 为与脚本保持一致,请严格使用仓库中的路径大小写约定(`Data/` 开头)。本项目仅涉及成山角(CSJ),入口数据放置于: - `Data/DTW/CSJ/New_Human_Trajectories/` 该目录保存 NewHuman 阶段的人为复核文件与映射素材(如 `cluster_*.csv`、`trajectories_area_01.png` 等)。 主线运行过程中,将在: - `Data/DTW/CSJ/New_Human_Trajectories/cluster_mmsi_pairs.csv` 生成簇对映射; - `Data/Groups/CSJ/New_Human_Trajectories/MMSI_Cluster_Groups/` 生成各簇样本清单与详细轨迹; - `Data/Groups/CSJ/New_Human_Trajectories/MMSI_Cluster_Groups/Hottest_Plot_for_CV2/` 输出 KDE 与“最热航线”结果; - `Data/Groups/CSJ/New_Human_Trajectories/MMSI_Cluster_Groups/SOG/` 输出速度场统计; - `Data/Groups/CSJ/New_Human_Trajectories/MMSI_Cluster_Groups/Geo_Heatmaps_for_Resultsshowing/` 输出地理底图叠加图件; - `Data/Groups/CSJ/T-SNE_Optics/Trajectory_Outputs/`(如需边界提取结果可复用该习惯路径)。 ## 运行顺序(主线,仅 CSJ) 1. **簇对映射生成** `src/Transform_NewHuman_to_Pair.py` 读取 NewHuman 阶段的人为分组素材(如 `cluster_*.csv`),生成 `Data/DTW/CSJ/New_Human_Trajectories/cluster_mmsi_pairs.csv`。 2. **按簇落地 MMSI 列表** `src/Separate_Groups_ByDTW.py` 按 `cluster_mmsi_pairs.csv` 写出 `cluster_k_mmsis.csv` 至 `Data/Groups/CSJ/New_Human_Trajectories/MMSI_Cluster_Groups/`。 3. **回收簇内详细样本** `src/Separate_Details_Groups.py` 将各 MMSI 的明细轨迹整理至 `MMSI_Cluster_Groups/Detailed_Trajectories/` 与 `MMSI_Patterns/`,用于后续可视化与统计。 4. **KDE 热度图与最热航线** `src/KDE_CV2_HottestPolt.py` 对簇内轨迹做 KDE,生成热度图,并在非启发式策略下提取“最热航线”(已用于论文最终结果)。 输出至 `.../Hottest_Plot_for_CV2/`。 5. **地理底图叠加(用于展示)** `src/Hottest_Plot_for_ResultsShowing.py` 将热度/航线结果叠加至地理底图,输出至 `.../Geo_Heatmaps_for_Resultsshowing/`。 6. **边界提取(质检/补充)** `src/ExtractBoundary.py` 对轨迹分布进行 Canny / Laplacian / Sobel 边缘提取,生成航迹边界,便于观察分布形态。 7. **速度场(SOG)统计与可视化** `src/SOG_Grid.py` 在经纬网格上统计簇内 SOG 的均值/范围,刻画主干通道的速度结构(与热度带相互印证)。 > 可选(质检/交互): > - `src/Trajectories_Drawn_ByGroups_PNG.py` 快速出图用于人工核查; > - `src/Trajectories_Drawn_ByGroups_Folium.py` 生成交互式地图用于局部放大与核对。 ## 仅作存档的探索性实现 - `explorations/KDE_CV2_HottestPolt2.py`:启发式亮度搜索路径生成(**未用于最终结果**)。 - `explorations/Transform_Matrix_Lower_Cluster.py`:DTW 相似度矩阵→降维(Laplacian Eigenmaps / t-SNE)→OPTICS 聚类的自动路线。 - `explorations/Transform_Cluster_Tries.py`:多聚类/降维策略的脚手架与记要。 - `explorations/Separate_ByMMSI_Improvement.py`、`explorations/Separate_ByMMSI.py`:早期分轨与并行 DTW 路线的实现。 > 以上探索文件不进入主线复现,不在 README 顶层叙述,作为研究脉络留档。 ## 环境依赖 建议 Python 3.9+。安装基础依赖: ```bash pip install -r requirements.txt ``` ## 部分结果展示 ![模式的KDE热力图](figures/cluster_3_mmsis_heatmap.png) ![Canny边缘提取轨迹](figures/CSJ_Canny.png) ![所有模式的SOG分布直方图](figures/%E6%89%80%E6%9C%89%E6%A8%A1%E5%BC%8F%E7%9A%84SOG%E5%88%86%E5%B8%83%E7%9B%B4%E6%96%B9%E5%9B%BE.png) ![所有模式的总KDE密度估计图](figures/%E6%89%80%E6%9C%89%E6%A8%A1%E5%BC%8F%E7%9A%84%E6%80%BBKDE%E5%AF%86%E5%BA%A6%E4%BC%B0%E8%AE%A1%E5%9B%BE.png)