ZodiacalBackground

class m4opt.models.background.ZodiacalBackground[source] [edit on github]

Bases: object

Zodiacal light sky background: sunlight scattered by interplanetary dust.

This is the zodiacal light model that is described in the HST STIS Instrument Handbook [1]. The “high” zodiacal light spectrum is taken from Table 6.4 and the “average” and “low” spectra are scaled from it so that they have visual surface brightness of 22.1, 22.7, and 23.3 magnitudes per square arcsecond.

The dependence on sky position is taken from Table 16 of [2], which is a higher-resolution version of Table 6.2 from the HST STIS Instrument Handbook.

Warning

This model should only be used for observers near Earth — in Earth orbit, as Hubble is, or on the Earth, or even on the Moon or in cislunar space. It should NOT be used for observers in orbits around other planets, or in distant solar orbits, or at Earth-Sun Lagrange points.

References

[1]

Prichard, L., Welty, D. and Jones, A., et al. 2022 “STIS Instrument Handbook,” Version 21.0, (Baltimore: STScI)

[2]

Leinert, Ch., Bowyer, S., and Haikala, L. K., et al. 1998 “The 1997 reference of diffuse night sky brightness”, Astron. Astrophys. Suppl. Ser. 127, 1-99. https://doi.org/10.1051/aas:1998105

Examples

You can specify the zodiacal light background in several different ways. You can get a typical background for “low”, “average”, or “high” conditions.

>>> from astropy import units as u
>>> from m4opt.models.background import ZodiacalBackground
>>> background = ZodiacalBackground.low()
>>> background(3000 * u.angstrom).to(u.mag(u.AB / u.arcsec**2))
<Magnitude 26.16417045 mag(AB / arcsec2)>
>>> background = ZodiacalBackground.mid()
>>> background(3000 * u.angstrom).to(u.mag(u.AB / u.arcsec**2))
<Magnitude 25.56417045 mag(AB / arcsec2)>
>>> background = ZodiacalBackground.high()
>>> background(3000 * u.angstrom).to(u.mag(u.AB / u.arcsec**2))
<Magnitude 24.96417045 mag(AB / arcsec2)>

You can get the background for a target at a particular sky position, observed at a particular time.

>>> from astropy.coordinates import SkyCoord
>>> from astropy.time import Time
>>> coord = SkyCoord.from_name('NGC 4993')
>>> time = Time('2017-08-17T12:41:04.4')
>>> background = ZodiacalBackground.at(target_coord=coord, obstime=time)
>>> background(3000 * u.angstrom).to(u.mag(u.AB / u.arcsec**2))
<Magnitude 24.75100719 mag(AB / arcsec2)>

Lastly, you can leave the position and time free, to be specified at a later point.

>>> background = ZodiacalBackground()
>>> background(3000 * u.angstrom).to(u.mag(u.AB / u.arcsec**2))
Traceback (most recent call last):
  ...
ValueError: Unknown target. Please evaluate the model by providing the     position and observing time in a `with:` statement, like this:
    from m4opt.models import state
    with state.set_observing(target_coord=coord, obstime=time):
        ...  # evaluate model here
>>> from m4opt.models import state
>>> with state.set_observing(target_coord=coord, obstime=time):
...     background(3000 * u.angstrom).to(u.mag(u.AB / u.arcsec**2))
<Magnitude 24.75100719 mag(AB / arcsec2)>

(Source code, png, hires.png, pdf)

../_images/m4opt-models-background-ZodiacalBackground-1.png

Mid, low, and high zodiacal light spectra

(Source code, png, hires.png, pdf)

../_images/m4opt-models-background-ZodiacalBackground-2.png

Zodiacal light at 10000 Å observed at 2023-06-30T00:00:00

Methods Summary

at(target_coord, obstime)

Get the model for a fixed sky position and time.

high()

Zodiacal background for typical "high" background conditions.

low()

Zodiacal background for typical "low" background conditions.

mid()

Zodiacal background for "average" background conditions.

Methods Documentation

classmethod at(target_coord, obstime)[source] [edit on github]

Get the model for a fixed sky position and time.

Parameters:
target_coordastropy.coordinates.SkyCoord

The coordinates of the object under observation. If the coordinates do not specify a distance, then the object is assumed to be a fixed star at infinite distance for the purpose of calculating its helioecliptic position.

obstimeastropy.time.Time

The time of the observation.

static high()[source] [edit on github]

Zodiacal background for typical “high” background conditions.

classmethod low()[source] [edit on github]

Zodiacal background for typical “low” background conditions.

Following the conventions in the HST STIS manual, this is 1.2 mag / arcsec2 fainter than the “high” model at all frequencies.

classmethod mid()[source] [edit on github]

Zodiacal background for “average” background conditions.

Following the conventions in the HST STIS manual, this is 0.6 mag / arcsec2 fainter than the “high” model at all frequencies.