diff options
Diffstat (limited to 'org/madore/ephem/Precession.java')
-rw-r--r-- | org/madore/ephem/Precession.java | 6 |
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; |