Tools to query ESO skymodel

class qmostetc.eso.SkyModel(wavelength=<Quantity [ 360., 1000.] nm>, binsize=<Quantity 0.1 nm>)

ESO Sky model query tool

This simple class can be used to query the ESO sky model from

https://www.eso.org/observing/etc/skycalc/skycalc.htm

The ESO sky model is a web application based on the Cerro Paranal Advanced Sky Model, which was developed in particular to be used in the ESO Exposure Time Calculators.

After the creation of a SkyModel object, the parameters may be adjusted by setting the properties documented below. The table can be retrieved with the method get_fits().

If the environment variable ESO_CACHE is set, its path is used to cache the ESO queries.

Parameters:
wavelengthastropy.units.Quantity

Wavelength range to query [nm]

binsizeastropy.units.Quantity

Size of wavelength bins [nm]. Linear binning is used.

Examples

Retrieve the standard sky data for a gray brightness (half moon), with airmass=1 (zenith):

>>> import astropy.units as u
>>> from astropy.table import Table
>>> from qmostetc.eso import SkyModel
>>> skymodel = SkyModel((350, 1000)*u.nm, 0.1*u.nm)
>>> skymodel.altitude = 90*u.deg
>>> skymodel.moonlight = True
>>> skymodel.moon_sun_sep = 90*u.deg
>>> skymodel.moon_target_sep = 45*u.deg
>>> skymodel.moon_altitude = 45*u.deg
>>> skymodel.starlight = True
>>> skymodel.zodiac = True
>>> skymodel.lines = True
>>> skymodel.airglow = True
>>> tbl = Table(skymodel.get_result())
>>> print(tbl['lam', 'flux', 'trans'])  
 lam            flux                trans
  nm   ph / (arcsec2 m2 s um)
------ ---------------------- ------------------
 350.0       366.448038622599 0.6009243971774372
 350.1     384.84294761300964 0.6012587267506433
   ...                    ...                ...
 999.9      542.5174221971154 0.9807591881785823
1000.0      542.3131359284246 0.9803135462218374
Length = 6501 rows
property wavelength

astropy.units.Quantity: Wavelength range [nm]

property binsize

float: Wavelength bin size

property airmass

float: Target airmass

Setting the airmass implicitly also sets the altitude

property altitude

astropy.units.Quantity: Target altitude [deg]

Setting the altitude implicitly also sets the airmass

property moon_sun_sep

astropy.units.Quantity: Moon-Sun separation [deg]

property moon_target_sep

astropy.units.Quantity: Moon-Target separation [deg]

property moon_altitude

astropy.units.Quantity: Moon altitude [deg]

property ecl_lat

astropy.units.Quantity: Ecliptic latitude of target [deg]

property ecl_lon

astropy.units.Quantity: Ecliptic longitude of target [deg]

get_fits()

Retrieve the resulting data file as a FITS HDU

get_result()

Retrieve the resulting data file as a QTable

Returns:
astropy.io.table.QTable

FITS table according to ESO specs for the sky model. Columns:

  • lam: Vacuum wavelength [nm]

  • flux: sky emission radiance flux [ph/(s m² µm arcsec²)]

  • dflux1: sky emission -1 σ flux uncertainty

  • dflux2: sky emission +1 σ flux uncertainty

  • trans: sky transmission

  • dtrans1: sky transmission -1 σ uncertainty

  • dtrans2: sky transmission +1 σ uncertainty

Individual emission columns:

  • flux_sml: scattered moonlight [ph/(s m² µm arcsec²)]

  • flux_ssl: scattered starlight [ph/(s m² µm arcsec²)]

  • flux_zl: zodiacal light [ph/(s m² µm arcsec²)]

  • flux_tie: telescope/instrument thermal emission [ph/(s m² µm arcsec²)]

  • flux_tme: molecular emission lower atmosphere [ph/(s m² µm arcsec²)]

  • flux_ael: airglow emission Lines [ph/(s m² µm arcsec²)]

  • flux_arc: airglow/residual emission [ph/(s m² µm arcsec²)]

Individual transmission columns:

  • trans_o3: ozone uv/optical absorption

  • trans_ma: molecular absorption

  • trans_rs: rayleigh scattering

  • trans_ms: mie scattering