empyrean.PlannedObservation¶
- class PlannedObservation(epoch_mjd_tdb, kind=PlannedObservationKind.OPTICAL, optical_code='', optical_sigma_arcsec=(1.0, 1.0), radar_transmit_station=RadarStation.GOLDSTONE_DSS14, radar_receive_station=RadarStation.GOLDSTONE_DSS14, radar_mode=RadarMode.BOTH, radar_bandwidth_hz=0.0, radar_freq_resolution_hz=0.0, radar_snr=None, radar_target_h_mag=None, radar_target_visual_albedo=None, radar_target_radar_albedo=None, radar_target_diameter_km=None, radar_target_spin_period_hours=None, radar_integration_s=0.0)[source]
Bases:
objectOne candidate observation: when it would be taken and what it would measure.
Tagged-union shape — the active fields depend on
kind, and fields belonging to the other kind must be left at their defaults. Setting an inapplicable field raisesValueErrorat construction rather than being silently ignored. Prefer theoptical()/radar()constructors, which set the discriminator for you.Mirrors
empyrean::PlannedObservation.Methods
__init__(epoch_mjd_tdb[, kind, ...])optical(epoch_mjd_tdb, optical_code[, ...])An optical candidate at a registered observatory.
radar(epoch_mjd_tdb, *[, ...])A radar candidate at the given receive epoch.
Attributes
kindoptical_codeRegistered MPC observatory code (e.g.
"F51").optical_sigma_arcsecAssumed 1σ (RA·cosδ, Dec) astrometric uncertainty in arcsec.
radar_bandwidth_hzWaveform bandwidth (Hz) — sets the delay (range) σ.
radar_freq_resolution_hzDoppler frequency resolution (Hz) — sets the range-rate σ.
radar_integration_sCoherent integration time (s) for the link budget.
radar_modeWhich observable(s) to measure.
radar_receive_stationReceiving dish.
radar_snrEffective SNR as a linear power ratio, not dB.
radar_target_diameter_kmLink-budget target effective diameter (km).
radar_target_h_magLink-budget target absolute magnitude (mag).
radar_target_radar_albedoLink-budget target radar (OC) albedo.
radar_target_spin_period_hoursLink-budget target rotation period (hours); caps the coherent integration time.
radar_target_visual_albedoLink-budget target visual geometric albedo .
radar_transmit_stationTransmitting dish.
epoch_mjd_tdbPlanned epoch (MJD TDB) — the receive epoch for radar.
- Parameters:
epoch_mjd_tdb (float)
kind (PlannedObservationKind)
optical_code (str)
radar_transmit_station (RadarStation)
radar_receive_station (RadarStation)
radar_mode (RadarMode)
radar_bandwidth_hz (float)
radar_freq_resolution_hz (float)
radar_snr (float | None)
radar_target_h_mag (float | None)
radar_target_visual_albedo (float | None)
radar_target_radar_albedo (float | None)
radar_target_diameter_km (float | None)
radar_target_spin_period_hours (float | None)
radar_integration_s (float)
- epoch_mjd_tdb: float
Planned epoch (MJD TDB) — the receive epoch for radar.
- kind: PlannedObservationKind = 'optical'
- optical_code: str = ''
Registered MPC observatory code (e.g.
"F51").
- optical_sigma_arcsec: tuple[float, float] = (1.0, 1.0)
Assumed 1σ (RA·cosδ, Dec) astrometric uncertainty in arcsec.
- radar_transmit_station: RadarStation = 'goldstone_dss14'
Transmitting dish.
- radar_receive_station: RadarStation = 'goldstone_dss14'
Receiving dish. Equal to the transmit station = monostatic.
- radar_mode: RadarMode = 'both'
Which observable(s) to measure.
- radar_bandwidth_hz: float = 0.0
Waveform bandwidth (Hz) — sets the delay (range) σ. Must be positive for
RadarMode.DELAYorRadarMode.BOTH.
- radar_freq_resolution_hz: float = 0.0
Doppler frequency resolution (Hz) — sets the range-rate σ. Must be positive for
RadarMode.DOPPLERorRadarMode.BOTH.
- radar_snr: float | None = None
Effective SNR as a linear power ratio, not dB.
None— the default — means derive it from the link budget over theradar_target_*properties andradar_integration_s. That is a different request, not a missing value: supply a number and the link budget is not consulted at all. Whatever the link budget had to assume comes back onPlanCandidates.radar_provenance, so a derived SNR is never silent.
- radar_target_h_mag: float | None = None
Link-budget target absolute magnitude (mag).
None= not known.
- radar_target_visual_albedo: float | None = None
Link-budget target visual geometric albedo .
None= not known.
- radar_target_radar_albedo: float | None = None
Link-budget target radar (OC) albedo.
None= not known.
- radar_target_diameter_km: float | None = None
Link-budget target effective diameter (km).
None= not known.
- radar_target_spin_period_hours: float | None = None
Link-budget target rotation period (hours); caps the coherent integration time.
None= not known.
- radar_integration_s: float = 0.0
Coherent integration time (s) for the link budget. Read only when
radar_snrisNone.
- classmethod optical(epoch_mjd_tdb, optical_code, optical_sigma_arcsec=(1.0, 1.0))[source]
An optical candidate at a registered observatory.
Mirrors
empyrean::PlannedObservation::optical.
- classmethod radar(epoch_mjd_tdb, *, radar_transmit_station=RadarStation.GOLDSTONE_DSS14, radar_receive_station=RadarStation.GOLDSTONE_DSS14, radar_mode=RadarMode.BOTH, radar_bandwidth_hz=0.0, radar_freq_resolution_hz=0.0, radar_snr=None, radar_target_h_mag=None, radar_target_visual_albedo=None, radar_target_radar_albedo=None, radar_target_diameter_km=None, radar_target_spin_period_hours=None, radar_integration_s=0.0)[source]
A radar candidate at the given receive epoch.
Mirrors
empyrean::PlannedObservation::radar. Leaveradar_snratNoneto have the effective SNR derived from the link budget over theradar_target_*properties andradar_integration_s.- Return type:
PlannedObservation- Parameters:
epoch_mjd_tdb (float)
radar_transmit_station (RadarStation | str)
radar_receive_station (RadarStation | str)
radar_mode (RadarMode | str)
radar_bandwidth_hz (float)
radar_freq_resolution_hz (float)
radar_snr (float | None)
radar_target_h_mag (float | None)
radar_target_visual_albedo (float | None)
radar_target_radar_albedo (float | None)
radar_target_diameter_km (float | None)
radar_target_spin_period_hours (float | None)
radar_integration_s (float)