[AstroPy] calculating Hour Angle to obtain Parallactic angle

Orfeo Colebatch orfeo.colebatch at utoronto.ca
Tue Sep 10 14:14:25 EDT 2013

Hi All,

We have a alt/az sun tracker whose coding requires the calculation of the parallactic angle in order to do some coordinate transformations between the alt/az mount and a camera monitoring the image it produces.

I have found Ian's Astro Python code (http://www.mpia-hd.mpg.de/homes/ianc/python/_modules/spec.html#parangle) which works when i use it conjunction with the coordinates output by this site (http://www.jgiesen.de/astro/suncalc/) when the Hour Angle is converted to decimal hours.

I have tried to calculate the same hour angle using coordinates.angles.RA.hour_angle (among other codes) bu have not been able to reproduce that Hour Angle (HA) from the above site.

E.g for 21st June 2013, 13:00 UTC (9:00 GMT-4), 43.66 deg latitude, -79.4 W longitude I get a HA of -64.73 degreees  (or +295 degrees)

By doing the following in python with ephem and astropy i get the following

In [1]: import ephem

In [2]: from astropy import coordinates as coord

In [3]: from astropy.time import Time

In [4]: from astropy import units as u

In [5]: obs = ephem.Observer()

In [6]: from datetime import datetime as dt

In [7]: time = dt.strptime('2013/6/21' +' ' + '09:00:00', '%Y/%m/%d %H:%M:%S')

In [8]: obs.date = time

In [9]: obs.lon =-79.4

In [10]: obs.lat = 43.66

In [11]: obs.elevation = 174.0

In [12]: sun = ephem.Sun()

In [13]: sun.compute(obs)

In [14]: ra = sun.g_ra

In [15]: ra
Out[15]: 1.573768747713852

In [16]: coord.ICRSCoordinates(ra=ra, dec = sun.dec, unit=(u.radian, u.radian))
Out[16]: <ICRSCoordinates RA=90.17031 deg, Dec=23.43624 deg>

In [17]: c= coord.ICRSCoordinates(ra=ra, dec = sun.dec, unit=(u.radian, u.radian

In [18]: c
Out[18]: <ICRSCoordinates RA=90.17031 deg, Dec=23.43624 deg>

In [19]: c.ra
Out[19]: <RA 90.17031 deg>

In [20]: sun.ra
Out[20]: 1.573725506944724

In [21: c.ra * ephem.pi/180
Out[21]: <Angle 1.57377 deg>

In [22]: c.ra
Out[22]: <RA 90.17031 deg>

In [23]: coord.angles.RA.hour_angle(c.ra,t)
Out[23]: <Angle 277.95469 deg>

In [24]: t.lat = 43.66

In [25]: t.lon =-79.4

In [26]: coord.angles.RA.hour_angle(c.ra,t)
Out[26]: <Angle 277.95469 deg>

As you can see the angle is off by 20 degrees. I know this must be a unit problem, but i'm not sure what as of yet. If anyone has any idea's i'd be interested. Perhaps i should be calculating RA inside astropy? and not switching between ephem and astropy?

I do have access to this IDL code (http://idlastro.gsfc.nasa.gov/) and the code for the above sun web page( http://www.esrl.noaa.gov/gmd/grad/solcalc/calcdetails.html) but i would like to avoid coding that all up in python.

If anyone has any advise i'm all ears.

kind regards


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/astropy/attachments/20130910/f8754f16/attachment.html>

More information about the AstroPy mailing list