Package uk.ac.starlink.dpac.epoch

# Class EpochTransformation

java.lang.Object
uk.ac.starlink.dpac.epoch.EpochTransformation

public final class EpochTransformation extends Object
Propagates the 6-dimensional vector of barycentric astrometric parameters and the associated covariance matrix from one epoch to another assuming uniform space motion

Author:
  Alexey Butkevich (AGB) and Daniel Michalik (MIC), based on the algorithm developed by L. Lindegren. The algorithm is described in The Hipparcos and Tycho Catalogues (ESA SP-1200), Volume 1, Section 1.5.5, 'Epoch Transformation: Rigorous Treatment'.

## Method Summary

Modifier and Type
Method
Description
`static void`
`propagate(double tau, double[] a0, double[] a)`
Propagates the 6-dimensional vector of barycentric astrometric parameters WITHOUT the associated covariance matrix from epoch t0 to epoch t assuming uniform space motion.
`static void`
`propagate(double tau, double[] a0, double[][] c0, double[] a, double[][] c)`
Propagates the 6-dimensional vector of barycentric astrometric parameters and the associated covariance matrix from epoch t0 to epoch t assuming uniform space motion.
`static void`
`propagate(double tau, double[] a0, double[][] c0, double[] a, double[][] c, boolean covInvertedToNormals)`
Propagates the 6-dimensional vector of barycentric astrometric parameters and the associated covariance or normal matrix from epoch t0 to epoch t assuming uniform space motion.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Method Details

### propagate

public static void propagate(double tau, double[] a0, double[] a)
Propagates the 6-dimensional vector of barycentric astrometric parameters WITHOUT the associated covariance matrix from epoch t0 to epoch t assuming uniform space motion. All values are given in rad (/timeunit). The time unit can be chosen arbitrarily, however needs to be consistent regarding tau and the time dependent values in astrometric parameters.

Parameters:
  `tau` - epoch difference
  `a0` - original source parameters in rad(/timeunit) in order:
  - alpha, right ascension at t0 [rad]
  - delta, declination at t0 [rad]
  - varPi, parallax at t0 [rad]
  - muAlphaStar, proper motion in R.A., mult by cos(Dec), at t0 [rad/timeunit]
  - muDelta, proper motion in Dec at t0 [rad/timeunit]
  - mu_R, normalised radial velocity at t0 [rad/timeunit]

  The normalised radial velocity at epoch t0 is given by vr0*varPi/4.740470446 where vr0 is the barycentric radial velocity in [km/s] at epoch t0; similarly, the propagated radial velocity is given as vr*varPi/4.740470446 at epoch t.

  `a` - propagated source parameters, order and units same as a0

### propagate

public static void propagate(double tau, double[] a0, double[][] c0, double[] a, double[][] c)
Propagates the 6-dimensional vector of barycentric astrometric parameters and the associated covariance matrix from epoch t0 to epoch t assuming uniform space motion. All values are given in rad (/timeunit) and rad(/timeunit) * rad(/timeunit) for the six astrometric parameters and the source covariance elements, respectively. The time unit can be chosen arbitrarily, however needs to be consistent regarding tau and the time dependent values in the astrometric parameters and the covariance matrix.

Parameters:
  `tau` - epoch difference in arbitrary timeunit
  `a0` - original source parameters in rad(/timeunit) in order:
  - alpha, right ascension at t0 [rad]
  - delta, declination at t0 [rad]
  - varPi, parallax at t0 [rad]
  - muAlphaStar, proper motion in R.A., mult by cos(Dec), at t0 [rad/timeunit]
  - muDelta, proper motion in Dec at t0 [rad/timeunit]
  - mu_R, normalised radial velocity at t0 [rad/timeunit]

  The normalised radial velocity at epoch t0 is given by vr0*varPi/4.740470446 where vr0 is the barycentric radial velocity in [km/s] at epoch t0; similarly, the propagated radial velocity is given as vr*varPi/4.740470446 at epoch t.

  `c0` - original 6x6 covariance matrix in rad(/timeunit) * rad(/timeunit) defining the variance-covariance of the six astrometric parameters in their order defined as for array a0.
  `a` - propagated source parameters, order and units as a0
  `c` - propagated covariance matrix, order and units as c0

### propagate

public static void propagate(double tau, double[] a0, double[][] c0, double[] a, double[][] c, boolean covInvertedToNormals)
Propagates the 6-dimensional vector of barycentric astrometric parameters and the associated covariance or normal matrix from epoch t0 to epoch t assuming uniform space motion. All values are given in rad (/timeunit) and rad(/timeunit) * rad(/timeunit) for the six astrometric parameters and the source covariance elements, respectively. If Normals are supplied, the units are 1/unit stated. The time unit can be chosen arbitrarily, however needs to be consistent regarding tau and the time dependent values in the astrometric parameters and the covariance matrix.

Parameters:
  `tau` - epoch difference in arbitrary timeunit
  `a0` - original source parameters in rad(/timeunit) in order:
  - alpha, right ascension at t0 [rad]
  - delta, declination at t0 [rad]
  - varPi, parallax at t0 [rad]
  - muAlphaStar, proper motion in R.A., mult by cos(Dec), at t0 [rad/timeunit]
  - muDelta, proper motion in Dec at t0 [rad/timeunit]
  - mu_R, normalised radial velocity at t0 [rad/timeunit]

  The normalised radial velocity at epoch t0 is given by vr0*varPi/4.740470446 where vr0 is the barycentric radial velocity in [km/s] at epoch t0; similarly, the propagated radial velocity is given as vr*varPi/4.740470446 at epoch t.

  `c0` - original 6x6 covariance matrix in rad(/timeunit) * rad(/timeunit) defining the variance-covariance of the six astrometric parameters in their order defined as for array a0.
  `a` - propagated source parameters, order and units as a0
  `c` - propagated covariance matrix, order and units as c0
  `covInvertedToNormals` - if true then c0 and c are normal matrices rather than covariances and will be handled accordingly