madlib._sensor._OpticalSensor

class madlib._sensor._OpticalSensor(dra: float, ddec: float, collect_gap_mean: float, obs_limits: dict | None = None, collect_gap_std: float = 0.0, obs_per_collect: int | tuple[int, int] = 1, obs_time_spacing: float = 1.0, students_dof: int | None = None, id: str | None = None, cross_tag: Satellite | None = None, cross_tag_limit_arcsec: float = 100.0)[source]

Generic class for optical sensors

__init__(dra: float, ddec: float, collect_gap_mean: float, obs_limits: dict | None = None, collect_gap_std: float = 0.0, obs_per_collect: int | tuple[int, int] = 1, obs_time_spacing: float = 1.0, students_dof: int | None = None, id: str | None = None, cross_tag: Satellite | None = None, cross_tag_limit_arcsec: float = 100.0)[source]

Construct an _OpticalSensor object

Parameters:
  • dra (float) – Metric accuracy in the right ascension direction

  • ddec (float) – Metric accuracy in the declination direction

  • collect_gap_mean (float) – Average time (seconds) between collects on a satellite

  • obs_limits (dict | None, optional) – Dictionary of the limits on what this sensor can observe. This can be obvious (e.g. can’t observe through the Earth), or based on sensor sensitivity (e.g. range limit for radar), by default None

  • collect_gap_std (float, optional) – Standard deviation of times (seconds) between collects on a satellite, by default 0.0

  • obs_per_collect (int | tuple[int, int], optional) – Typical number of observations per collect. This can be a constant, or a tuple of (min, max) for randomly sampling, by default 1

  • obs_time_spacing (float, optional) – Time between observations within a collect, by default 1.0

  • id (str | None, optional) – Unique Sensor ID, by default None

  • cross_tag (madlib.Satellite | None, optional) – An optional nearby satellite that the sensor has misattributed as the target, by default None (no misattribution)

  • cross_tag_limit_arcsec (float, optional) – The maximum allowed separation (in arcseconds) between the target’s expected position and the cross_tag satellite. At further separations, observations of the misattributed satellite will be ignored. By default 100.0

  • students_dof (int | None, optional) – Degrees of freedom to use for T-distribution when generating noise, by default None (Gaussian)

Methods

__init__(dra, ddec, collect_gap_mean[, ...])

Construct an _OpticalSensor object

generate_obs_timing(start, end)

Randomly generate a realistic time sampling of observations.

observe(sat, times)

Observe a given satellite with this sensor at the times given.

validate_limits(obs)

Determine whether Observation is possible based on the sensor limits.

Attributes

id

dra

ddec

obs_per_collect

obs_time_spacing

collect_gap_mean

collect_gap_std

obs_limits