Esempio n. 1
0
File: eqeqx.py Progetto: r-owen/RO
def eqeqx(tdb):
    """The equation of the equinoxes (IAU 1994).
    
    Inputs:
    - tdb (MJD): TDB (loosely ET) as a Modified Julian Date
    
    Returns eqeqx, where:
    Greenwich apparent sidereal time = Greenwich mean sidereal time + eqeqx

    Based on Pat Wallace's EQEQX, which in turn is based on:
    IAU Resolution C7, Recommendation 3 (1994)
    Capitaine, N. & Gontier, A.-M., Astron. Astrophys., 275, 645-650 (1993)
    
    History:
    Patrick Wallace   Starlink   21 November 1994
    2002-07-11 ROwen  Converted to Python
    """
    # TDB - J2000 in centuries
    t=(tdb-51544.5)/36525.0

    # Longitude of the mean ascending node of the lunar orbit on the
    # ecliptic, measured from the mean equinox of date
    om=RO.PhysConst.RadPerArcSec*(450160.280+(-5.0*_ArcSecPerRev-482890.539  \
        +(7.455+0.008*t)*t)*t)

    # Nutation
    dpsi, deps, eps0 = nutc(tdb)

    # Equation of the equinoxes
    return dpsi*math.cos(eps0)+RO.PhysConst.RadPerArcSec*(0.00264*math.sin(om)+  \
        0.000063*math.sin(om+om))
Esempio n. 2
0
def eqeqx(tdb):
    """The equation of the equinoxes (IAU 1994).
    
    Inputs:
    - tdb (MJD): TDB (loosely ET) as a Modified Julian Date
    
    Returns eqeqx, where:
    Greenwich apparent sidereal time = Greenwich mean sidereal time + eqeqx

    Based on Pat Wallace's EQEQX, which in turn is based on:
    IAU Resolution C7, Recommendation 3 (1994)
    Capitaine, N. & Gontier, A.-M., Astron. Astrophys., 275, 645-650 (1993)
    
    History:
    Patrick Wallace   Starlink   21 November 1994
    2002-07-11 ROwen  Converted to Python
    """
    # TDB - J2000 in centuries
    t = (tdb - 51544.5) / 36525.0

    # Longitude of the mean ascending node of the lunar orbit on the
    # ecliptic, measured from the mean equinox of date
    om=RO.PhysConst.RadPerArcSec*(450160.280+(-5.0*_ArcSecPerRev-482890.539  \
        +(7.455+0.008*t)*t)*t)

    # Nutation
    dpsi, deps, eps0 = nutc(tdb)

    # Equation of the equinoxes
    return dpsi*math.cos(eps0)+RO.PhysConst.RadPerArcSec*(0.00264*math.sin(om)+  \
        0.000063*math.sin(om+om))
Esempio n. 3
0
File: nut.py Progetto: r-owen/RO
def nut(tdb):
    """
    Form the matrix of nutation for a given TDB - IAU 1980 theory
    (double precision)
    
    References:
    Final report of the IAU Working Group on Nutation,
    chairman P.K.Seidelmann, 1980.
    Kaplan,G.H., 1981, USNO circular no. 163, pA3-6.
    
    Inputs:
    - TDB   TDB date (loosely et) as Modified Julian Date

    Returns the nutation matrix as a 3x3 numpy.array
    
    The matrix is in the sense  V(true)  =  rmatn * V(mean)
    """
    # Nutation components and mean obliquity
    dpsi, deps, eps0 = nutc(tdb)

    # Rotation matrix
    return euler((
        (0, eps0), (2, -dpsi), (0, -(eps0+deps))
    ))