spino.pipeline.phase_plotter module

Phase Plotter

All plotting functions for the phase scheduler:
  • plot_event: altitude-vs-time for a single observable event

  • plot_calendar: calendar summary (phase bars per night)

  • plot_PR_landscape: P-R desert landscape with KDE background

spino.pipeline.phase_plotter.plot_event(event, obs, output_path=None, pdf=None)[source]

Altitude-vs-time plot for one observable event.

Exactly one of output_path or pdf must be provided:
  • output_path writes a single-page PDF (legacy mode).

  • pdf is a matplotlib.backends.backend_pdf.PdfPages instance and the figure is appended as a page (used by the scheduler to bundle every event of one type into one multi-page PDF per planet).

Parameters:
  • event (dict with _night, _geom, _target, _windows, event_type, etc.)

  • obs (dict with lat, lon, alt, name, timezone)

  • output_path (str or None)

  • pdf (PdfPages or None)

spino.pipeline.phase_plotter.plot_calendar(events, event_type, planet_name, event_windows, output_path)[source]

Calendar summary: one horizontal bar per night, coloured by Moon illumination, with the event phase window highlighted.

Parameters:
  • events (list of event dicts (all same event_type))

  • event_type (str)

  • planet_name (str)

  • event_windows (dict from compute_event_windows)

  • output_path (str)

spino.pipeline.phase_plotter.plot_PR_landscape(df_all, df_filtered, boundary_file, kde_file, P_max=100, R_max=20, output_dir='.')[source]

Period-Radius landscape with KDE background and CG24 boundary.

Parameters:
  • df_all (DataFrame with one row per planet (all planets))

  • df_filtered (DataFrame with only filtered/scheduled planets)

  • boundary_file (str, path to desert_boundaries.txt)

  • kde_file (str, path to kde_points_NEA.npz)

  • P_max (axis limits)

  • R_max (axis limits)

  • output_dir (str)