run_timeline.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. """生成全时段 15 分钟槽位拼接波形 HTML。"""
  2. from __future__ import annotations
  3. import json
  4. import sys
  5. from pathlib import Path
  6. import pandas as pd
  7. ROOT = Path(__file__).resolve().parents[1]
  8. if str(ROOT) not in sys.path:
  9. sys.path.insert(0, str(ROOT))
  10. from _tmp_cylinder_vibration import config, hourly, labels, timeline_html
  11. def main() -> None:
  12. frame = labels.prepare_frame(
  13. pd.read_csv(config.OUTPUT_DIR / "vibration_features_full.csv").to_dict("records"), 15
  14. )
  15. baseline = json.loads((config.OUTPUT_DIR / "baseline_full.json").read_text(encoding="utf-8"))
  16. intervals = pd.read_csv(config.OUTPUT_DIR / "vibration_intervals_full.csv")
  17. for column in ("start_time", "end_time", "max_time"):
  18. intervals[column] = pd.to_datetime(intervals[column], errors="coerce")
  19. hourly_labels = hourly.build_hourly(intervals)
  20. hourly_labels.to_csv(
  21. config.OUTPUT_DIR / "vibration_hourly_labels.csv",
  22. index=False,
  23. date_format="%Y-%m-%d %H:%M:%S",
  24. )
  25. print(f"[hourly] {len(hourly_labels)} labels")
  26. timeline_html.export_timeline(frame, intervals, baseline)
  27. if __name__ == "__main__":
  28. main()