argos.core.exoplanet

Predict transit coverage and make cadence-preserving acquisition plans.

All event times are BJD_TDB. This module deliberately does not fit a transit, reduce frames, or change their calibration: those are external post-processing responsibilities.

class argos.core.exoplanet.transit.TransitWindow(epoch_number: int, mid_bjd_tdb: float, ingress_bjd_tdb: float, egress_bjd_tdb: float, coverage_start_bjd_tdb: float, coverage_end_bjd_tdb: float, baseline_minutes: float)[source]

Bases: object

One predicted event and the requested pre/post-transit baseline.

baseline_minutes: float
coverage_end_bjd_tdb: float
property coverage_hours: float
coverage_start_bjd_tdb: float
egress_bjd_tdb: float
epoch_number: int
ingress_bjd_tdb: float
mid_bjd_tdb: float
argos.core.exoplanet.transit.make_transit_sequence(target: ExoplanetTarget, window: TransitWindow, *, exposure_s: float, gain: int, filter_name: str, cadence_s: float | None = None) → SequencePlan[source]

Build a single-light-step plan covering the requested transit window.

Autfocus and dithering are disabled on purpose: flux time-series work needs stable cadence and pointing. The UI labels this a preparation; the observer still reviews exposure, filter and actual start time before running it.

argos.core.exoplanet.transit.predict_next_transit(target: ExoplanetTarget, from_bjd_tdb: float, *, baseline_minutes: float = 60.0) → TransitWindow[source]

Return the first full transit whose midpoint is not before from_bjd_tdb.

The caller must convert its requested instant to BJD_TDB. Rejecting a non-positive baseline here catches accidental empty-coverage plans before a telescope run begins.