A Community Devoted to the Preservation and Practice of Celestial Navigation and Other Methods of Traditional Wayfinding
From: Frank Reed
Date: 2015 May 27, 11:22 -0700
Just a reminder, nautical almanac-equivalent data has been available on my web site since 2004 here: http://reednavigation.com/lunars/nadata_v5.html. Sample output in the attached image.
Most of these homebrew almanacs make the mistake of calculating the positions of the Sun, Moon, planets, and stars from long numerical algorithms. That is, they get the ecliptic longitude of the Moon, for example, from a series of a hundred or more cosine terms. But the future position of the Moon is already known from the JPL numerical integrations. Those tables of numerical integrations are, in fact, the basis of the values published in the official almanacs. And that's how any modern software should get the coordinates of the celestial bodies --by lookup in a table, not by long calculation. In my software, including the nautical almanac data generator above, the original JPL positions are used directly, though of course reduced in precision to a level appropriate for the maximum accuracy achievable with celestial navigation.
Any of these homebrew almanac data sources, including mine, could be counted as superfluous so long as the USNO almanac engine remains available online at http://aa.usno.navy.mil/data/docs/celnavtable.php. It's the gold standard. And this is actually a data source that can be used by other software. You can "script it" and use its data in your own software. Sometime within the past three years, they (USNO staff) changed the interface so that it's possible to "script" the almanac engine using the URL alone (for tech-savvy readers, it's a "post" versus "get" change). The URL interface is not documented, but you can figure out a great deal of it by experimentation. Here's an interesting example that displays Sun data only:
http://aa.usno.navy.mil/cgi-bin/aa_flamenav.pl?ID=NAVLIST&calc= [...] &qqo=sun&yy0=1&xx0= [...] (click/follow this link ...copy and paste won't work). The "normal" URL (the address in your browser) generated by the initial data entry page inserts the argument "qqo=all" and you'll notice that here I have manually replaced that by "qqo=sun" (I have also changed the user ID as per their request). Experiment and see what happens.
Conanicut Island USA