summaryrefslogtreecommitdiffstats
path: root/org/madore/ephem/Precession.java
diff options
context:
space:
mode:
Diffstat (limited to 'org/madore/ephem/Precession.java')
-rw-r--r--org/madore/ephem/Precession.java6
1 files changed, 4 insertions, 2 deletions
diff --git a/org/madore/ephem/Precession.java b/org/madore/ephem/Precession.java
index af8a1dc..33453c5 100644
--- a/org/madore/ephem/Precession.java
+++ b/org/madore/ephem/Precession.java
@@ -3,6 +3,7 @@ package org.madore.ephem;
public final class Precession {
// The following angles are in arcseconds, argument is in Julian centuries since J2000.
+ // Source: IERS Conventions 2010, ยง5.6.4
public static final double epsilon0 = 84381.406;
public static Comput.Polynomial psi
= new Comput.Polynomial(0, 5038.481507, -1.0790069, -0.00114045, 0.000132851, -0.0000000951);
@@ -16,8 +17,9 @@ public final class Precession {
= new Comput.Polynomial(0.014506, 4612.156534, 1.3915817, -0.00000044, -0.000029956, -0.0000000368);
public static Frames.Rotation matrix(double t) {
- Frames.Rotation mat1 = Frames.Rotation.rotx(epsilon0*Comput.arcsecond);
- Frames.Rotation mat2 = Frames.Rotation.rotz(-psi.v(t)*Comput.arcsecond).apply(mat1);
+ // Transform J2000 ecliptic coordinates to mean equatorial coordinates of date.
+ // Frames.Rotation mat1 = Frames.Rotation.rotx(epsilon0*Comput.arcsecond);
+ Frames.Rotation mat2 = Frames.Rotation.rotz(-psi.v(t)*Comput.arcsecond);
Frames.Rotation mat3 = Frames.Rotation.rotx(-omega.v(t)*Comput.arcsecond).apply(mat2);
Frames.Rotation mat4 = Frames.Rotation.rotz(chi.v(t)*Comput.arcsecond).apply(mat3);
return mat4;