krisciunas_schaefer

specsim.atmosphere.krisciunas_schaefer(obs_zenith, moon_zenith, separation_angle, moon_phase, vband_extinction)[source] [edit on github]

Calculate the scattered moonlight surface brightness in V band.

Based on Krisciunas and Schaefer, “A model of the brightness of moonlight”, PASP, vol. 103, Sept. 1991, p. 1033-1039 (http://dx.doi.org/10.1086/132921). Equation numbers in the code comments refer to this paper.

The function plot_lunar_brightness() provides a convenient way to plot this model’s predictions as a function of observation pointing.

Units are required for the angular inputs and the result has units of surface brightness, for example:

>>> sb = krisciunas_schaefer(20*u.deg, 70*u.deg, 50*u.deg, 0.25, 0.15)
>>> print(np.round(sb, 3))
19.855 mag / arcsec2

The output is automatically broadcast over input arrays following the usual numpy rules.

This method has several caveats but the authors find agreement with data at the 8% - 23% level. See the paper for details.

Parameters:
obs_zenithastropy.units.Quantity

Zenith angle of the observation in angular units.

moon_zenithastropy.units.Quantity

Zenith angle of the moon in angular units.

separation_angleastropy.units.Quantity

Opening angle between the observation and moon in angular units.

moon_phasefloat

Phase of the moon from 0.0 (full) to 1.0 (new), which can be calculated as abs((d / D) - 1) where d is the time since the last new moon and D = 29.5 days is the period between new moons. The corresponding illumination fraction is 0.5*(1 + cos(pi * moon_phase)).

vband_extinctionfloat

V-band extinction coefficient to use.

Returns:
astropy.units.Quantity

Observed V-band surface brightness of scattered moonlight.