cds.astro
Class FK4

java.lang.Object
  extended by cds.astro.Astroframe
      extended by cds.astro.Equatorial
          extended by cds.astro.FK4
All Implemented Interfaces:
java.io.Serializable

public class FK4
extends Equatorial

The FK4 is an equatorial coordinate system (coordinate system linked to the Earth) based on its B1950 position. The units used for time specification is the Besselian Year. The conversion to/from FK5 (which coincides with ICRS) uses the algorithm published by Standish (1982A&A...115...20S)

See Also:
Serialized Form

Field Summary
protected static double[] A
          Matrix 6x1 to compute the e-term
protected static double[][] EM
          Table 2 of Standish (1982A&A...115...20S), rediscussed by Soma and Aoki (1990A&A...240..150S), and apparently slightly modified by the starlink group.
protected static double[][] EM1
          The 6x6 matrix to move from FK5 to FK4
protected  double[] ev_eq
           
protected  double[][] toBaseEquinox
           
 
Fields inherited from class cds.astro.Equatorial
equinox
 
Fields inherited from class cds.astro.Astroframe
base_epoch, ed_lat, ed_lon, epoch, hms, IAUframes, ICRSmatrix, name, precision
 
Constructor Summary
FK4()
          Instanciate an FK4 frame (at default B1950 equinox)
FK4(double equinox)
          Instanciate an FK4 frame
FK4(double equinox, double epoch)
          Instanciate an FK4 frame
 
Method Summary
static void estimateFK4motion(double[] u6)
          Estimate the proper motions in the FK4 system, assuming a zero proper motion in the FK5.
static double[] eterm(double y)
          Compute the e-term (change due to the ellipticity of Earth orbit).
static void fromFK5(Coo coo)
          Compute FK4 position from FK5, assuming no proper motion in FK5 and an observation in B1950.
static void fromFK5(double[] u6)
          Convert the position from standard J2000 FK5 to standard B1950 FK4 system with Standish's algorithm.
 void fromICRS(Coo coo)
          Convert the position from the ICRS frame.
 void fromICRS(double[] u6)
          Convert the position from the ICRS frame to FK4.
static double[][] precessionMatrix(double eq0, double eq1)
          Precession matrix from equinox t0 to t1 (Besselian Years)
static void toFK5(Coo coo)
          Convert the position to FK5 system -- assumed to be ICRS.
static void toFK5(double[] u6)
          Convert the position from standard B1950 FK4 to standard J2000 FK5 system with Standish's algorithm.
 void toICRS(Coo coo)
          Convert the position to its ICRS equivalent.
 void toICRS(double[] u6)
          Convert the position to its ICRS equivalent.
 double[][] toICRSmatrix()
          Get the conversion to ICRS matrix
 
Methods inherited from class cds.astro.Equatorial
toString
 
Methods inherited from class cds.astro.Astroframe
create, create, equals, equals, isIAU, parse, setFrameEpoch, setICRSmatrix, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

toBaseEquinox

protected double[][] toBaseEquinox

ev_eq

protected double[] ev_eq

A

protected static double[] A
Matrix 6x1 to compute the e-term


EM

protected static double[][] EM
Table 2 of Standish (1982A&A...115...20S), rediscussed by Soma and Aoki (1990A&A...240..150S), and apparently slightly modified by the starlink group.


EM1

protected static double[][] EM1
The 6x6 matrix to move from FK5 to FK4

Constructor Detail

FK4

public FK4(double equinox,
           double epoch)
Instanciate an FK4 frame

Parameters:
equinox - the equinox of definition, in Besselian Year.
epoch - the epoch in Besselian Year.

FK4

public FK4(double equinox)
Instanciate an FK4 frame

Parameters:
equinox - the equinox of definition, in Besselian Year.

FK4

public FK4()
Instanciate an FK4 frame (at default B1950 equinox)

Method Detail

toICRSmatrix

public double[][] toICRSmatrix()
Get the conversion to ICRS matrix

Specified by:
toICRSmatrix in class Astroframe
Returns:
null (it's impossible to to reduce the transformation to a matrix)

precessionMatrix

public static double[][] precessionMatrix(double eq0,
                                          double eq1)
Precession matrix from equinox t0 to t1 (Besselian Years)

Parameters:
eq0 - equinox at original equinox (Besselian year)
eq1 - equinox of destination (Besselian year)
Returns:
the rotation that converts t0 into t1 by u1 = R * u0

eterm

public static final double[] eterm(double y)
Compute the e-term (change due to the ellipticity of Earth orbit).

Parameters:
y - the epoch, in Besselian years
Returns:
the 3 components of the E-term

toFK5

public static void toFK5(Coo coo)
Convert the position to FK5 system -- assumed to be ICRS. We assume no proper motion in FK5, and an equinox/epoch in B1950.

Parameters:
coo - a coordinate which is converted from FK4(B1950) to FK5(J2000)

toFK5

public static void toFK5(double[] u6)
Convert the position from standard B1950 FK4 to standard J2000 FK5 system with Standish's algorithm. Standish uses the 6x6 matrix applied on the 6-vector (x y z xd yd zd) representing the position + derivative (derivatives expressed in arcsec/century) with the EM matrix applied on the vector after subtraction of the E-term The E-term (due to the Earth's elliptical orbit) can be expressed r ^ (A ^ r) = A - (A*r)r where ^ represents the vectorial product, and * the scalar product.

Parameters:
u6 - 6-vector containing position + mouvement (rad/yr)

fromFK5

public static void fromFK5(Coo coo)
Compute FK4 position from FK5, assuming no proper motion in FK5 and an observation in B1950.

Parameters:
coo - a coordinate which is converted from FK5(J2000) to FK4(B1950)

fromFK5

public static void fromFK5(double[] u6)
Convert the position from standard J2000 FK5 to standard B1950 FK4 system with Standish's algorithm. Standish uses the 6x6 matrix applied on the 6-vector (x y z xd yd zd) representing the position + derivative (derivatives expressed in arcsec/century) with the EM matrix applied on the vector after subtraction of the E-term The E-term (due to the Earth's elliptical orbit) can be expressed r ^ (A ^ r) = A - (A*r)r where ^ represents the vectorial product, and * the scalar product.

Parameters:
u6 - 6-vector containing position + mouvement (rad/yr)

estimateFK4motion

public static void estimateFK4motion(double[] u6)
Estimate the proper motions in the FK4 system, assuming a zero proper motion in the FK5.

Parameters:
u6 - 6-vector containing position + mouvement (rad/yr); the mouvement (derivative, pos. u6[3-5]) is updated.

toICRS

public void toICRS(double[] u6)
Convert the position to its ICRS equivalent.

Overrides:
toICRS in class Astroframe
Parameters:
u6 - the 6-vector (cartesian position + derivative) Velocity in Jyr-1). u6 is on FK4 on input, in ICRS on output)

toICRS

public void toICRS(Coo coo)
Convert the position to its ICRS equivalent.

Overrides:
toICRS in class Astroframe
Parameters:
coo - on input the position in this frame; on ouput the ICRS

fromICRS

public void fromICRS(double[] u6)
Convert the position from the ICRS frame to FK4.

Overrides:
fromICRS in class Astroframe
Parameters:
u6 - the 6-vector (cartesian position + derivative) Velocity in Jyr-1). (in ICRS on input, in FK4 on output)

fromICRS

public void fromICRS(Coo coo)
Convert the position from the ICRS frame.

Overrides:
fromICRS in class Astroframe
Parameters:
coo - on input the ICRS position, on output in FK4.