NAME

Time::TCG::Realisation - realisation of Geocentric Coordinate Time

SYNOPSIS

use Time::TCG::Realisation;

$rln = Time::TCG::Realisation->new($tt_rln);
$tt_rln = $rln->tcg_tt_realisation;

$tcg_tai_instant = $rln->to_tcg_tai($tcg_k_instant);
$tcg_k_instant = $rln->from_tcg_tai($tcg_tai_instant);

$rln1_instant = $rln0->to_realisation($rln1, $rln0_instant);
$rln0_instant = $rln0->from_realisation($rln1, $rln1_instant);

DESCRIPTION

Geocentric Coordinate Time (TCG) is a platonic time scale, consisting of the time axis of a relativistic reference frame comoving with the Terran geocentre. It is not directly accessible for practical use. Instead, it must be realised by the use of atomic clocks and other equipment. A realisation is inevitably imperfect, only approximating the true TCG. Consequently there are many realisations, with differing degrees of accuracy and accessibility.

An object of this class represents a realisation of TCG. Because TCG has a precisely-defined relationship to Terrestrial Time (TT), anything that realises one of these scales implicitly also realises the other. Because of this every realisation of TCG is implemented using an underlying realisation of TT.

In this interface, instants on the TCG scale are represented as a scalar number of seconds since the TCG epoch, as described in Time::TCG. All such numbers are represented as Math::BigRat objects.

CONSTRUCTOR

Time::TCG::Realisation->new(TT_REALISATION)

Creates and returns a new TCG realisation object based on the provided TT realisation object. The TT realisation object must be of type Time::TT::Realisation.

METHODS

$rln->tcg_tt_realisation

Returns the TT realisation object underlying this TCG realisation.

$rln->to_tcg_tai(INSTANT)

Takes an instant expressed on the time scale represented by this object, and converts it to an instant on the TCG(TAI) scale. The input must be a Math::BigRat object, and the result is the same type.

$rln->from_tcg_tai(INSTANT)

Takes an instant expressed on the TCG(TAI) scale, and converts it to an instant on the time scale represented by this object. The input must be a Math::BigRat object, and the result is the same type.

$rln->to_realisation(REALISATION, INSTANT)

Takes an instant expressed on the time scale represented by this object, and converts it to an instant on the time scale represented by the REALISATION object (which must be another realisation of TCG). The input must be a Math::BigRat object, and the result is the same type.

$rln->from_realisation(REALISATION, INSTANT)

Takes an instant expressed on the time scale represented by the REALISATION object (which must be another realisation of TCG), and converts it to an instant on the time scale represented by this object. The input must be a Math::BigRat object, and the result is the same type.

SEE ALSO

Time::TCG, Time::TT::Realisation

AUTHOR

Andrew Main (Zefram) <zefram@fysh.org>

COPYRIGHT

Copyright (C) 2006, 2010, 2012 Andrew Main (Zefram) <zefram@fysh.org>

LICENSE

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.