Get a table of Moon phase angle per day

Where can I get a table with the Moon phase angle for each day ?

It's available here for a given day, but I would have to input each day of a year to get a full table.

=== NEW EDIT : 2019-09-18 ===

Actually, I'm preparing a calendar of lunar phase with corresponding Moon photo for each day and for a whole year. For this, I downloaded a set of images here from Jay Tanner's website. The name of these images correspond to the phase degree, but when I associate these images with the data from JPL HORIZONS suggested by @Mike G, it doesn't match what I see in the Sky.

How can I associate a set of photo of Moon phases to each day of a given period of time (for instance, the current year) ?

JPL HORIZONS can do that. With settings like these:

Ephemeris Type : OBSERVER
Target Body : Moon [Luna] [301]
Observer Location : Geocentric [500]
Time Span : Start=2019-09-12, Stop=2019-09-19, Step=1 d
Table Settings : QUANTITIES=10,23,24

it returns results like these:

 Date__(UT)__HR:MN       Illu%    S-O-T /r    S-T-O
***************************************************
2019-Sep-12 00:00      95.688 155.9731 /T  23.9640
2019-Sep-13 00:00      98.620 166.4750 /T  13.4888
2019-Sep-14 00:00      99.814 175.0444 /T   4.9422
2019-Sep-15 00:00      99.231 169.9061 /L  10.0670
2019-Sep-16 00:00      96.874 159.5743 /L  20.3723
2019-Sep-17 00:00      92.791 148.7668 /L  31.1541
2019-Sep-18 00:00      87.074 137.7510 /L  42.1469
2019-Sep-19 00:00      79.858 126.5419 /L  53.3370


where Illu% is the illuminated fraction $$k$$, and S-T-O is the sun-target-observer phase angle $$i$$. These quantities are related by (Meeus 41.1) $$k = \frac{1 + \cos i}{2}$$

An observer location on the surface of the Earth instead of the geocenter gives slightly different results due to parallax.

Tanner's rendered images appear to be indexed by the difference between lunar and solar ecliptic longitude. The sun-observer-target elongation angle S-O-T is a close approximation in most cases. Where the /r column is /T for trailing, use that value directly. Where /r is /L for leading, subtract S-O-T from 360°.

A single cycle of Moon images cannot capture libration effects as the NASA SVS images do (see SpaceBread's answer), so Tanner's images look a little different from the actual Moon.

• @Mike G Awesome. I edited my answer in order to understand how to match these data to a set of images. Sep 18, 2019 at 3:43
• Actually, in this list of figures, which ones correspond to : New Moon, First Quarter, Full Moon, Last Quarter and New Moon ? That might help me solve my problem. Sep 18, 2019 at 7:40

NASAs Scientific Visualization Studio has a page showing the Moon Phase and Libration over the course of each year. On the same page you can find a link to the data table including, among other things, the phase of the moon for each hour of the year in UT. You can download the table as a TXT and JSON file.
In case you only want a daily list and are using Linux you could than do something like:

cat mooninfo_2019.txt | grep "00:00 UT"  > mooninfo_2019_daily.txt

• The question has changed a bit. Sep 18, 2019 at 6:11

I finally fixed my issue by still using Tanner's images (named from 0 to 360), and by getting the phases from the SunCalc library (which returns a number between 0 and 1). This way, I could easily associate images of a phase to a given date.

SunCalc Tanner Phase
0 0 New Moon
Waxing Crescent
0.25 90 First Quarter
Waxing Gibbous
0.5 180 Full Moon
Waning Gibbous
0.75 270 Last Quarter
Waning Crescent
1 360 New Moon

Javascript method:

getMoonImageName (year, month, day) {
var ill = SunCalc.getMoonIllumination(new Date(year, month-1, day))
return Math.round(ill['phase'] * 360).toString().padStart(3, "0") + ".png";
}