Satellite Constellations API¶
- class rubin_sim.satellite_constellations.Constellation(sat_tle_list, alt_limit=20.0, fov=3.5)[source]¶
Bases:
object
Holds the constellation TLEs and calculates their appearance in a series of observations.
- Parameters:
sat_tle_list (
list
[str
]) – A list of satellite TLEs to be usedalt_limit (
float
) – Altitude limit below which satellites can be ignored (degrees)fov (
float
) – The field of view diameter (degrees)
- check_pointings(pointing_ras, pointing_decs, mjds, visit_time, fov_radius=1.75, test_radius=10.0, dt=2.0)[source]¶
Calculate streak length and number of streaks in a set of visits.
- Parameters:
pointing_ras (
np.ndarray
, (N,)) – The RA for each pointing (degrees).pointing_decs (
np.ndarray
, (N,)) – The dec for each pointing (degrees).mjds (
np.ndarray
, (N,)) – The MJD for the (start) of each pointing (days).visit_time (
np.ndarray
, (N,)) – The start to end time for a visit (seconds).fov_radius (
float
) – The radius of the science field of view (degrees)test_radius (
float
) – The radius to use to see if a streak gets close (degrees). Should be large, because satellites can be moving at ~1 deg/s.dt (
float
) – The timestep to use for high resolution checking if a satellite crossed (seconds).
- Returns:
streak length (
float
) – The total length of satellite streaks in the FoV (degrees)n_streak (
int
) – The number of streaks that were in the FoV.
- paths_array(mjds)[source]¶
Calculate and return the RA/Dec/Alt and illumination status for all the satellites at an array of times.
- Parameters:
mjds (
np.ndarray
, (N,)) – Modified Julian Dates.- Returns:
ras (
np.ndarray
, (N,)) – RAs at each MJDdecs (
np.ndarray
, (N,)) – Decs at each MJDalts (
np.ndarray
, (N,)) – Altitudes at each MJDillums (
np.ndarray
, (N,)) – Array of bools for if satellite is illuminated
- class rubin_sim.satellite_constellations.ModelObservatory(nside=None, mjd_start=60796.0, seed=42, alt_min=5.0, lax_dome=True, cloud_limit=0.3, sim_to_o=None, seeing_db=None, park_after=10.0, init_load_length=10, sat_nside=64, satellite_dt=10.0, constellation=None, alt_limit=20.0)[source]¶
Bases:
ModelObservatory
A class to generate a realistic telemetry stream for the scheduler
- Parameters:
nside (
int
) – The healpix nside resolutionmjd_start (
float
) – The MJD to start the observatory up at. Uses util to lookup default if None.alt_min (
float
) – The minimum altitude to compute models at (degrees).lax_dome (
bool
) – Passed to observatory model. If true, allows dome creep.cloud_limit (
float
) – The limit to stop taking observations if the cloud model returns something equal or highersim_to_o (
sim_targetoO
) – If one would like to inject simulated ToOs into the telemetry stream.seeing_db (
str
) – If one would like to use an alternate seeing database, filename of sqlite filepark_after (
float
) – Park the telescope after a gap longer than park_after (minutes)init_load_length (
int
) – The length of pre-scheduled sky brighntess to load initially (days).alt_limit (
float
) – Altitude limit for considering satellite streaks (degrees).satellite_dt (
float
) – The time step to use for computing satellite positions (seconds).sat_nside (
int
) – The HEALpix nside to use for satellite streak maps.constellation (
rubin_sim.satellite_constellations.Constellation
) – The satellite constellation to use.
- class rubin_sim.satellite_constellations.SatelliteAvoidBasisFunction(nside=32, forecast_time=90.0, smooth_fwhm=3.5)[source]¶
Bases:
BaseBasisFunction
Uses satellite position information from the Conditions object and then avoids streaks.
- Parameters:
forecast_time (
float
) – The time ahead to forecast satellite streaks (minutes).smooth_fwhm (
float
) – The smoothing full width half max to use (degrees)
- rubin_sim.satellite_constellations.create_constellation(altitudes, inclinations, nplanes, sats_per_plane, epoch=23274.0, name='Test', seed=42)[source]¶
Create a set of orbital elements for a satellite constellation then convert them to TLEs.
- Parameters:
altitudes (
np.ndarray
, (N,)) – Altitudes (degrees).inclinations (
np.ndarray
, (N,)) – Inclinations (degrees).nplanes (
np.ndarray
, (N,)) – Number of satellite planes.sats_per_plane (
np.ndarray
, (N,)) – Number of satellites per orbital plane.epoch (
float
) – Epoch.name (
str
) – Satellite name.seed (
float
) – Random number seed.
- Returns:
my_sat_tles
- Return type:
list
ofstr
- rubin_sim.satellite_constellations.oneweb_tles()[source]¶
Create a list of satellite TLE’s appropriate for OneWeb plans (as of July 2022). Should create 6,372 orbits
- Returns:
my_sat_tles
- Return type:
list
[str
]
- rubin_sim.satellite_constellations.starlink_tles_v1()[source]¶
Create a list of satellite TLE’s, appropriate for Starlink v1 (as of July 2022). Should create 4,408 orbits
- Returns:
my_sat_tles
- Return type:
list
[str
]
- rubin_sim.satellite_constellations.starlink_tles_v2()[source]¶
Create a list of satellite TLE’s appropriate for Starlink v2 (as of July 2022). Should create 29,988 orbits
- Returns:
my_sat_tles
- Return type:
list
[str
]
- rubin_sim.satellite_constellations.sun_alt_limits()[source]¶
Return sun altitude limits (degrees) at which zero illuminated satellites above 20 degrees altitude result.
Different constellations have different limits at which zero illumination above 20 degrees occurs.
- Returns:
sun_alt_limits – Dict with satellite constellation name keys, altitude limits values (degrees).
- Return type:
dict
[str
:float
]