I know about the equations to describe the orbit of a moon around a planet. I know the moon's semi-major axis and eccentricity, and the same for its host world with the star they orbit.

Is there any equation that tells me how much of the moon is illuminated at night, and possibly how bright, as seen from the planet?


The Moon phases can be defined by the phase angle between the Sun, Moon and Earth; for example, at 0°, the Moon is defined as full, and at 180° it is defined as new. If you want to know how bright the Moon is at a given angle, we would use the phase angle to find the apparent and absolute magnitudes of the Moon.

Absolute magnitude, when referring to illuminated objects (objects that do not produce their own visible light), simply means their apparent magnitude if viewed from 1 AU away. This means it is almost entirely dependent on the object's phase angle. Right now, you're asking about how bright the Moon would seem to a person on Earth, so we'll find the apparent magnitude. The formula to find an illuminated object's apparent magnitude (in the Solar System), if we know its absolute magnitude $H$, is:

$$m = H + 2.5 \log_{10}{\left(\frac{d_{BS}^2 d_{BO}^2}{p(\chi) d_0^4}\right)}\!\,$$

Where $d_0$ is 1 AU, $\chi$ is the phase angle (in radians) and $p(\chi)$ is the phase integral (integration of reflected light). $d_{BO}$ is the distance between the observer and the body, $d_{BS}$ is the distance between the Sun and the body, and $d_{OS}$ is the distance between the observer and the Sun. This formula probably looks pretty scary, but it can be simplified with some approximations. First, we can approximate the phase integral as this: $$p(\chi) = \frac{2}{3} \left( \left(1 - \frac{\chi}{\pi}\right) \cos{\chi} + \frac{1}{\pi} \sin{\chi} \right)$$ Where $\chi$ is the phase angle, in radians. In the Moon's case, we can set $H_{Moon} = +0.25$ (this is the absolute magnitude during a full moon), $d_{OS} = d_{BS} = 1$ AU and $d_{BO} = 0.00257$ AU. Now we get the formula:

$$m_{Moon} = 0.25 + 2.5 \log_{10}{\left(\frac{0.00257^2}{p(\chi)}\right)}$$

So now, we've got a formula that approximates the apparent magnitude of the Moon at any given phase angle. However, even though this gives a close approximation, it is not 100% accurate. Astronomers use empirically derived relationships to predict apparent magnitudes when accuracy is required.

Here's a quick script I wrote to calculate the apparent magnitude, given any phase angle: https://jsfiddle.net/fNPvf/33429/

|improve this answer|||||

Here's a practical approach - the algorithm and the equations are packaged as a software library.

Install PyEphem:


Run it:

$ python
Python 2.7.12 (default, Jun 29 2016, 14:05:02) 
[GCC 4.2.1 Compatible Apple LLVM 7.3.0 (clang-703.0.31)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import ephem
>>> moon = ephem.Moon(ephem.now())
>>> print moon.phase
>>> print(ephem.next_new_moon(ephem.now()))
2016/9/1 09:03:05
>>> print(ephem.next_full_moon(ephem.now()))
2016/9/16 19:05:05

'phase' is between 0 (new moon) and 100 (full moon).

More details:


|improve this answer|||||
  • $\begingroup$ Wow - I didn't realize PyEphem was so easy to use! Thanks for posting the script - I'll give it a test drive. $\endgroup$ – uhoh Aug 27 '16 at 4:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.