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")
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)
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)