# Converting ecliptical to equatorial coordinates

When looking for a formula to convert polar ecliptic geocentric coordinates of an object to equatorial coordinates I find various sources that give these formulae (like Wikipedia):

Declination $δ = \arcsin(\cos ε \times \sin β + \sin ε \times \cos β \times \sin λ)$
Right ascension $α = \arctan((\cos ε \times \sin λ - \sin ε \times \tan β) / \cos λ)$

Where
β = ecliptic geocentric latitude
λ = ecliptic geocentric longitude
ε = obliquity of the ecliptic

But when applying these formulae I get results like in the following list where β = 0° and ε = 23.4°:

 λ       δ        α
0   0.0000   0.0000
45  16.3095  42.5443
90  23.4000  90.0000
135  16.3095 -42.5443
180   0.0000  -0.0000
225 -16.3095  42.5443
270 -23.4000  90.0000
315 -16.3095 -42.5443
360  -0.0000  -0.0000


The values for declination seem good, but right ascension values seem to lack some sort of adjustment to the quadrant of the full circle (just a guess). But nowhere did I find any mentioning of this. Can you help? Thanks.

• This is a standard problem with using an arctan function and the reason that a lot of programming languages have two functions the simple one like you appear to have used and a more complex one that takes two parameters for when you are dividing (before the arctan function) as in this case. Here is a video describing the issue (youtu.be/_JbkTK17MrY). May 26 '16 at 10:54
• You do know that inverse trigonometric functions return a value between -90 and +90 right? May 26 '16 at 10:55
• I was not aware of this. I am using JavaScript for the calculation and found this documentation: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… So I made an educated guess and tried α=atan2((cos ε∗sin λ−sin ε∗tan β), cos λ) and the results are promising. Just need to add 360° if the result is negative to get the expected values. Can you confirm I am correct? May 26 '16 at 15:03
• Yes, in many program languages atan2(x,y) gives the same result as atan(x/y), but in the correct quadrant. Jul 8 '16 at 19:33
• The rotation matrix formulation in that Wikipedia article leads to $\alpha = \mathrm{atan2}(\cos \beta \sin \lambda \cos \varepsilon - \sin \beta \sin \varepsilon, \cos \beta \cos \lambda)$, equivalent in most cases but avoiding an infinite term $\tan \beta$ at the ecliptic poles, costing one more trig function call. Aug 18 '16 at 20:39

## 1 Answer

Convert commments to community wiki

This is a standard problem with using an arctan function (inverse tan function returns a value between -90 and +90). A lot of programming languages have two functions the simple one like you appear to have used and a more complex one that takes two parameters for when you are dividing (before the arctan function) as in this case. (This is described in further detail at (http://youtu.be/_JbkTK17MrY)

In Java you can use α=atan2((cos ε∗sin λ−sin ε∗tan β), cos λ) you may need to add 360 if the angle returned is negative.

An alternative is α=atan2(cosβsinλcosε−sinβsinε,cosβcosλ). This is equivalent in most cases but avoids an infinite term tanβtan⁡β at the ecliptic poles, costing one more trig function call.