Swap precession matrix to transform *to* date

This commit is contained in:
Brandon Rhodes 2013-12-26 23:55:59 -05:00
parent 2164b6a3b6
commit 6878182963
3 changed files with 8 additions and 8 deletions

View File

@ -57,13 +57,13 @@ def compute_precession(jd_tdb):
# R3(chi_a) R1(-omega_a) R3(-psi_a) R1(epsilon_0).
rot3 = array(((cd * cb - sb * sd * cc,
-sd * cb - sb * cd * cc,
sb * sc),
(cd * sb * ca + sd * cc * cb * ca - sa * sd * sc,
cd * sb * ca + sd * cc * cb * ca - sa * sd * sc,
cd * sb * sa + sd * cc * cb * sa + ca * sd * sc),
(-sd * cb - sb * cd * cc,
-sd * sb * ca + cd * cc * cb * ca - sa * cd * sc,
-sc * cb * ca - sa * cc),
(cd * sb * sa + sd * cc * cb * sa + ca * sd * sc,
-sd * sb * sa + cd * cc * cb * sa + ca * cd * sc,
-sd * sb * sa + cd * cc * cb * sa + ca * cd * sc),
(sb * sc,
-sc * cb * ca - sa * cc,
-sc * cb * sa + cc * ca)))
return rot3

View File

@ -341,7 +341,7 @@ def test_nutation(jd):
def test_precession(jd_float_or_vector):
jd_tdb = jd_float_or_vector
xyz = [1.1, 1.2, 1.3]
u = c.precession(jd_tdb, xyz, T0)
u = c.precession(T0, xyz, jd_tdb)
matrix_or_matrices = precessionlib.compute_precession(jd_tdb)
v = einsum('ij...,j...->i...', matrix_or_matrices, array(xyz))
epsilon = 1e-15 # 15 digits of agreement

View File

@ -96,7 +96,7 @@ class JulianDate(object):
# Cache of several expensive functions of time.
if name == 'P':
self.P = P = compute_precession(self.tdb)
self.P = P = rollaxis(compute_precession(self.tdb), 1)
return P
if name == 'PT':