From 810e8ce5d6dd2f2abfa1f4cf95eedf37d8998cf3 Mon Sep 17 00:00:00 2001 From: Jürgen Knödlseder Date: Mon, 17 Jan 2022 23:24:29 +0100 Subject: [PATCH] Implement utc2tt() method at the level of the GTime class --- include/GEphemerides.hpp | 1 - include/GTime.hpp | 33 ++++++++++++++++++++++++++++++++- pyext/GEphemerides.i | 1 - pyext/GTime.i | 4 +++- src/obs/GEphemerides.cpp | 17 ----------------- src/obs/GPulsar.cpp | 2 +- 6 files changed, 36 insertions(+), 22 deletions(-) diff --git a/include/GEphemerides.hpp b/include/GEphemerides.hpp index f2164e6..3069a69 100644 --- a/include/GEphemerides.hpp +++ b/include/GEphemerides.hpp @@ -78,7 +78,6 @@ public: double* etut) const; double geo2ssb(const GTime& time, const GSkyDir& srcdir) const; - double utc2tt(const GTime& time) const; protected: // Protected methods diff --git a/include/GTime.hpp b/include/GTime.hpp index abde8a6..6c8b78e 100644 --- a/include/GTime.hpp +++ b/include/GTime.hpp @@ -1,7 +1,7 @@ /*************************************************************************** * GTime.hpp - Time class * * ----------------------------------------------------------------------- * - * copyright (C) 2010-2019 by Juergen Knoedlseder * + * copyright (C) 2010-2022 by Juergen Knoedlseder * * ----------------------------------------------------------------------- * * * * This program is free software: you can redistribute it and/or modify * @@ -30,6 +30,7 @@ /* __ Includes ___________________________________________________________ */ #include #include "GBase.hpp" +#include "GTools.hpp" #include "GTimeReference.hpp" /* __ Forward declarations _______________________________________________ */ @@ -99,6 +100,8 @@ public: double gast(void) const; double lmst(const double& geolon) const; double last(const double& geolon) const; + double leap_seconds(void) const; + double utc2tt(void) const; double convert(const GTimeReference& ref) const; void jd(const double& time); void jd(const double& time, const std::string& timesys); @@ -170,6 +173,34 @@ void GTime::secs(const double& seconds) /***********************************************************************//** + * @brief Return number of leap seconds for current time + * + * @return Number of leap seconds for current time (seconds). + ***************************************************************************/ +inline +double GTime::leap_seconds(void) const +{ + return (leap_seconds(this->mjd())); +} + + +/***********************************************************************//** + * @brief Return time difference between UTC and TT (seconds) + * + * @return Time difference between UTC and TT (seconds). + * + * Returns the time difference between UTC and TT. The time difference is + * a positive number and is given by the sum of 32.184 s and the number + * of leap seconds. + ***************************************************************************/ +inline +double GTime::utc2tt(void) const +{ + return (leap_seconds()+gammalib::tai2tt); +} + + +/***********************************************************************//** * @brief Signals if year is a leap year * * @param[in] year Year (four digits integer). diff --git a/pyext/GEphemerides.i b/pyext/GEphemerides.i index b928fa7..a6eab39 100644 --- a/pyext/GEphemerides.i +++ b/pyext/GEphemerides.i @@ -60,7 +60,6 @@ public: double* etut) const; double geo2ssb(const GTime& time, const GSkyDir& srcdir) const; - double utc2tt(const GTime& time) const; }; diff --git a/pyext/GTime.i b/pyext/GTime.i index bab3cd5..400f038 100644 --- a/pyext/GTime.i +++ b/pyext/GTime.i @@ -1,7 +1,7 @@ /*************************************************************************** * GTime.i - Time class * * ----------------------------------------------------------------------- * - * copyright (C) 2010-2019 by Juergen Knoedlseder * + * copyright (C) 2010-2022 by Juergen Knoedlseder * * ----------------------------------------------------------------------- * * * * This program is free software: you can redistribute it and/or modify * @@ -69,6 +69,8 @@ public: double gast(void) const; double lmst(const double& geolon) const; double last(const double& geolon) const; + double leap_seconds(void) const; + double utc2tt(void) const; double convert(const GTimeReference& ref) const; void jd(const double& time); void jd(const double& time, const std::string& timesys); diff --git a/src/obs/GEphemerides.cpp b/src/obs/GEphemerides.cpp index bba0a53..823991c 100644 --- a/src/obs/GEphemerides.cpp +++ b/src/obs/GEphemerides.cpp @@ -397,23 +397,6 @@ double GEphemerides::geo2ssb(const GTime& time, const GSkyDir& srcdir) const /***********************************************************************//** - * @brief Get time difference between UTC and TT (seconds) - * - * @param[in] time Time. - * @return Time difference in seconds. - * - * Returns the time difference between UTC and TT. The time difference is - * a positive number and is given by the sum of 32.184 s and the number - * of leap seconds. The number of leap seconds depends on the @p time. - ***************************************************************************/ -double GEphemerides::utc2tt(const GTime& time) const -{ - // Return UTC to TT term - return (time.secs("TT") - time.secs("UTC")); -} - - -/***********************************************************************//** * @brief Print Ephemerides * * @param[in] chatter Chattiness. diff --git a/src/obs/GPulsar.cpp b/src/obs/GPulsar.cpp index 2dc0f10..cabc95d 100644 --- a/src/obs/GPulsar.cpp +++ b/src/obs/GPulsar.cpp @@ -834,7 +834,7 @@ void GPulsar::load_psrtime(const GFilename& filename, const std::string& name) // COM-RP-DOL-DRG-065.Note that the phase is negative, see for // example Eq. (3) in Yan et al. (2017), ApJ, 845, 119 double geo2ssb = ephemerides.geo2ssb(toa, dir); - double utc2tt = ephemerides.utc2tt(toa); + double utc2tt = toa.utc2tt(); double dt = (t0geo - t0nom) * gammalib::sec_in_day + geo2ssb + utc2tt; const double c1 = 1.0/2.0; const double c2 = 1.0/6.0; -- libgit2 0.21.4