Welcome to the NavList Message Boards.


A Community Devoted to the Preservation and Practice of Celestial Navigation and Other Methods of Traditional Wayfinding

Compose Your Message

Add Images & Files
    Re: Celestial Navigation Data from USNO--alternative
    From: Frank Reed
    Date: 2019 Dec 1, 10:51 -0800

    Jim Rives, you wrote:
    " I was directed to http://www.usno.navy.mil/USNO/astronomical-applications/publications/circ-181 for updates to delta-T, which no longer works.  When did USNO shut down the almanac service?  Is there an alternative?"

    All web services and sites under "usno.navy.mil" were pulled about a month ago without explanation. These sites had suffered frequent, lengthy outages during the past couple of years and in recent months, especially, and I think it's likely that they had problematic security (which conceivably could not be repaired and is being re-built from the bottom up). This might make sense considering the disparity in security requirements for a low-security government agency (USNO, the US Naval Observatory) stuck under the umbrella of the US Navy's ".mil" Internet structure, which requires the highest security.

    When they shut down, a notice stated that the sites would be unavailable for six months. I would not be surprised if they're back more quickly. I also would not be surprised if they never come back at the original addresses and are instead offloaded to another low-security US government agency like NOAA or NASA. The whole idea of the "US Naval Observatory" is anachronistic, a quaint legacy of earlier centuries. Their astronomical operations could have been transferred to NASA decades ago.

    Assuming that MICA allows for manual entry of Delta-T, then you can get the values you need from prior entries in this thread. Quoting my own message from yesterday:

    Here's a list of Delta-T values (these are the ones used in my code):
    DeltaT(2010) = 66.1 
    DeltaT(2020) = 69.5 
    DeltaT(2030) = 73

    There is a subjective issue with Delta-T in celestial navigation and astronomical computing more generally. Many computation enthusiasts become obsessed with acquiring "accurate" Delta-T values. Values to the nearest second are plenty good enough for all purposes in celestial navigation, and even my values of 66.1 and 69.5 above are over-kill. High accuracy in Delta-T is un-necessary. Some also become obsessed with the "prediction" (or historical computation) of Delta-T by "polynomials" which are often said to be "from NASA". This is magical thinking. Historical datapoints are just approximate values; running a polynomial through them serves no purpose. Except for very general behavior (Delta-T is currently climbing, with long-term quadratic behavior), Delta-T has to be observed, and it happily defies prediction. Nothing in normal, manual celestial navigation, except highest-accuracy sights involving the Moon, requires a Delta-T value more accurate than the nearest ten seconds. So if MICA's current value for Delta-T is 78 seconds insteaad of 68 seconds, there's no harm except for the Moon (and even for the Moon, only for sights demanding the highest accuracy, like lunars!).

    Frank Reed

    Some tasty morsels for the computationally-obsessed. Why re-invent the wheel? Grab the open-source code for Stellarium. Open StelCore.hpp and dig around... 

    enum DeltaTAlgorithm
    WithoutCorrection,                  //!< Without correction, DeltaT is Zero. Like Stellarium versions before 0.12.
    Schoch,                             //!< Schoch (1931) algorithm for DeltaT
    Clemence,                           //!< Clemence (1948) algorithm for DeltaT
    IAU,                                //!< IAU (1952) algorithm for DeltaT (based on observations by Spencer Jones (1939))
    AstronomicalEphemeris,              //!< Astronomical Ephemeris (1960) algorithm for DeltaT
    TuckermanGoldstine,                 //!< Tuckerman (1962, 1964) & Goldstine (1973) algorithm for DeltaT
    MullerStephenson,                   //!< Muller & Stephenson (1975) algorithm for DeltaT
    Stephenson1978,                     //!< Stephenson (1978) algorithm for DeltaT
    SchmadelZech1979,                   //!< Schmadel & Zech (1979) algorithm for DeltaT
    MorrisonStephenson1982,             //!< Morrison & Stephenson (1982) algorithm for DeltaT (used by RedShift)
    StephensonMorrison1984,             //!< Stephenson & Morrison (1984) algorithm for DeltaT
    StephensonHoulden,                  //!< Stephenson & Houlden (1986) algorithm for DeltaT
    Espenak,                            //!< Espenak (1987, 1989) algorithm for DeltaT
    Borkowski,                          //!< Borkowski (1988) algorithm for DeltaT
    SchmadelZech1988,                   //!< Schmadel & Zech (1988) algorithm for DeltaT
    ChaprontTouze,                      //!< Chapront-Touzé & Chapront (1991) algorithm for DeltaT
    StephensonMorrison1995,             //!< Stephenson & Morrison (1995) algorithm for DeltaT
    Stephenson1997,                     //!< Stephenson (1997) algorithm for DeltaT
    ChaprontMeeus,                      //!< Chapront, Chapront-Touze & Francou (1997) & Meeus (1998) algorithm for DeltaT
    JPLHorizons,                        //!< JPL Horizons algorithm for DeltaT
    MeeusSimons,                        //!< Meeus & Simons (2000) algorithm for DeltaT
    MontenbruckPfleger,                 //!< Montenbruck & Pfleger (2000) algorithm for DeltaT
    ReingoldDershowitz,                 //!< Reingold & Dershowitz (2002, 2007) algorithm for DeltaT
    MorrisonStephenson2004,             //!< Morrison & Stephenson (2004, 2005) algorithm for DeltaT
    Reijs,                              //!< Reijs (2006) algorithm for DeltaT
    EspenakMeeus,                       //!< Espenak & Meeus (2006) algorithm for DeltaT (Recommended, default)
    EspenakMeeusZeroMoonAccel,          //!< Espenak & Meeus (2006) algorithm for DeltaT (but without additional Lunar acceleration. FOR TESTING ONLY, NONPUBLIC)
    Banjevic,                           //!< Banjevic (2006) algorithm for DeltaT
    IslamSadiqQureshi,                  //!< Islam, Sadiq & Qureshi (2008 + revisited 2013) algorithm for DeltaT (6 polynomials)
    KhalidSultanaZaidi,                 //!< M. Khalid, Mariam Sultana and Faheem Zaidi polynomial approximation of time period 1620-2013 (2014)
    StephensonMorrisonHohenkerk2016,    //!< Stephenson, Morrison, Hohenkerk (2016) RSPA paper provides spline fit to observations for -720..2016 and else parabolic fit.
    Custom                              //!< User defined coefficients for quadratic equation for DeltaT

    And that's some wacko stamp-collecting!

    //! Compute DeltaT estimation for a given date.
    //! DeltaT is the accumulated effect of earth's rotation slowly getting slower, mostly caused by tidal braking by the Moon.
    //! For accurate positioning of objects in the sky, we must compute earth-based clock-dependent things like earth rotation, hour angles etc.
    //! using plain UT, but all orbital motions or rotation of the other planets must be computed in TT, which is a regular time frame.
    //! Also satellites are computed in the UT frame because (1) they are short-lived and (2) must follow paths over earth ground.
    //! (Note that we make no further difference between TT and DT, those might differ by milliseconds at best but are regarded equivalent for our purpose.)
    //! @param JD the date and time expressed as a Julian Day
    //! @return DeltaT in seconds
    //! @note Thanks to Rob van Gent who created a collection from many formulas for calculation of DeltaT: http://www.staff.science.uu.nl/~gent0113/deltat/deltat.htm
    //! @note Use this only if needed, prefer calling getDeltaT() for access to the current value.
    //! @note Up to V0.15.1, if the requested year was outside validity range, we returned zero or some useless value.
    //!       Starting with V0.15.2 the value from the edge of the defined range is returned instead if not explicitly zero is given in the source.
    //!       Limits can be queried with getCurrentDeltaTAlgorithmValidRangeDescription()

    double computeDeltaT(const double JD);
    //! Get current DeltaT.
    double getDeltaT() const;

    Browse Files

    Drop Files


    What is NavList?

    Join NavList

    (please, no nicknames or handles)
    Do you want to receive all group messages by email?
    Yes No

    You can also join by posting. Your first on-topic post automatically makes you a member.

    Posting Code

    Enter the email address associated with your NavList messages. Your posting code will be emailed to you immediately.

    Email Settings

    Posting Code:

    Custom Index

    Start date: (yyyymm dd)
    End date: (yyyymm dd)

    Visit this site
    Visit this site
    Visit this site
    Visit this site
    Visit this site
    Visit this site