madlib._sensor.GroundOpticalSensor¶
- class madlib._sensor.GroundOpticalSensor(lat: float, lon: float, alt: float, 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, id: str | None = None, lat_truth: float | None = None, lon_truth: float | None = None, alt_truth: float | None = None, cross_tag: Satellite | None = None, cross_tag_limit_arcsec: float = 100.0, **extras)[source]¶
Class for modeling the observing of a satellite with an optical sensor
- __init__(lat: float, lon: float, alt: float, 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, id: str | None = None, lat_truth: float | None = None, lon_truth: float | None = None, alt_truth: float | None = None, cross_tag: Satellite | None = None, cross_tag_limit_arcsec: float = 100.0, **extras)[source]¶
Construct a GroundOpticalSensor object
- Parameters:
lat (float) – Site geodetic latitude (deg)
lon (float) – Site geodetic longitude (deg)
alt (float) – Site altitude above WGS-84 reference ellipsoid
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
lat_truth (float | None, optional) – If not None, the latitude specified by <lat> is reported by the sensor as its position, but it is incorrect. The actual position is specified by <lat_truth>. By default None.
lon_truth (float | None, optional) – If not None, the longitude specified by <lon> is reported by the sensor as its position, but it is incorrect. The actual position is specified by <lon_truth>. By default None.
alt_truth (float | None, optional) – If not None, the altitude specified by <alt> is reported by the sensor as its position, but it is incorrect. The actual position is specified by <alt_truth>. 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
Methods
__init__(lat, lon, alt, dra, ddec, ...[, ...])Construct a GroundOpticalSensor object
generate_obs_timing(start, end)Randomly generate a realistic time sampling of observations.
observe(target_satellite, times)Observe a satellite with this sensor model at the times given. Observations are computed in three forms: - truth: Measurements that would be returned if there were no random or systematic errors and knowledge of the orbit and maneuvers was perfect. These are the observations you would see in a perfect world. - expected: Measurements without random noise, but also without maneuver knowledge and with any systematic errors on sensor position and/or satellite orbit. These are the observations that you THINK you should get, given your actual knowledge of the system. - measured: The actual output of the simulated system, including all random and systematic sources of error and following the target satellite's full trajectory. This can also contain cross-tag events.
validate_limits(obs)Determine whether Observation is possible based on the sensor limits.
Attributes
idobs_time_spacing