# 步骤 2：扫描 mainline 输出目录
=== mainline_2_6 ===
MISSING: mainline_2_6
=== mainline_3_5 ===
MISSING: mainline_3_5
=== mainline_4_7 ===
MISSING: mainline_4_7
=== mainline_9_10 ===
MISSING: mainline_9_10
=== mainline_D12_8 ===
MISSING: mainline_D12_8

# 步骤 3：逐一核查 Task 1.1 目标 figure
MISSING: mainline_4_7/sh_geo_correlation_scatter.png
MISSING: mainline_3_5/ccf_lag_histograms.png
MISSING: mainline_3_5/ccf_by_method_heatmap.png
MISSING: mainline_D12_8/shape_umap_by_cluster.png
MISSING: mainline_D12_8/shape_umap_by_category.png
MISSING: mainline_D12_8/shape_dendrogram.png
MISSING: mainline_2_6/mantel_scatter.png
MISSING: mainline_2_6/mantel_by_dimension.png
MISSING: mainline_2_6/mantel_by_scene.png

# 步骤 4：逐一核查 Task 1.2 目标数据文件
=== mainline_3_5/causal_order_summary.json ===
MISSING: mainline_3_5/causal_order_summary.json
=== mainline_3_5/ccf_results.csv ===
MISSING: mainline_3_5/ccf_results.csv
=== mainline_D12_8/shape_clustering_metrics.json ===
MISSING: mainline_D12_8/shape_clustering_metrics.json
=== mainline_D12_8/reclassified_methods.json ===
MISSING: mainline_D12_8/reclassified_methods.json
=== mainline_2_6/mantel_results.json ===
MISSING: mainline_2_6/mantel_results.json
=== mainline_3_5/shock_significance.json ===
MISSING: mainline_3_5/shock_significance.json
=== mainline_4_7/population_turnover.json ===
MISSING: mainline_4_7/population_turnover.json
=== mainline_9_10/adaptability_results.json ===
MISSING: mainline_9_10/adaptability_results.json

# 步骤 5：核查 Task 1.3b 数据源
=== mainline_4_7/sh_buffer_analysis.csv 列名 ===
MISSING: mainline_4_7/sh_buffer_analysis.csv
=== mainline_4_7/sh_buffer_summary.json ===
MISSING: mainline_4_7/sh_buffer_summary.json
=== level_b_scalars.parquet ===
-rw-r--r-- 1 root root 2.5M Apr 16 21:13 /root/autodl-tmp/SplatAtlas/analysis/data/level_b_scalars.parquet
=== step1_metrics_no_collapse.csv 列名 ===
method,scene,domain,PSNR,SSIM,LPIPS,gamma_median,sh_energy_ratio,billboard_bias_ratio,num_gaussians,scene_median,is_collapse
2dgs,Chair,Unknown,36.2398558139801,0.9900827407836914,0.011876831157132983,5.6281,0.052,1.0,,36.137490606307985,False

# 步骤 6：核查 config/methods.yaml
158 /root/autodl-tmp/SplatAtlas/config/methods.yaml
31

RECON COMPLETE

## MISSING FILES
mainline_2_6
mainline_3_5
mainline_4_7
mainline_9_10
mainline_D12_8
mainline_4_7/sh_geo_correlation_scatter.png
mainline_3_5/ccf_lag_histograms.png
mainline_3_5/ccf_by_method_heatmap.png
mainline_D12_8/shape_umap_by_cluster.png
mainline_D12_8/shape_umap_by_category.png
mainline_D12_8/shape_dendrogram.png
mainline_2_6/mantel_scatter.png
mainline_2_6/mantel_by_dimension.png
mainline_2_6/mantel_by_scene.png
mainline_3_5/causal_order_summary.json
mainline_3_5/ccf_results.csv
mainline_D12_8/shape_clustering_metrics.json
mainline_D12_8/reclassified_methods.json
mainline_2_6/mantel_results.json
mainline_3_5/shock_significance.json
mainline_4_7/population_turnover.json
mainline_9_10/adaptability_results.json
mainline_4_7/sh_buffer_analysis.csv
mainline_4_7/sh_buffer_summary.json


# ==========================================
# Gemini 执行 Brief — Phase I Recon 补充（真实路径定位）
# ==========================================

# 步骤 1：读取真实输出路径配置
paths:
  outputs_dir: "/root/autodl-tmp/SplatAtlas/outputs"
  data_dir: "/root/autodl-tmp/SplatAtlas/analysis/data"
  figures_dir: "/root/autodl-tmp/SplatAtlas/analysis/figures"

# 步骤 2：扫描 analysis/data/ 和 analysis/figures/ 下的所有 JSON/CSV/PNG
=== DATA_DIR contents ===
-rw-r--r-- 1 root root 56K Apr 12 14:59 /root/autodl-tmp/SplatAtlas/analysis/data/step1_metrics_full.csv
-rw-r--r-- 1 root root 44K Apr 12 15:04 /root/autodl-tmp/SplatAtlas/analysis/data/step1_metrics_filtered.csv
-rw-r--r-- 1 root root 5.0K Apr 16 20:54 /root/autodl-tmp/SplatAtlas/analysis/data/step1_collapsed_runs.csv
-rw-r--r-- 1 root root 60K Apr 16 20:54 /root/autodl-tmp/SplatAtlas/analysis/data/step1_metrics_no_collapse.csv
-rw-r--r-- 1 root root 5.5K Apr 12 15:08 /root/autodl-tmp/SplatAtlas/analysis/data/step1_method_domain_stats.csv
-rw-r--r-- 1 root root 4.3M Apr 12 15:21 /root/autodl-tmp/SplatAtlas/analysis/data/step2_densification_curves.csv
-rw-r--r-- 1 root root 26K Apr 12 15:21 /root/autodl-tmp/SplatAtlas/analysis/data/step2_sigmoid_params.csv
-rw-r--r-- 1 root root 2.3M Apr 16 21:54 /root/autodl-tmp/SplatAtlas/analysis/data/step5_spectral_error.csv
-rw-r--r-- 1 root root 56K Apr 16 21:54 /root/autodl-tmp/SplatAtlas/analysis/data/step5_spectral_summary.csv
-rw-r--r-- 1 root root 75K Apr 12 19:20 /root/autodl-tmp/SplatAtlas/analysis/data/step6_texture_density_correlation.csv
-rw-r--r-- 1 root root 141K Apr 12 19:26 /root/autodl-tmp/SplatAtlas/analysis/data/step8_feature_matrix_per_experiment.csv
-rw-r--r-- 1 root root 6.5K Apr 12 19:26 /root/autodl-tmp/SplatAtlas/analysis/data/step8_feature_matrix_per_method.csv
-rw-r--r-- 1 root root 455 Apr 12 19:26 /root/autodl-tmp/SplatAtlas/analysis/data/step8_cluster_labels.csv
-rw-r--r-- 1 root root 769 Apr 12 19:26 /root/autodl-tmp/SplatAtlas/analysis/data/step8_nearest_neighbors.csv
-rw-r--r-- 1 root root 28K Apr 12 19:41 /root/autodl-tmp/SplatAtlas/analysis/data/step2_sigmoid_params_v2.csv
-rw-r--r-- 1 root root 76K Apr 16 21:53 /root/autodl-tmp/SplatAtlas/analysis/data/step2_sigmoid_params_v3.csv
-rw-r--r-- 1 root root 98K Apr 12 22:09 /root/autodl-tmp/SplatAtlas/analysis/data/step6_texture_density_view_level.csv
-rw-r--r-- 1 root root 17K Apr 12 22:09 /root/autodl-tmp/SplatAtlas/analysis/data/step6_texture_density_summary.csv
-rw-r--r-- 1 root root 289K Apr 14 13:43 /root/autodl-tmp/SplatAtlas/analysis/data/extraction_index.csv
-rw-r--r-- 1 root root 22K Apr 14 13:54 /root/autodl-tmp/SplatAtlas/analysis/data/extraction_failures.csv
-rw-r--r-- 1 root root 5.3M Apr 16 21:30 /root/autodl-tmp/SplatAtlas/analysis/data/level_c_stats.parquet
-rw-r--r-- 1 root root 2.5M Apr 16 21:13 /root/autodl-tmp/SplatAtlas/analysis/data/level_b_scalars.parquet
-rw-r--r-- 1 root root 4.0M Apr 16 21:31 /root/autodl-tmp/SplatAtlas/analysis/data/trajectory_matrix.npy
-rw-r--r-- 1 root root 12K Apr 16 21:31 /root/autodl-tmp/SplatAtlas/analysis/data/trajectory_labels.csv
-rw-r--r-- 1 root root 3.0M Apr 14 14:00 /root/autodl-tmp/SplatAtlas/analysis/data/trajectory_matrix_17methods.npy
-rw-r--r-- 1 root root 9.0K Apr 14 14:00 /root/autodl-tmp/SplatAtlas/analysis/data/trajectory_labels_17methods.csv
-rw-r--r-- 1 root root 5.1K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/data/mantel_results.json
-rw-r--r-- 1 root root 4.4K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/data/variance_decomposition.json
-rw-r--r-- 1 root root 4.5M Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/data/densification_events.csv
-rw-r--r-- 1 root root 2.4K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/data/shock_significance.json
-rw-r--r-- 1 root root 6.5K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/data/shock_analysis.json
-rw-r--r-- 1 root root 332K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/data/ccf_results.csv
-rw-r--r-- 1 root root 3.9K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/data/causal_order_summary.json
-rw-r--r-- 1 root root 2.4M Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/data/opacity_dynamics.csv
-rw-r--r-- 1 root root 311K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/data/pruning_recovery.csv
-rw-r--r-- 1 root root 5.9K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/data/population_turnover.json
-rw-r--r-- 1 root root 75K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/data/sh_buffer_analysis.csv
-rw-r--r-- 1 root root 479 Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/data/sh_buffer_summary.json
-rw-r--r-- 1 root root 3.8M Apr 16 21:41 /root/autodl-tmp/SplatAtlas/analysis/data/efficiency_data.csv
-rw-r--r-- 1 root root 9.3K Apr 16 21:41 /root/autodl-tmp/SplatAtlas/analysis/data/efficiency_summary.json
-rw-r--r-- 1 root root 8.4K Apr 16 21:41 /root/autodl-tmp/SplatAtlas/analysis/data/adaptability_results.json
-rw-r--r-- 1 root root 3.0K Apr 16 21:41 /root/autodl-tmp/SplatAtlas/analysis/data/scene_mantel_by_method.json
-rw-r--r-- 1 root root 19K Apr 16 21:41 /root/autodl-tmp/SplatAtlas/analysis/data/t_photo_results.csv
-rw-r--r-- 1 root root 67 Apr 16 21:41 /root/autodl-tmp/SplatAtlas/analysis/data/phase_divergence.csv
-rw-r--r-- 1 root root 175 Apr 16 21:41 /root/autodl-tmp/SplatAtlas/analysis/data/shape_clustering_metrics.json
-rw-r--r-- 1 root root 2.3K Apr 16 21:41 /root/autodl-tmp/SplatAtlas/analysis/data/reclassified_methods.json
-rw-r--r-- 1 root root 22K Apr 16 21:41 /root/autodl-tmp/SplatAtlas/analysis/data/shape_clusters.csv
-rw-r--r-- 1 root root 658 Apr 16 21:13 /root/autodl-tmp/SplatAtlas/analysis/data/level_b_scalars.manifest.json
-rw-r--r-- 1 root root 6.8K Apr 16 20:54 /root/autodl-tmp/SplatAtlas/analysis/data/step3_metric_spread.csv
-rw-r--r-- 1 root root 614 Apr 16 21:30 /root/autodl-tmp/SplatAtlas/analysis/data/level_c_stats.manifest.json
-rw-r--r-- 1 root root 616 Apr 16 21:31 /root/autodl-tmp/SplatAtlas/analysis/data/trajectory.manifest.json
-rw-r--r-- 1 root root 199K Apr 16 21:01 /root/autodl-tmp/SplatAtlas/analysis/data/step4_features_v4.csv

=== FIG_DIR contents ===
-rw-r--r-- 1 root root 306K Apr 12 14:59 /root/autodl-tmp/SplatAtlas/analysis/figures/step1_psnr_distribution.png
-rw-r--r-- 1 root root 327K Apr 12 14:59 /root/autodl-tmp/SplatAtlas/analysis/figures/step1_psnr_range_per_scene.png
-rw-r--r-- 1 root root 232K Apr 16 20:54 /root/autodl-tmp/SplatAtlas/analysis/figures/step1_tt_ranking_heatmap.png
-rw-r--r-- 1 root root 306K Apr 16 20:54 /root/autodl-tmp/SplatAtlas/analysis/figures/step1_collapse_impact.png
-rw-r--r-- 1 root root 622K Apr 12 15:21 /root/autodl-tmp/SplatAtlas/analysis/figures/step2_norm_curves_3scenes.png
-rw-r--r-- 1 root root 1013K Apr 12 15:21 /root/autodl-tmp/SplatAtlas/analysis/figures/step2_global_isomorphism.png
-rw-r--r-- 1 root root 260K Apr 12 15:21 /root/autodl-tmp/SplatAtlas/analysis/figures/step2_sigmoid_clustering.png
-rw-r--r-- 1 root root 146K Apr 12 15:21 /root/autodl-tmp/SplatAtlas/analysis/figures/step2_collapse_histogram.png
-rw-r--r-- 1 root root 246K Apr 12 15:21 /root/autodl-tmp/SplatAtlas/analysis/figures/step2_3dgsmcmc_comparison.png
-rw-r--r-- 1 root root 308K Apr 12 15:13 /root/autodl-tmp/SplatAtlas/analysis/figures/.ipynb_checkpoints/step1_collapse_impact-checkpoint.png
-rw-r--r-- 1 root root 81K Apr 14 15:00 /root/autodl-tmp/SplatAtlas/analysis/figures/.ipynb_checkpoints/sh_by_category_boxplot-checkpoint.png
-rw-r--r-- 1 root root 181K Apr 16 21:55 /root/autodl-tmp/SplatAtlas/analysis/figures/step5_global_spectra_gap.png
-rw-r--r-- 1 root root 176K Apr 12 16:53 /root/autodl-tmp/SplatAtlas/analysis/figures/step5_category_spectra.png
-rw-r--r-- 1 root root 291K Apr 12 19:01 /root/autodl-tmp/SplatAtlas/analysis/figures/step5_heatmap.png
-rw-r--r-- 1 root root 192K Apr 12 22:09 /root/autodl-tmp/SplatAtlas/analysis/figures/step6_correlation_boxplot.png
-rw-r--r-- 1 root root 257K Apr 12 22:09 /root/autodl-tmp/SplatAtlas/analysis/figures/step6_mean_correlation_barplot.png
-rw-r--r-- 1 root root 317K Apr 12 19:13 /root/autodl-tmp/SplatAtlas/analysis/figures/step7_coverage_matrix.png
-rw-r--r-- 1 root root 438K Apr 12 22:09 /root/autodl-tmp/SplatAtlas/analysis/figures/step6_heatmap_comparison.png
-rw-r--r-- 1 root root 857K Apr 12 19:20 /root/autodl-tmp/SplatAtlas/analysis/figures/step6_density_vs_texture_scatter.png
-rw-r--r-- 1 root root 125K Apr 12 19:26 /root/autodl-tmp/SplatAtlas/analysis/figures/step8_pca_scree_plot.png
-rw-r--r-- 1 root root 235K Apr 12 19:26 /root/autodl-tmp/SplatAtlas/analysis/figures/step8_pca_scatter.png
-rw-r--r-- 1 root root 341K Apr 12 19:26 /root/autodl-tmp/SplatAtlas/analysis/figures/step8_umap_stability.png
-rw-r--r-- 1 root root 147K Apr 12 19:26 /root/autodl-tmp/SplatAtlas/analysis/figures/step8_tsne_scatter.png
-rw-r--r-- 1 root root 100K Apr 12 19:26 /root/autodl-tmp/SplatAtlas/analysis/figures/step8_kmeans_silhouette.png
-rw-r--r-- 1 root root 276K Apr 12 19:26 /root/autodl-tmp/SplatAtlas/analysis/figures/step8_hierarchical_dendrogram.png
-rw-r--r-- 1 root root 218K Apr 12 19:26 /root/autodl-tmp/SplatAtlas/analysis/figures/step8_feature_importance.png
-rw-r--r-- 1 root root 285K Apr 12 19:26 /root/autodl-tmp/SplatAtlas/analysis/figures/step8_distance_heatmap.png
-rw-r--r-- 1 root root 891K Apr 16 21:53 /root/autodl-tmp/SplatAtlas/analysis/figures/step2_absolute_log_curves_3scenes.png
-rw-r--r-- 1 root root 559K Apr 12 19:41 /root/autodl-tmp/SplatAtlas/analysis/figures/step2_global_inflation_ratio.png
-rw-r--r-- 1 root root 270K Apr 16 21:53 /root/autodl-tmp/SplatAtlas/analysis/figures/step2_sigmoid_clustering_robust.png
-rw-r--r-- 1 root root 167K Apr 16 21:53 /root/autodl-tmp/SplatAtlas/analysis/figures/step2_collapse_histogram_fixed.png
-rw-r--r-- 1 root root 231K Apr 12 19:53 /root/autodl-tmp/SplatAtlas/analysis/figures/step2_3dgsmcmc_comparison_absolute.png
-rw-r--r-- 1 root root 3.5M Apr 16 21:53 /root/autodl-tmp/SplatAtlas/analysis/figures/step2_global_absolute_log_curves_by_category.png
-rw-r--r-- 1 root root 4.3M Apr 12 22:04 /root/autodl-tmp/SplatAtlas/analysis/figures/step6_debug_projection_overlay.png
-rw-r--r-- 1 root root 158K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/figures/mantel_scatter.png
-rw-r--r-- 1 root root 397K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/figures/mantel_by_dimension.png
-rw-r--r-- 1 root root 84K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/figures/mantel_by_scene.png
-rw-r--r-- 1 root root 61K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/figures/variance_decomposition_bar.png
-rw-r--r-- 1 root root 80K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/figures/pca_scree.png
-rw-r--r-- 1 root root 113K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/figures/shock_timeline.png
-rw-r--r-- 1 root root 92K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/figures/shock_direction_dendrogram.png
-rw-r--r-- 1 root root 98K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/figures/shock_vs_background.png
-rw-r--r-- 1 root root 127K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/figures/ccf_lag_histograms.png
-rw-r--r-- 1 root root 167K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/figures/ccf_by_method_heatmap.png
-rw-r--r-- 1 root root 213K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/figures/opacity_p10_trajectories.png
-rw-r--r-- 1 root root 112K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/figures/pruning_recovery_by_method.png
-rw-r--r-- 1 root root 101K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/figures/recovery_time_distribution.png
-rw-r--r-- 1 root root 149K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/figures/population_vs_quality.png
-rw-r--r-- 1 root root 124K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/figures/opacity_polarization_clusters.png
-rw-r--r-- 1 root root 104K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/figures/sh_geo_correlation_scatter.png
-rw-r--r-- 1 root root 42K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/figures/sh_lag_histogram.png
-rw-r--r-- 1 root root 83K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/figures/sh_by_category_boxplot.png
-rw-r--r-- 1 root root 385K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/figures/sh_vs_loss_by_method.png
-rw-r--r-- 1 root root 596K Apr 16 21:41 /root/autodl-tmp/SplatAtlas/analysis/figures/efficiency_curves.png
-rw-r--r-- 1 root root 60K Apr 16 21:41 /root/autodl-tmp/SplatAtlas/analysis/figures/phase_composition_bar.png
-rw-r--r-- 1 root root 68K Apr 16 21:41 /root/autodl-tmp/SplatAtlas/analysis/figures/late_phase_composition_bar.png
-rw-r--r-- 1 root root 266K Apr 16 21:41 /root/autodl-tmp/SplatAtlas/analysis/figures/efficiency_vs_quality_scatter.png
-rw-r--r-- 1 root root 220K Apr 16 21:41 /root/autodl-tmp/SplatAtlas/analysis/figures/dimension_activity_heatmap.png
-rw-r--r-- 1 root root 110K Apr 16 21:41 /root/autodl-tmp/SplatAtlas/analysis/figures/adaptability_bar.png
-rw-r--r-- 1 root root 178K Apr 16 21:41 /root/autodl-tmp/SplatAtlas/analysis/figures/adaptability_by_dimension_heatmap.png
-rw-r--r-- 1 root root 67K Apr 16 21:41 /root/autodl-tmp/SplatAtlas/analysis/figures/adaptability_vs_robustness.png
-rw-r--r-- 1 root root 114K Apr 16 21:41 /root/autodl-tmp/SplatAtlas/analysis/figures/scene_mantel_bar.png
-rw-r--r-- 1 root root 46K Apr 16 21:41 /root/autodl-tmp/SplatAtlas/analysis/figures/t_photo_histogram.png
-rw-r--r-- 1 root root 108K Apr 16 21:41 /root/autodl-tmp/SplatAtlas/analysis/figures/t_photo_by_method.png
-rw-r--r-- 1 root root 91K Apr 16 21:41 /root/autodl-tmp/SplatAtlas/analysis/figures/t_photo_by_scene.png
-rw-r--r-- 1 root root 96K Apr 16 21:41 /root/autodl-tmp/SplatAtlas/analysis/figures/divergence_vs_cutpoint.png
-rw-r--r-- 1 root root 75K Apr 16 21:41 /root/autodl-tmp/SplatAtlas/analysis/figures/shape_elbow_silhouette.png
-rw-r--r-- 1 root root 92K Apr 16 21:41 /root/autodl-tmp/SplatAtlas/analysis/figures/shape_dendrogram.png
-rw-r--r-- 1 root root 477K Apr 16 21:41 /root/autodl-tmp/SplatAtlas/analysis/figures/cluster_mean_trajectories.png
-rw-r--r-- 1 root root 142K Apr 16 21:41 /root/autodl-tmp/SplatAtlas/analysis/figures/shape_umap_by_cluster.png
-rw-r--r-- 1 root root 154K Apr 16 21:41 /root/autodl-tmp/SplatAtlas/analysis/figures/shape_umap_by_category.png
-rw-r--r-- 1 root root 329K Apr 16 20:54 /root/autodl-tmp/SplatAtlas/analysis/figures/step3_absolute_psnr_spread.png
-rw-r--r-- 1 root root 264K Apr 16 20:54 /root/autodl-tmp/SplatAtlas/analysis/figures/step3_relative_psnr_category.png
-rw-r--r-- 1 root root 112K Apr 16 20:07 /root/autodl-tmp/SplatAtlas/analysis/figures/step3_metric_correlation.png
-rw-r--r-- 1 root root 571K Apr 16 21:01 /root/autodl-tmp/SplatAtlas/analysis/figures/step4_pca_by_category.png
-rw-r--r-- 1 root root 624K Apr 16 21:01 /root/autodl-tmp/SplatAtlas/analysis/figures/step4_tsne_by_category.png
-rw-r--r-- 1 root root 108K Apr 16 21:01 /root/autodl-tmp/SplatAtlas/analysis/figures/step4_silhouette_comparison.png
-rw-r--r-- 1 root root 269K Apr 16 21:01 /root/autodl-tmp/SplatAtlas/analysis/figures/step4_variance_decomposition.png

# 步骤 3：逐一确认 Task 1.1 目标 figure 在 FIG_DIR 下是否存在
-rw-r--r-- 1 root root 104K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/figures/sh_geo_correlation_scatter.png
-rw-r--r-- 1 root root 127K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/figures/ccf_lag_histograms.png
-rw-r--r-- 1 root root 167K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/figures/ccf_by_method_heatmap.png
-rw-r--r-- 1 root root 142K Apr 16 21:41 /root/autodl-tmp/SplatAtlas/analysis/figures/shape_umap_by_cluster.png
-rw-r--r-- 1 root root 154K Apr 16 21:41 /root/autodl-tmp/SplatAtlas/analysis/figures/shape_umap_by_category.png
-rw-r--r-- 1 root root 92K Apr 16 21:41 /root/autodl-tmp/SplatAtlas/analysis/figures/shape_dendrogram.png
-rw-r--r-- 1 root root 158K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/figures/mantel_scatter.png
-rw-r--r-- 1 root root 397K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/figures/mantel_by_dimension.png
-rw-r--r-- 1 root root 84K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/figures/mantel_by_scene.png

# 步骤 4：逐一确认 Task 1.2 目标数据文件，并输出前 1500 字节
=== causal_order_summary.json ===
-rw-r--r-- 1 root root 3.9K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/data/causal_order_summary.json
{
    "p50": {
        "anisotropy_vs_sh_dc_mag": {
            "p1": "anisotropy",
            "p2": "sh_dc_mag",
            "median_lag": 0.0,
            "dominant_direction": "unclear",
            "consistency_ratio": 0.42758620689655175,
            "binom_p_value": 0.9999598248068291,
            "is_significant": false
        },
        "opacity_vs_anisotropy": {
            "p1": "opacity",
            "p2": "anisotropy",
            "median_lag": 0.0,
            "dominant_direction": "unclear",
            "consistency_ratio": 0.4303448275862069,
            "binom_p_value": 0.9999258920570709,
            "is_significant": false
        },
        "opacity_vs_scaling": {
            "p1": "opacity",
            "p2": "scaling",
            "median_lag": 1.0,
            "dominant_direction": "unclear",
            "consistency_ratio": 0.5751724137931035,
            "binom_p_value": 2.934312995512511e-05,
            "is_significant": false
        },
        "opacity_vs_sh_dc_mag": {
            "p1": "opacity",
            "p2": "sh_dc_mag",
            "median_lag": 1.0,
            "dominant_direction": "unclear",
            "consistency_ratio": 0.5048275862068966,
            "binom_p_value": 0.41184168701489116,
            "is_significant": false
        },
        "scaling_vs_anisotropy": {
            "p1": "scaling",
            "p2": "anisotropy",
            "median_lag": 0.0,
            "dominant_direction": "unclear",
            "consistency_rat
---
=== ccf_results.csv ===
-rw-r--r-- 1 root root 332K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/data/ccf_results.csv
method,scene,dim_pair,p1,p2,peak_lag,peak_ccf
2dgs,Chair,opacity_vs_scaling,opacity,scaling,1,0.8280610053951878
2dgs,Chair,opacity_vs_anisotropy,opacity,anisotropy,1,-0.7873704595499819
2dgs,Chair,opacity_vs_sh_dc_mag,opacity,sh_dc_mag,1,-0.8491048607510829
2dgs,Chair,scaling_vs_anisotropy,scaling,anisotropy,0,-0.9682692416973169
2dgs,Chair,scaling_vs_sh_dc_mag,scaling,sh_dc_mag,0,-0.9784926500560734
2dgs,Chair,anisotropy_vs_sh_dc_mag,anisotropy,sh_dc_mag,0,0.9373664461034316
2dgs,DrJohnson,opacity_vs_scaling,opacity,scaling,0,0.6363187864431287
2dgs,DrJohnson,opacity_vs_anisotropy,opacity,anisotropy,-3,-0.40254938127161904
2dgs,DrJohnson,opacity_vs_sh_dc_mag,opacity,sh_dc_mag,-1,0.7785325827444196
2dgs,DrJohnson,scaling_vs_anisotropy,scaling,anisotropy,0,-0.8333488575576589
2dgs,DrJohnson,scaling_vs_sh_dc_mag,scaling,sh_dc_mag,-1,0.6506183238336418
2dgs,DrJohnson,anisotropy_vs_sh_dc_mag,anisotropy,sh_dc_mag,1,-0.6705859643231137
2dgs,Drums,opacity_vs_scaling,opacity,scaling,0,0.7469704056960167
2dgs,Drums,opacity_vs_anisotropy,opacity,anisotropy,0,-0.811795944666076
2dgs,Drums,opacity_vs_sh_dc_mag,opacity,sh_dc_mag,0,-0.7321482127546862
2dgs,Drums,scaling_vs_anisotropy,scaling,anisotropy,0,-0.971779719345419
2dgs,Drums,scaling_vs_sh_dc_mag,scaling,sh_dc_mag,0,-0.8935325812099355
2dgs,Drums,anisotropy_vs_sh_dc_mag,anisotropy,sh_dc_mag,0,0.8997068787496604
2dgs,Ficus,opacity_vs_scaling,opacity,scaling,0,0.9427630041486773
2dgs,Ficus,opacity_vs_anisotropy,opacity,anisotropy,0,
---
=== shape_clustering_metrics.json ===
-rw-r--r-- 1 root root 175 Apr 16 21:41 /root/autodl-tmp/SplatAtlas/analysis/data/shape_clustering_metrics.json
{
    "best_k": 6,
    "silhouette_score": 0.18470566993070697,
    "ARI": 0.07306036617143968,
    "NMI": 0.26970452863076716,
    "dbscan_noise_ratio": 0.03310344827586207
}
---
=== reclassified_methods.json ===
-rw-r--r-- 1 root root 2.3K Apr 16 21:41 /root/autodl-tmp/SplatAtlas/analysis/data/reclassified_methods.json
[
    {
        "method": "2dgs",
        "original_category": "GEO_REG",
        "assigned_cluster": 1,
        "cluster_majority_category": "PRIM_CTRL",
        "shape_nearest_neighbor": "steepgs"
    },
    {
        "method": "3dgs_dr",
        "original_category": "RENDER",
        "assigned_cluster": 2,
        "cluster_majority_category": "PRIM_CTRL",
        "shape_nearest_neighbor": "reactgs"
    },
    {
        "method": "3dgsmcmc",
        "original_category": "FREE",
        "assigned_cluster": 2,
        "cluster_majority_category": "PRIM_CTRL",
        "shape_nearest_neighbor": "erankgs"
    },
    {
        "method": "analyticsplatting",
        "original_category": "RENDER",
        "assigned_cluster": 1,
        "cluster_majority_category": "PRIM_CTRL",
        "shape_nearest_neighbor": "2dgs"
    },
    {
        "method": "gaussianpro",
        "original_category": "GEO_REG",
        "assigned_cluster": 1,
        "cluster_majority_category": "PRIM_CTRL",
        "shape_nearest_neighbor": "2dgs"
    },
    {
        "method": "ges",
        "original_category": "RENDER",
        "assigned_cluster": 1,
        "cluster_majority_category": "PRIM_CTRL",
        "shape_nearest_neighbor": "steepgs"
    },
    {
        "method": "gof",
        "original_category": "GEO_REG",
        "assigned_cluster": 1,
        "cluster_majority_category": "PRIM_CTRL",
        "shape_nearest_neighbor": "analyticsplatting"
    },
    {
        "method": "lightgaussian",
      
---
=== mantel_results.json ===
-rw-r--r-- 1 root root 5.1K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/data/mantel_results.json
{
    "global": {
        "r": 0.800348411542614,
        "p": 9.999000099990002e-05
    },
    "by_dimension": {
        "anisotropy": {
            "r": 0.7436689386371818,
            "p": 9.999000099990002e-05
        },
        "opacity": {
            "r": 0.6015007087548302,
            "p": 9.999000099990002e-05
        },
        "scaling": {
            "r": 0.674804754277292,
            "p": 9.999000099990002e-05
        },
        "sh_dc_mag": {
            "r": 0.9214428549376513,
            "p": 9.999000099990002e-05
        }
    },
    "by_scene": {
        "Chair": {
            "r": 0.8809456149703953,
            "p": 0.0004997501249375312,
            "N": 22
        },
        "DrJohnson": {
            "r": 0.8711929448938316,
            "p": 0.0004997501249375312,
            "N": 22
        },
        "Drums": {
            "r": 0.8919725401453528,
            "p": 0.0004997501249375312,
            "N": 23
        },
        "Ficus": {
            "r": 0.8986921663241942,
            "p": 0.0004997501249375312,
            "N": 23
        },
        "Hotdog": {
            "r": 0.8322620323597257,
            "p": 0.0004997501249375312,
            "N": 23
        },
        "Lego": {
            "r": 0.8919973563871237,
            "p": 0.0004997501249375312,
            "N": 23
        },
        "Materials": {
            "r": 0.8877686526161117,
            "p": 0.0004997501249375312,
            "N": 23
        },
        "Mic": {
            
---
=== shock_significance.json ===
-rw-r--r-- 1 root root 2.4K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/data/shock_significance.json
{
    "opacity": {
        "mean": {
            "Z": 88.04855244196433,
            "p_value": 0.0,
            "effect_size": 0.5962716688736508
        },
        "std": {
            "Z": 84.92013351699059,
            "p_value": 0.0,
            "effect_size": 0.5750857717567215
        },
        "p50": {
            "Z": 83.86783495466828,
            "p_value": 0.0,
            "effect_size": 0.5679595237661842
        },
        "skewness": {
            "Z": 82.35282133842556,
            "p_value": 0.0,
            "effect_size": 0.5576997333179677
        }
    },
    "scaling": {
        "mean": {
            "Z": 78.85212163052856,
            "p_value": 0.0,
            "effect_size": 0.5339927216844818
        },
        "std": {
            "Z": 57.54106387366047,
            "p_value": 0.0,
            "effect_size": 0.38967257533651983
        },
        "p50": {
            "Z": 69.44077347272047,
            "p_value": 0.0,
            "effect_size": 0.47025833745248596
        },
        "skewness": {
            "Z": 66.42564042729758,
            "p_value": 0.0,
            "effect_size": 0.4498396211532554
        }
    },
    "anisotropy": {
        "mean": {
            "Z": 0.10878760414034068,
            "p_value": 0.9133709559251827,
            "effect_size": 0.0007367181455513758
        },
        "std": {
            "Z": -0.9330711721804165,
            "p_value": 0.35078322221982894,
            "effect_size": -0.006318830799411814
       
---
=== population_turnover.json ===
-rw-r--r-- 1 root root 5.9K Apr 16 21:39 /root/autodl-tmp/SplatAtlas/analysis/data/population_turnover.json
{
    "growth": {
        "2dgs": {
            "growth_rate": 0.06093311161080359,
            "volatility": 0.1219217322561972
        },
        "3dgs_dr": {
            "growth_rate": 0.03538778812448946,
            "volatility": 0.09163369189496726
        },
        "3dgsmcmc": {
            "growth_rate": 0.29494761468695285,
            "volatility": 0.2664454483264541
        },
        "absgs": {
            "growth_rate": 0.0011668682888873456,
            "volatility": 0.04933035752548057
        },
        "analyticsplatting": {
            "growth_rate": 0.0670432109615091,
            "volatility": 0.1339943780672083
        },
        "atomgs": {
            "growth_rate": 0.0013561930592607564,
            "volatility": 0.12658523423751275
        },
        "coadaptgs": {
            "growth_rate": 0.010632965029977974,
            "volatility": 0.05136062052839021
        },
        "conegs": {
            "growth_rate": -0.03270495959540355,
            "volatility": 0.1329494255614772
        },
        "erankgs": {
            "growth_rate": 0.10496781180918263,
            "volatility": 0.15203549835691843
        },
        "gaussianpro": {
            "growth_rate": 0.05382926707552753,
            "volatility": 0.11836642743885926
        },
        "ges": {
            "growth_rate": 0.0552446414249109,
            "volatility": 0.11561749596041469
        },
        "ghap": {
            "growth_rate": -0.08528176600083084,
            "volatility
---
=== adaptability_results.json ===
-rw-r--r-- 1 root root 8.4K Apr 16 21:41 /root/autodl-tmp/SplatAtlas/analysis/data/adaptability_results.json
{
    "2dgs": {
        "intra_distance": 21.810724794441487,
        "adaptability": 0.7902292495505054,
        "dim_adaptability": {
            "anisotropy": 0.6701256546763956,
            "opacity": 0.43470032126322744,
            "scaling": 0.6957588911049737,
            "sh_dc_mag": 1.2694731653767604
        },
        "loss_std": 0.025009874996112087
    },
    "3dgs_dr": {
        "intra_distance": 16.0139259312659,
        "adaptability": 0.580204133071575,
        "dim_adaptability": {
            "anisotropy": 0.5367764330111972,
            "opacity": 0.1942967728443827,
            "scaling": 0.775365645302902,
            "sh_dc_mag": 0.768074019329754
        },
        "loss_std": 0.038401269129318016
    },
    "3dgsmcmc": {
        "intra_distance": 27.5997173666727,
        "adaptability": 0.9999715345557968,
        "dim_adaptability": {
            "anisotropy": 1.3941147509041523,
            "opacity": 0.9606057855839736,
            "scaling": 1.0785543263802897,
            "sh_dc_mag": 0.8658681777633402
        },
        "loss_std": 0.0681402894537559
    },
    "absgs": {
        "intra_distance": 20.803590851204348,
        "adaptability": 0.7537395543357938,
        "dim_adaptability": {
            "anisotropy": 0.4559017544921858,
            "opacity": 0.47451483382361587,
            "scaling": 0.7343645476838963,
            "sh_dc_mag": 1.2068158461884582
        },
        "loss_std": 0.02132773077335615
    },
    "analyticsplatting
---

# 步骤 5：确认 Task 1.3b 数据源
=== sh_buffer_analysis.csv 列名 ===
method,scene,pearson_r,peak_lag,peak_ccf,final_sh_mean,final_geo_badness,category
2dgs,Chair,0.13004926108374382,0,0.8988228265845956,1.7753753489643105,-0.2870257338626836,GEO_REG
=== sh_buffer_summary.json ===
{
    "median_r": -0.004926108374384235,
    "positive_lag_ratio": 0.4786206896551724,
    "negative_lag_ratio": 0.19310344827586207,
    "zero_lag_ratio": 0.32827586206896553,
    "geo_reg_vs_others": {
        "sh_mean_Z": -3.849266611016783,
        "sh_mean_p": 0.00011847200374631028,
        "sh_mean_ES": -0.16179674376977704,
        "geo_badness_Z": -0.270073863135896,
        "geo_badness_p": 0.7871034293897472,
        "geo_badness_ES": -0.011352051195323625
    }
}
## MISSING FILES（补充）
None