Just wondering, does anyone know a good way to calculate latitude and longitude of the moon relative to the earth with PyEphem? I've kinda hit a wall trying to figure it out...

Thanks, Pete


Use equatorial coordinates given in Right Ascension for longitude and Declination for latitude as projected on celestial sphere. So you would do something along the lines of:

import ephem
m = ephem.Moon('2003/08/27', epoch=ephem.J2000)
print('%s %s' % (m.a_ra, m.a_dec))

This is explained in more detail in PyEphem Coordinate Transformations. Note that J2000 is already an assumed epoch and you can simply provide the time since epoch to replace '2003/08/27' in the example and omit the second parameter. Equatorial coordinate system is also already assumed when printing out RA/Dec. And if you want to transform RA/Lon and Dec/Lat to XYZ coordinates for a location on Earth's celestial sphere using Python, you'll continue with something like:

import math

x = math.cos(m.dec) * math.cos(m.ra)
y = math.cos(m.dec) * math.sin(m.ra)
z = math.sin(m.dec)

Refer to the second part of Brandon Rhodes' answer to Getting J2000 XYZ coordinates for a location on earth in Python for more info on the latter part.


Your Answer

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