AtNightConstraint#

class m4opt.constraints.AtNightConstraint(max_solar_altitude=<Quantity 0. deg>)[source] [edit on github]#

Bases: Constraint

Constrain observations to specific twilight phases or a user-defined solar altitude limit.

Parameters:

max_solar_altitude (Quantity) – A user-defined maximum solar altitude threshold. This parameter is required when not using specific twilight methods (twilight_civil, twilight_nautical, twilight_astronomical). It sets the maximum altitude of the Sun for which observations are allowed.

Notes

  • The pressure is set to zero when calculating the Sun’s altitude. This avoids errors due to atmospheric refraction at very low altitudes.

Examples

>>> from astropy.coordinates import EarthLocation, SkyCoord
>>> from astropy.time import Time
>>> from astropy import units as u
>>> from m4opt.constraints import AtNightConstraint
>>> time = Time("2017-08-17T00:41:04Z")
>>> target = SkyCoord.from_name("NGC 4993")
>>> location = EarthLocation.of_site("Rubin Observatory")
>>> constraint = AtNightConstraint.twilight_civil()
>>> constraint(observer_location=location, target_coord=target, obstime=time)
np.True_
>>> constraint = AtNightConstraint.twilight_nautical()
>>> constraint(observer_location=location, target_coord=target, obstime=time)
np.True_
>>> constraint = AtNightConstraint.twilight_astronomical()
>>> constraint(observer_location=location, target_coord=target, obstime=time)
np.True_

Methods Summary

__call__(observer_location, target_coord, ...)

Evaluate the constraint at a given observer location, target position, and time.

twilight_astronomical()

Create an AtNightConstraint for astronomical twilight (-18°).

twilight_civil()

Create an AtNightConstraint for civil twilight (-6°).

twilight_nautical()

Create an AtNightConstraint for nautical twilight (-12°).

Methods Documentation

__call__(observer_location, target_coord, obstime)[source] [edit on github]#

Evaluate the constraint at a given observer location, target position, and time.

classmethod twilight_astronomical()[source] [edit on github]#

Create an AtNightConstraint for astronomical twilight (-18°).

classmethod twilight_civil()[source] [edit on github]#

Create an AtNightConstraint for civil twilight (-6°).

classmethod twilight_nautical()[source] [edit on github]#

Create an AtNightConstraint for nautical twilight (-12°).