For $29.95 you get Astronomical Algorithms the indispensable book for everybody who enjoys computational astronomy.
Github.com/soniakeys/meeus package meeus import 'github.com/soniakeys/meeus' Meeus implements algorithms from the book 'Astronomical Algorithms' by Jean Meeus. It follows the second edition, copyright 1998, with corrections as of August 10, 2009. It requires Go 1.1 or later. Library Goals Jean Meeus's book has long been respected as a broad-reaching source of astronomical algorithms, and many code libraries have been based on it. This library will be distinct in several respects, I hope. First of all it is in the Go language, a programming language new enough that it well postdates the book itself. Painted skin movie. Go has many advantages for a large and diverse library such as this and it is a fine language for for scientific computations.
I hope that a Go implementation will prove relevant for some time in the future. Next, this library attempts fairly comprehensive coverage of the book. Each chapter of the book is addressed, and in the very few cases where there seems no code from the chapter that is applicable in Go, similar and more appropriate techniques are at least discussed in documentation. If meaningful, examples are given as well. While this library attempts fairly comprehensive coverage of the book, it does not attempt to present a complete, well rounded, and polished astronomy library. Such a production-quality astronomy library would likely include some updated routines and data, routines and data from other sources, and would fill in various holes of functionality which Meeus elects to gloss over. Such a library could certainly be derived from this one, but it is beyond the scope of what is attempted here.
Thus, this library should represent a solid foundation for the development of a broad range of astronomy software. Much software should be able to use this library directly. Some software will need routines from additional sources. When the API of this library begins to present friction with that of other code, it may be time to fork or otherwise derive a new library from this one. Please feel free to do this, respecting of course the MIT license under which this software is offered. Package Contents By Go convention, each package is in its own subdirectory. The 'subdirectories' list of this documentation page lists all packages of of the library.
Each package also corresponds to exacly one chapter of the book. The package documentation heading references the chapter number and a cross reference is given below of chapter numbers and package names. Within a chapter of the book, Meeus presents explanatory text, numbered formulas, numbered examples, and other exercises. Within a package of this library, there are library functions and other codified definitions; there are Go examples which appear in documentation and which are also evaluated and verified to produce correct output by the go test feature; and there is test code which is neither part of the API nor the documentation but which verified by the go test feature. The 'API', or choice of functions to implement in Go, covers many of Meeus's numbered formulas and covers the algorithms needed to work most of the numbered examples.
The correspondence is not one-to-one, but often 'refactored' into functions that seem more idiomatic to Go. This is set as the limit of the API however, and thus the limit of the functionality offered by this library.
Each numbered example in the book is also translated to a Go example function. This typically shows how to use the implemented API to compute the results of the example.
As the go test feature validates these results, the examples also serve as baseline tests of the correctness of the API code. Relevant 'exercises' from the book are also often implemented as Go examples. A few packages remain incomplete. A package is considered complete if it implements all major formulas and algorithms and if it implements all numbered examples. For incomplete packages, the package documentation will describe the ways in which it is incomplete and typically give reasons for the incompleteness. In addition to the chapter packages, there is a package called 'base'.
This contains a few definitions that are provided by Meeus but are of such general use that they really don't belong with any one chapter. The much greater bulk of base however, are functions which Meeus does not explicitly provide, but again are of general use. The nature of these functions is as helper subroutines or IO subroutines.
The functions do not offer additional astronomy algorithms beyond those provided by Meeus. Identifiers To more closely follow the book's use of Greek letters and other symbols, Unicode is freely used in the source code. Recognizing that these symbols are awkard to enter in many environments however, they are avoided for exported symbols that comprise the library API. The function Coord.EclToEq for example, returns (α, δ float64) but of course you can assign these return values to whatever variables you like. The struct Coord.Equatorial on the other hand, has exported fields RA and Dec. ASCII is used in this case to simplify using these symbols in your code. Some identifiers use the prime symbol (ʹ).
That's Unicode U+02B9, not the ASCII '. Go uses ASCII ' for raw strings and does not allow it in identifiers.
U+02B9 on the other hand is Unicode category Lm, and is perfectly valid in Go identifiers. Unit types An earler version of this library used the Go type float64 for most parameters and return values.
This allowed terse, efficient code but required careful attention to the scaling or units used. Go defined types are now used for Time, RA, HourAngle, and general Angle quantities in the interest of making units and coversions more clear. These types are defined in the external package. Sexagesimal formatting An earlier version of this library included routines for formatting sexagesimal quantities.
These have been moved to the external package and use of this package is now restricted to examples and tests. Meeus packages and the sexagesimal package both depend on the unit package.
Meeus packages do not depend on sexagesimal, although the Meeus tests do. Chapter Cross-reference. Chapter Package 1. Hints and Tips hints 2. About Accuracy accuracy 3. Interpolation interp 4. Curve Fitting fit 5.
Iteration iterate 6. Sorting Numbers sort 7. Julian Day julian 8. Date of Easter easter 9. Jewish and Moslem Calendars jm 10. Dynamical Time and Universal Time deltat 11.
The Earth's Globe globe 12. Sidereal Time at Greenwich sidereal 13.
Transformation of Coordinates coord 14. The Parallactic Angle, and three other Topics parallactic 15. Rising, Transit, and Setting rise 16.
Atmospheric Refraction refraction 17. Angular Separation angle 18.
Planetary Conjunctions conjunction 19. Bodies in Straight Line line 20.
Smallest Circle containing three Celestial Bodies circle 21. Precession precess 22. Nutation and the Obliquity of the Ecliptic nutation 23. Apparent Place of a Star apparent 24. Reduction of Ecliptical Elements from one Equinox elementequinox to another one 25.
Solar Coordinates solar 26. Rectangular Coordinates of the Sun solarxyz 27. Equinoxes and Solstices solstice 28. Equation of Time eqtime 29. Ephemeris for Physical Observations of the Sun solardisk 30.
Equation of Kepler kepler 31. Elements of Planetary Orbits planetelements 32. Positions of the Planets planetposition 33. Elliptic Motion elliptic 34. Parabolic Motion parabolic 35. Near-parabolic Motion nearparabolic 36.
The Calculation of some Planetary Phenomena planetary 37. Pluto pluto 38.
Planets in Perihelion and in Aphelion perihelion 39. Passages through the Nodes node 40. Correction for Parallax parallax 41. Illuminated Fraction of the Disk and Magnitude illum of a Planet 42. Ephemeris for Physical Observations of Mars mars 43. Ephemeris for Physical Observations of Jupiter jupiter 44. Positions of the Satellites of Jupiter jupitermoons 45.
The Ring of Saturn saturnring 46. Positions of the Satellites of Saturn saturnmoons 47. Position of the Moon moonposition 48. Illuminated Fraction of the Moon's Disk moonillum 49. Phases of the Moon moonphase 50.
Astronomical Algorithms Code
Perigee and apogee of the Moon apsis 51. Passages of the Moon through the Nodes moonnode 52. Maximum declinations of the Moon moonmaxdec 53.
Ephemeris for Physical Observations of the Moon moon 54. Eclipses eclipse 55. Semidiameters of the Sun, Moon, and Planets semidiameter 56. Stellar Magnitudes stellar 57. Binary Stars binary 58. Calculation of a Planar Sundial sundial Index Directories Path Synopsis Accuracy: Chapter 2, About accuracy.
Angle: Chapter 17: Angular Separation. Apparent: Chapter 23, Apparent Place of a Star Apsis: Chapter 50, Perigee and apogee of the Moon Base: Functions and other definitions useful with multiple packages. Binary: Chapter 57, Binary Stars Circle: Chapter 20, Smallest Circle containing three Celestial Bodies. Conjunction: Chapter 18: Planetary Conjunctions. Coord: Chapter 13, Transformation of Coordinates.
DeltaT: Chapter 10, Dynamical Time and Universal Time. Easter: Chapter 8, Date of Easter Eclipse: Chapter 54, Eclipses. Elementequinox: Chapter 24, Reduction of Ecliptical Elements from one Equinox to another one. Elliptic: Chapter 33, Elliptic Motion.
Eqtime: Chapter 28, Equation of time. Fit: Chapter 4, Curve Fitting. Globe: Chapter 11, The Earth's Globe. Hints: Chapter 1, Hints and Tips. Illum: Chapter 41, Illuminated Fraction of the Disk and Magnitude of a Planet. Interp: Chapter 3, Interpolation. Iterate: Chapter 5, Iteration.
JM: Chapter 9, Jewish and Moslem Calendars. Julian: Chapter 7, Julian day. Jupiter: Chapter 43, Ephemeris for Physical Observations of Jupiter. Jupitermoons: Chapter 44, Positions of the Satellites of Jupiter. Kepler: Chapter 30, Equation of Kepler. Line: Chapter 19, Bodies in Straight Line Mars: Chapter 42, Ephemeris for Physical Observations of Mars.
Moon: Chapter 53, Ephemeris for Physical Observations of the Moon. Moonillum: Chapter 48, Illuminated Fraction of the Moon's Disk Moonmaxdec: Chapter 52, Maximum Declinations of the Moon Moonnode: Chapter 51, Passages of the Moon through the Nodes. Moonphase: Chapter 49, Phases of the Moon Moonposition: Chapter 47, Position of the Moon. Nearparabolic: Chapter 35, Near-parabolic Motion.
Node: Chapter 39, Passages through the Nodes. Nutation: Chapter 22, Nutation and the Obliquity of the Ecliptic. Parabolic: Chapter 34, Parabolic Motion. Parallactic: Chapter 14, The Parallactic Angle, and three other Topics. Parallax: Chapter 40, Correction for Parallax.
Perihelion: Chapter 38, Planets in Perihelion and Aphelion. Planetary: Chapter 36, The Calculation of some Planetary Phenomena. Planetelements: Chapter 31, Elements of Planetary Orbits. Planetposition: Chapter 32, Positions of the Planets.
Pluto: Chapter 37, Pluto. Precession: Chapter 21, Precession. Refraction: Chapter 16: Atmospheric Refraction.
Rise: Chapter 15, Rising, Transit, and Setting. Saturnmoons: Chapter 46, Positions of the Satellites of Saturn Saturnrings: Chapter 45, The Ring of Saturn Semidiameter: Chapter 55, Semidiameters of the Sun, Moon, and Planets. Sidereal: Chapter 12, Sidereal Time at Greenwich. Solar: Chapter 25, Solar Coordinates. Solardisk: Chapter 29, Ephemeris for Physical Observations of the Sun.
Solarxyz: Chapter 26, Rectangular Coordinates of the Sun. Solstice: Chapter 27: Equinoxes and Solstices. Sort: Chapter 6, Sorting Numbers. Stellar: Chapter 56, Stellar Magnitudes. Sundial: Chapter 58, Calculation of a Planar Sundial.
By Jean Meeus, 6.00' by 9.00', 400 hardbound, $29.95. See also:, and. From The Foreword Welcome, once again, to the crossroads where astronomy, mathematics, and arcane knowledge meet. In this third volume of his Morsels series, Belgian astronomer Jean Meeus deals masterfully with a host of new questions about eclipses and planetary conjunctions things that anyone from a curious child to a serious skywatcher might wonder about. The skys rhythms are not strictly repetitive, as he proves time and again by finding entertaining quirks in the motions of the Moon and planets. In his Preface the author hints that some readers might accuse him of practicing old astronomy. Dont let that fool you.
The problems he tackles would have fascinated astronomers of the early 20th and prior centuries, but those poor souls faced a brick wall of computational difficulty. They had to work out all their answers laboriously, with a pencil and paper. Freed from that limitation, the author uses todays computers to address each topic with a rigor and finesse beyond the wildest dreams of any old-time practitioner.
After winning worldwide acclaim for his trailblazing Astronomical Formulae for Calculators (Willmann-Bell, 1982) and Astronomical Algorithms (1991), he has harnessed the powerful techniques presented in these works, along with other methods from his repertoire, for the novel applications covered here. For some really long-term studies he has collaborated with Aldo Vitagliano (University of Naples), the creator of Solex, a remarkable program for solar-system motions that can be freely downloaded from the Internet. Im struck by the fact that we now live in long gaps between certain types of celestial occurrences, making it appear that they never occur. But thats a mistake. For example, there is probably no one alive today who remembers seeing the planet Venus go south of the bright star Antares in 1914 or 1922, and we learn in Chapter 37 that Venus wont repeat this performance until 2109.
Similarly, Jupiter hasnt occulted Saturn (as seen from Earth) since before the pyramids of Egypt were built; the next time will be in A.D. 7541, and it does so twice in that year! As if to make up for these long waits, current generations of skywatchers are being specially treated to transits of Venus, rare though they are.
Astronomical Algorithms Pdf
Such transits have a nice way of coming in pairs, as in 2004 and 2012. But that will end about 1,800 years from now, after which a person will get exactly one chance in a lifetime to see a Venus transit unless, by then, the human life expectancy exceeds 105 to 138 years. Make no mistake, many of the intricate calculations described in this book were beyond our grasp just a few years ago. Or maybe someone attempted them and gave the wrong answers, with no one being the wiser. The French public adored Camille Flammarion, a charismatic champion of astronomy in the late 19th and early 20th centuries.
The erroneous value he promulgated for the longest possible total solar eclipse still turns up occasionally today, as we find out in Chapter 10. Many surprises lurk in these pages. As schoolchildren we learned that a solar eclipse can occur only at a New Moon, and a lunar eclipse at a Full Moon. It is also true (as more advanced courses teach) that an extreme apogee or perigee of the Moon can happen only near one of these same two phases. So its intriguing to discover in the books first chapter that an extreme apogee or perigee can never coincide with an eclipse. Did you know that the shape of a solar eclipse track depends on the calendar month in which it occurs, and that in the arctic regions there can be an eclipse of the midnight Sun? Moreover, our star can indeed come to a halt in the daytime sky, as if obeying Joshuas biblical command, Sun, stand thou still. It does so routinely, twice each day, as viewed from the surface of the planet Mercury!
When three planets form a nearly perfect line in space, who but an Albert Einstein (or a Jean Meeus) would have foreseen that the velocity of light plays a vital role in what is (or is not) seen by observers on the two end planets? Chapter 46 cites six actual dates when one observer would see an occultation by the middle planet, and the other a near miss, due to a difference in the travel time of light to each observer. Only a curmudgeon could say that investigations like these, having no obvious purpose, are not worth pursuing.
Lets be glad the great astronomer Joseph Louis Lagrange didnt have that attitude, back in 1772, when he first described how a tiny body (now called a Trojan asteroid) could permanently trail behind or lead the way for a major planet going around the Sun. Lagrange worked at a time when not a single asteroid of any type, let alone a Trojan, had been spotted in a telescope.
Meeus Astronomical Algorithms
Many hundreds of Trojans are known today, and we learn in Chapter 24 that the statistics of their orbits have certain peculiarities yet to be explained. Perhaps this purely recreational book will inspire a budding theoretician to make a future advance in celestial mechanics. As I write these lines, Sky & Telescope magazine has just reinstated (after 36 years) the monthly question-and-answer section that so delighted me as a teenage subscriber living in rural Virginia. Today, as then, the magazine receives all sorts of innocent queries about the planets and the sky that are easy to pose but very tricky to answer with authority. For help in preparing our answers we consult various experts, run software simulations, and check the papers published in obscure journals. But Ill let you in on a secret. On the bookshelf by my desk, right alongside its predecessors, Im adding Jean Meeuss latest Morsels as a prime editorial resource.
Sinnott Senior Editor, Sky & Telescope magazine Table of Contents.