0
$\begingroup$

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.

$\endgroup$
  • 2
    $\begingroup$ 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). $\endgroup$ – James Screech May 26 '16 at 10:54
  • $\begingroup$ You do know that inverse trigonometric functions return a value between -90 and +90 right? $\endgroup$ – Rob Jeffries May 26 '16 at 10:55
  • $\begingroup$ 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? $\endgroup$ – atarax42 May 26 '16 at 15:03
  • $\begingroup$ Yes, in many program languages atan2(x,y) gives the same result as atan(x/y), but in the correct quadrant. $\endgroup$ – AstroFloyd Jul 8 '16 at 19:33
  • 2
    $\begingroup$ 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. $\endgroup$ – Mike G Aug 18 '16 at 20:39
1
$\begingroup$

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.

$\endgroup$

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.