Moon

class specsim.atmosphere.Moon(wavelength, moon_spectrum, extinction_coefficient, airmass, moon_zenith, separation_angle, moon_phase)[source] [edit on github]

Bases: object

Model of scattered moonlight.

Most of the work is performed by krisciunas_schaefer(), which implements the model of their 1991 paper. This class uses the predicted V-band surface brightness to normalize an input lunar spectrum (or solar spectrum if you assume the moon is grey).

The predicted surface_brightness is automatically updated to reflect changes in the following attributes: airmass, moon_zenith, moon_phase and separation_angle.

This implementation is loosely based on and tested against [IDL code] (https://desi.lbl.gov/svn/code/desimodel/tags/0.4.2/pro/lunarmodel.pro) from Connie Rockosi.

Parameters:
wavelengthastropy.units.Quantity

Array of wavelengths with units where data is tabulated.

moon_spectrumastropy.units.Quantity

Tabulated spectrum of scattered moonlight with units of flux density. The normalization does not matter since it will be fixed by get_lunar_surface_brightness(). A solar spectrum can be used, which effectively assumes that the moon’s reflectance is wavelength independent.

extinction_coefficientarray

Array of extinction coefficients tabulated on wavelength.

airmassfloat

Airmass of the observation.

moon_zenithastropy.units.Quantity

See krisciunas_schaefer().

separation_angleastropy.units.Quantity

See krisciunas_schaefer().

moon_phasefloat

See krisciunas_schaefer().

Attributes Summary

airmass

Airmass of observation used for lunar scattering model.

moon_phase

Phase of the moon.

moon_zenith

Moon zenith angle.

obs_zenith

Read-only value of the observing zenith angle.

scattered_V

V-band surface brightness of scattered moonlight.

separation_angle

Read-only value of the observation-moon separation angle.

surface_brightness

astropy.units.Quantity: Tabulated scattered moon surface brightness.

vband_extinction

Read-only value of the V-band extinction of the moon spectrum.

visible

bool: Read-only visibility of the moon.

Attributes Documentation

airmass

Airmass of observation used for lunar scattering model.

Changes to this value will update obs_zenith and surface_brightness.

This should normally be the same airmass that is used in the Atmosphere model to calculate source extinction, but this is not checked here.

moon_phase

Phase of the moon.

See krisciunas_schaefer(). Changes to this value will update surface_brightness.

moon_zenith

Moon zenith angle.

See krisciunas_schaefer(). Changes to this value will update surface_brightness and visible.

obs_zenith

Read-only value of the observing zenith angle.

This attribute is calculated from airmass by inverting Eqn.3 of Krisciunas & Schaefer 1991:

\[X = (1 - 0.96 \sin^2 Z)^{-0.5}\]
scattered_V

V-band surface brightness of scattered moonlight.

This is a read-only attribute whose value depends on the current values of airmass, moon_zenith, moon_phase and separation_angle. Returns None if the moon is below the horizon.

separation_angle

Read-only value of the observation-moon separation angle.

See krisciunas_schaefer(). Changes to this value will update surface_brightness.

surface_brightness

astropy.units.Quantity: Tabulated scattered moon surface brightness.

This is the only model attribute used for simulation. Its value depends on the current values of airmass, moon_zenith, moon_phase and separation_angle.

vband_extinction

Read-only value of the V-band extinction of the moon spectrum.

Calculated as V* - V where V is the Bessell-V magnitude of the input lunar spectrum and V* is calculated with airmass 1.0 extinction applied.

visible

bool: Read-only visibility of the moon.

The visibility criterion is moon_zenith < 90 degrees.