Vulcan
Aerospace Engineering Utilities Built on Janus
Loading...
Searching...
No Matches
vulcan::time::Epoch< Scalar > Class Template Reference

#include <Epoch.hpp>

Public Member Functions

 Epoch ()
 Default constructor (J2000.0 epoch).
 Epoch (const Scalar &tai_seconds, int delta_at=37)
 Construct from TAI seconds since J2000.0.
Scalar jd_tai () const
 Get Julian Date in TAI scale.
Scalar jd_tt () const
 Get Julian Date in TT scale.
Scalar jd_gps () const
 Get Julian Date in GPS scale.
Scalar jd_utc () const
 Get Julian Date in UTC scale (using stored delta_at).
Scalar jd_tdb () const
 Get Julian Date in TDB scale.
Scalar mjd_tt () const
 Get Modified Julian Date in TT scale.
const Scalar & tai_seconds () const
 Get TAI seconds since J2000.0.
Scalar tt_seconds () const
 Get TT seconds since J2000.0.
Scalar centuries_tt () const
 Get Julian centuries since J2000.0 in TT scale.
int gps_week () const
 Get GPS week number.
Scalar gps_seconds_of_week () const
 Get seconds within the GPS week.
int delta_at () const
 Get the stored TAI - UTC offset.
void set_delta_at (int delta_at)
 Set the TAI - UTC offset.
Epoch operator+ (const Scalar &seconds) const
 Add duration in seconds.
Epoch operator- (const Scalar &seconds) const
 Subtract duration in seconds.
Scalar operator- (const Epoch &other) const
 Time difference in seconds.
Epochoperator+= (const Scalar &seconds)
 Add duration in seconds (in-place).
Epochoperator-= (const Scalar &seconds)
 Subtract duration in seconds (in-place).
std::string to_iso_string () const
 Convert to ISO 8601 string in UTC.
std::tuple< int, int, int, int, int, double > to_utc_calendar () const
 Convert to calendar components in UTC.

Static Public Member Functions

static Epoch from_tai_seconds (const Scalar &tai_sec, int delta_at=37)
 Create Epoch from TAI seconds since J2000.0.
static Epoch from_jd_tai (const Scalar &jd_tai, int delta_at=37)
 Create Epoch from TAI Julian Date.
static Epoch from_jd_tt (const Scalar &jd_tt, int delta_at=37)
 Create Epoch from TT Julian Date.
static Epoch from_jd_gps (const Scalar &jd_gps, int delta_at=37)
 Create Epoch from GPS Julian Date.
static Epoch from_utc (int year, int month, int day, int hour=0, int min=0, double sec=0.0)
 Create Epoch from UTC calendar (numeric only).
static Epoch from_gps_week (int week, const Scalar &seconds_of_week, int delta_at=37)
 Create Epoch from GPS week and seconds.

Constructor & Destructor Documentation

◆ Epoch() [1/2]

template<typename Scalar>
vulcan::time::Epoch< Scalar >::Epoch ( )
inline

Default constructor (J2000.0 epoch).

Examples
/home/runner/work/vulcan/vulcan/include/vulcan/time/Epoch.hpp.

◆ Epoch() [2/2]

template<typename Scalar>
vulcan::time::Epoch< Scalar >::Epoch ( const Scalar & tai_seconds,
int delta_at = 37 )
inlineexplicit

Construct from TAI seconds since J2000.0.

Parameters
tai_secondsTAI seconds since J2000.0 TT
delta_atTAI - UTC offset for this epoch (default: 37 for post-2017)

Member Function Documentation

◆ centuries_tt()

template<typename Scalar>
Scalar vulcan::time::Epoch< Scalar >::centuries_tt ( ) const
inlinenodiscard

Get Julian centuries since J2000.0 in TT scale.

Commonly used for precession/nutation models.

Examples
/home/runner/work/vulcan/vulcan/include/vulcan/time/Epoch.hpp.

◆ delta_at()

template<typename Scalar>
int vulcan::time::Epoch< Scalar >::delta_at ( ) const
inlinenodiscard

Get the stored TAI - UTC offset.

Examples
/home/runner/work/vulcan/vulcan/include/vulcan/time/Epoch.hpp.

◆ from_gps_week()

template<typename Scalar>
Epoch vulcan::time::Epoch< Scalar >::from_gps_week ( int week,
const Scalar & seconds_of_week,
int delta_at = 37 )
inlinestatic

Create Epoch from GPS week and seconds.

Examples
/home/runner/work/vulcan/vulcan/include/vulcan/time/Epoch.hpp.

◆ from_jd_gps()

template<typename Scalar>
Epoch vulcan::time::Epoch< Scalar >::from_jd_gps ( const Scalar & jd_gps,
int delta_at = 37 )
inlinestatic

◆ from_jd_tai()

template<typename Scalar>
Epoch vulcan::time::Epoch< Scalar >::from_jd_tai ( const Scalar & jd_tai,
int delta_at = 37 )
inlinestatic

◆ from_jd_tt()

template<typename Scalar>
Epoch vulcan::time::Epoch< Scalar >::from_jd_tt ( const Scalar & jd_tt,
int delta_at = 37 )
inlinestatic

◆ from_tai_seconds()

template<typename Scalar>
Epoch vulcan::time::Epoch< Scalar >::from_tai_seconds ( const Scalar & tai_sec,
int delta_at = 37 )
inlinestatic

Create Epoch from TAI seconds since J2000.0.

Examples
/home/runner/work/vulcan/vulcan/include/vulcan/time/Epoch.hpp.

◆ from_utc()

template<typename Scalar>
Epoch vulcan::time::Epoch< Scalar >::from_utc ( int year,
int month,
int day,
int hour = 0,
int min = 0,
double sec = 0.0 )
inlinestatic

Create Epoch from UTC calendar (numeric only).

Note
This is numeric-only because calendar parsing is an I/O operation. For symbolic mode, create from numeric calendar then add symbolic duration.
Examples
/home/runner/work/vulcan/vulcan/include/vulcan/time/Epoch.hpp.

◆ gps_seconds_of_week()

template<typename Scalar>
Scalar vulcan::time::Epoch< Scalar >::gps_seconds_of_week ( ) const
inlinenodiscard

Get seconds within the GPS week.

Examples
/home/runner/work/vulcan/vulcan/include/vulcan/time/Epoch.hpp.

◆ gps_week()

template<typename Scalar>
int vulcan::time::Epoch< Scalar >::gps_week ( ) const
inlinenodiscard

◆ jd_gps()

template<typename Scalar>
Scalar vulcan::time::Epoch< Scalar >::jd_gps ( ) const
inlinenodiscard

Get Julian Date in GPS scale.

Examples
/home/runner/work/vulcan/vulcan/include/vulcan/time/Epoch.hpp.

◆ jd_tai()

template<typename Scalar>
Scalar vulcan::time::Epoch< Scalar >::jd_tai ( ) const
inlinenodiscard

Get Julian Date in TAI scale.

Examples
/home/runner/work/vulcan/vulcan/include/vulcan/time/Epoch.hpp.

◆ jd_tdb()

template<typename Scalar>
Scalar vulcan::time::Epoch< Scalar >::jd_tdb ( ) const
inlinenodiscard

Get Julian Date in TDB scale.

Examples
/home/runner/work/vulcan/vulcan/include/vulcan/time/Epoch.hpp.

◆ jd_tt()

template<typename Scalar>
Scalar vulcan::time::Epoch< Scalar >::jd_tt ( ) const
inlinenodiscard

◆ jd_utc()

template<typename Scalar>
Scalar vulcan::time::Epoch< Scalar >::jd_utc ( ) const
inlinenodiscard

Get Julian Date in UTC scale (using stored delta_at).

Examples
/home/runner/work/vulcan/vulcan/include/vulcan/time/Epoch.hpp.

◆ mjd_tt()

template<typename Scalar>
Scalar vulcan::time::Epoch< Scalar >::mjd_tt ( ) const
inlinenodiscard

Get Modified Julian Date in TT scale.

Examples
/home/runner/work/vulcan/vulcan/include/vulcan/time/Epoch.hpp.

◆ operator+()

template<typename Scalar>
Epoch vulcan::time::Epoch< Scalar >::operator+ ( const Scalar & seconds) const
inline

◆ operator+=()

template<typename Scalar>
Epoch & vulcan::time::Epoch< Scalar >::operator+= ( const Scalar & seconds)
inline

Add duration in seconds (in-place).

Examples
/home/runner/work/vulcan/vulcan/include/vulcan/time/Epoch.hpp.

◆ operator-() [1/2]

template<typename Scalar>
Scalar vulcan::time::Epoch< Scalar >::operator- ( const Epoch< Scalar > & other) const
inline

Time difference in seconds.

◆ operator-() [2/2]

template<typename Scalar>
Epoch vulcan::time::Epoch< Scalar >::operator- ( const Scalar & seconds) const
inline

Subtract duration in seconds.

Examples
/home/runner/work/vulcan/vulcan/include/vulcan/time/Epoch.hpp.

◆ operator-=()

template<typename Scalar>
Epoch & vulcan::time::Epoch< Scalar >::operator-= ( const Scalar & seconds)
inline

Subtract duration in seconds (in-place).

Examples
/home/runner/work/vulcan/vulcan/include/vulcan/time/Epoch.hpp.

◆ set_delta_at()

template<typename Scalar>
void vulcan::time::Epoch< Scalar >::set_delta_at ( int delta_at)
inline

◆ tai_seconds()

template<typename Scalar>
const Scalar & vulcan::time::Epoch< Scalar >::tai_seconds ( ) const
inlinenodiscard

Get TAI seconds since J2000.0.

Examples
/home/runner/work/vulcan/vulcan/include/vulcan/time/Epoch.hpp.

◆ to_iso_string()

template<typename Scalar>
std::string vulcan::time::Epoch< Scalar >::to_iso_string ( ) const
inlinenodiscard

Convert to ISO 8601 string in UTC.

Examples
/home/runner/work/vulcan/vulcan/include/vulcan/time/Epoch.hpp.

◆ to_utc_calendar()

template<typename Scalar>
std::tuple< int, int, int, int, int, double > vulcan::time::Epoch< Scalar >::to_utc_calendar ( ) const
inlinenodiscard

Convert to calendar components in UTC.

Examples
/home/runner/work/vulcan/vulcan/include/vulcan/time/Epoch.hpp.

◆ tt_seconds()

template<typename Scalar>
Scalar vulcan::time::Epoch< Scalar >::tt_seconds ( ) const
inlinenodiscard

Get TT seconds since J2000.0.

Examples
/home/runner/work/vulcan/vulcan/include/vulcan/time/Epoch.hpp.

The documentation for this class was generated from the following file: