Example #1
0
def _obliquity_only_rotation_matrix(obl=erfa.obl80(EQUINOX_J2000.jd1, EQUINOX_J2000.jd2) * u.radian):
    # This code only accounts for the obliquity,
    # which can be passed explicitly.
    # The default value is the IAU 1980 value for J2000,
    # which is computed using obl80 from ERFA:
    #
    # obl = erfa.obl80(EQUINOX_J2000.jd1, EQUINOX_J2000.jd2) * u.radian
    return rotation_matrix(obl, "x")
Example #2
0
IAU 1976/1980/1982/1994, equinox based
======================================
''')

# IAU 1976 precession matrix, J2000.0 to date.
RP = erfa.pmat76(DJMJD0, TT)

# IAU 1980 nutation
DP80, DE80 = erfa.nut80(DJMJD0, TT)

# Add adjustments: frame bias, precession-rates, geophysical
DPSI = DP80 + DDP80
DEPS = DE80 + DDE80

# Mean obliquity
EPSA = erfa.obl80(DJMJD0, TT)

# Build the rotation matrix
RN = erfa.numat(EPSA, DPSI, DEPS)

# Combine the matrices: PN = N x P
RNPB = erfa.rxr(RN, RP)
print("NPB matrix, equinox based:")
pprint(RNPB)

# Equation of the equinoxes, including nutation correction
EE = erfa.eqeq94(DJMJD0, TT) + DDP80 * math.cos(EPSA)

# Greenwich apparent sidereal time (IAU 1982/1994).
GST = erfa.anp(erfa.gmst82(DJMJD0 + DATE, TUT) + EE)
print("GST = %.17f radians" % GST)
Example #3
0
IAU 1976/1980/1982/1994, equinox based
======================================
''')

# IAU 1976 precession matrix, J2000.0 to date.
RP = erfa.pmat76(DJMJD0, TT)

# IAU 1980 nutation
DP80, DE80 = erfa.nut80(DJMJD0, TT)

# Add adjustments: frame bias, precession-rates, geophysical
DPSI = DP80 + DDP80
DEPS = DE80 + DDE80

# Mean obliquity
EPSA = erfa.obl80(DJMJD0, TT)

# Build the rotation matrix
RN = erfa.numat(EPSA, DPSI, DEPS)

# Combine the matrices: PN = N x P
RNPB = erfa.rxr(RN, RP)
print("NPB matrix, equinox based:")
pprint(RNPB)

# Equation of the equinoxes, including nutation correction
EE = erfa.eqeq94(DJMJD0, TT) + DDP80 * math.cos(EPSA)

# Greenwich apparent sidereal time (IAU 1982/1994).
GST = erfa.anp(erfa.gmst82(DJMJD0+DATE, TUT) + EE)
print("GST = %.17f radians"%GST)