--- ## Functions --- ### BodyCode(name) Finds the Body enumeration value, given the name of a body. name: str The common English name of a supported celestial body. Body If `name` is a valid body name, returns the enumeration value associated with that body. Otherwise, returns `Body.Invalid`. >>> astronomy.BodyCode('Mars') <Body.Mars: 3> --- ### GeoMoon(time) Calculates the geocentric position of the Moon at a given time. Given a time of observation, calculates the Moon's position as a vector. The vector gives the location of the Moon's center relative to the Earth's center with x-, y-, and z-components measured in astronomical units. This algorithm is based on Nautical Almanac Office's *Improved Lunar Ephemeris* of 1954, which in turn derives from E. W. Brown's lunar theories from the early twentieth century. It is adapted from Turbo Pascal code from the book [Astronomy on the Personal Computer](https://www.springer.com/us/book/9783540672210) by Montenbruck and Pfleger. time : Time The date and time for which to calculate the Moon's position. Vector The Moon's position as a vector in J2000 Cartesian equatorial coordinates. --- ### unique(enumeration) Class decorator for enumerations ensuring unique member values.