stella.parameter
Class BarycentricVelocity

java.lang.Object
  extended by util.PropertyContainer
      extended by stella.parameter.AbstractParameter
          extended by stella.parameter.AbstractTargetParameter
              extended by stella.parameter.AbstractTargetValue
                  extended by stella.parameter.BarycentricVelocity
All Implemented Interfaces:
Cloneable, Parameter, TargetDependingValue, ParameterDepending, TargetDepending, TargetDependingParameter, Value, ExitCleaning, Initializable, PropertyBearing, Reloadable

public class BarycentricVelocity
extends AbstractTargetValue
implements ParameterDepending, Reloadable

Computes baricentric velocity correction, based on FORTRAN-code at bvc


Nested Class Summary
static class BarycentricVelocity.Test
          Tests the class.
 
Nested classes/interfaces inherited from class util.PropertyContainer
PropertyContainer.URLResource
 
Field Summary
private static Matrix CCAMPM
          Amplitudes CCAMPM(n,k) of the perturbations of the moon.
private static Matrix CCAMPS
          Amplitudes CCAMPS(n,k) of the short-period perturbations.
private static double CCFDI
          Constants used in the calculation of the lunar contribution .
private static double CCKM
          Constants used in the calculation of the lunar contribution .
private static double CCMLD
          Constants used in the calculation of the lunar contribution .
private static VectorG CCPAMV
          CCPAMV = a*m*dl/dt (planets)
private static Matrix CCSEC
          Constants of the secular perturbations in longitude.
private static double CCSEC3
          Constants of the secular perturbations in longitude.
private static Matrix CCSEL
          Constants CCSEL(I,K) of slowly changing elements .
private static double CCSGD
          Rate ccsgd in mean anomaly.
private static double DC1MME
          Mass ratio Earth Moon.
private static Matrix DCARGM
          Arguments of the perturbations of the motion of the moon.
private static Matrix DCARGS
          Const.
private static Vector3D DCEPS
          Constants dceps of slowly changing elements .
private static Matrix DCFEL
          Constants DCFEL(I,K) of fast-changing elements.
private static double DCSLD
          Sidereal rate dcsld in longitude
private static double DCT0
          Julian date of zero point (1900-01-01).
private  TargetDependingParameter de
          The declination of the target.
private static String DEFDEC
          The name of the declination of the target to use.
private static String DEFHJD
          The name of the julian date to use.
private static String DEFJD
          The name of the julian date to use.
static String DEFNAME
          The name of this parameter.
private static String DEFRA
          The name of the ra target to use.
private  TargetDependingParameter dhjd
          The correction to it to get heliocentric jd, delivers ms.
private  Value jd
          The julian date.
static String KEY_DEC
          The name of the declination of the target to use.
static String KEY_HJD
          The name of the heliocentric julian date correction.
static String KEY_JD
          The name of the julian date parameter.
static String KEY_RA
          The name of the ra target to use.
private  TargetDependingParameter ra
          Right ascension of target.
 
Fields inherited from class stella.parameter.AbstractTargetParameter
KEY_INDEX
 
Fields inherited from class stella.parameter.AbstractParameter
KEY_FORMAT, KEY_NAME, KEY_PRESERVE, UNKNOWN
 
Fields inherited from class util.PropertyContainer
KEY_LISTSEPARATOR, KEY_LOCALECOUNTRY, KEY_LOCALELANGUAGE, KEY_MAPKEYVALUECHAR, KEY_MAPSEPARATOR, KEY_NOINITONCREATE, KEY_RESOURCEBUNDLES
 
Fields inherited from interface util.PropertyBearing
CONFIG, KEY_CLASS, KEY_URLRESOURCES, KEY_URLUSECONFIG, KEY_URLUSECURRENT, KEY_URLUSEHOME
 
Constructor Summary
BarycentricVelocity(Map info)
          Constructs a barycentric velocity object.
 
Method Summary
private static Vector3D barycentric(double hjd)
          Calculates the three components of the barycentric velocity.
private  Double calculate(double alpha, double delta, double hjd)
          Calculates the corrections in meter/sec.
static double getBarycentricVelocity(double alpha, double delta, double jd0, double hjd)
          Calculates the barycentric velocity as a function of jd, hjd correction and position of the object.
 Number getForTarget(TargetDefinition star)
          Gets the declination of the target star.
 Number getValue()
          Returns the actual target's hour angle in degrees, wrapped into a Double.
 void registerParameter(Parameter what)
          Registers the required additional globals for the tau target.
 void registerTarget(TargetDefinition star)
          Registers a star to this parameter.
 double rescanned(String key, String old, String newval)
          As any parameter depending instance we fail if the parameter we depend on is now a different one.
 Number setValue(Number val)
          Sets the hour angle of the actual target.
 
Methods inherited from class stella.parameter.AbstractTargetValue
get, set
 
Methods inherited from class stella.parameter.AbstractTargetParameter
getAsStar, getConstant, getFormattedFor, getSetup
 
Methods inherited from class stella.parameter.AbstractParameter
createParameter, delivers, exit, getFormatted, getFormatted, getName, getPreserveFile, getString, getString, init, register, setName, toString
 
Methods inherited from class util.PropertyContainer
augment, augment, augment, clone, createFrom, createFrom, createFrom, defaultBoolean, defaultChar, defaultDouble, defaultFloat, defaultInt, defaultLong, defaultObject, defaultObject, defaultProperties, defaultProperty, getAsBoolean, getAsChar, getAsDouble, getAsEnums, getAsFloat, getAsInt, getAsList, getAsLong, getAsMap, getAsMap, getAsObject, getAsObject, getLocalClassLoader, getLocalized, getLocalized, getLocalizedString, getLocalizedString, getProperties, getPropertiesToKey, getPropertiesToKey, getProperty, getResource, getResourceAsStream, getResourceFromKey, getResources, has, isNew, keyCreate, keyCreate, parseObject, reload, reload, removeProperty, setObject, setProperties, setProperty, stringProperties
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface util.Reloadable
reload
 
Methods inherited from interface stella.TargetDependingParameter
getFormattedFor
 
Methods inherited from interface stella.Parameter
getFormatted, getName, getString
 
Methods inherited from interface util.PropertyBearing
defaultBoolean, defaultChar, defaultDouble, defaultFloat, defaultInt, defaultLong, defaultObject, defaultObject, defaultProperties, defaultProperty, getAsBoolean, getAsChar, getAsDouble, getAsFloat, getAsInt, getAsList, getAsLong, getAsMap, getAsObject, getAsObject, getLocalized, getProperties, getProperty, getResource, getResourceAsStream, getResources, has, parseObject, removeProperty, setObject, setProperty, stringProperties
 
Methods inherited from interface util.Initializable
init
 

Field Detail

KEY_RA

public static final String KEY_RA
The name of the ra target to use.

See Also:
Constant Field Values

KEY_DEC

public static final String KEY_DEC
The name of the declination of the target to use.

See Also:
Constant Field Values

KEY_JD

public static final String KEY_JD
The name of the julian date parameter.

See Also:
Constant Field Values

KEY_HJD

public static final String KEY_HJD
The name of the heliocentric julian date correction.

See Also:
Constant Field Values

DEFNAME

public static final String DEFNAME
The name of this parameter.

See Also:
Constant Field Values

DEFRA

private static final String DEFRA
The name of the ra target to use.

See Also:
Constant Field Values

DEFDEC

private static final String DEFDEC
The name of the declination of the target to use.

See Also:
Constant Field Values

DEFJD

private static final String DEFJD
The name of the julian date to use.

See Also:
Constant Field Values

DEFHJD

private static final String DEFHJD
The name of the julian date to use.

See Also:
Constant Field Values

DCT0

private static final double DCT0
Julian date of zero point (1900-01-01).

See Also:
Constant Field Values

DCFEL

private static final Matrix DCFEL
Constants DCFEL(I,K) of fast-changing elements.


CCSEL

private static final Matrix CCSEL
Constants CCSEL(I,K) of slowly changing elements .


DCEPS

private static final Vector3D DCEPS
Constants dceps of slowly changing elements .


DCARGS

private static final Matrix DCARGS
Const. of the arguments of the short-period perturbations by planets


CCAMPS

private static final Matrix CCAMPS
Amplitudes CCAMPS(n,k) of the short-period perturbations.


CCSEC

private static final Matrix CCSEC
Constants of the secular perturbations in longitude.


DCARGM

private static final Matrix DCARGM
Arguments of the perturbations of the motion of the moon.


CCAMPM

private static final Matrix CCAMPM
Amplitudes CCAMPM(n,k) of the perturbations of the moon.


CCPAMV

private static final VectorG CCPAMV
CCPAMV = a*m*dl/dt (planets)


CCSEC3

private static final double CCSEC3
Constants of the secular perturbations in longitude.

See Also:
Constant Field Values

DCSLD

private static final double DCSLD
Sidereal rate dcsld in longitude

See Also:
Constant Field Values

CCSGD

private static final double CCSGD
Rate ccsgd in mean anomaly.

See Also:
Constant Field Values

CCKM

private static final double CCKM
Constants used in the calculation of the lunar contribution .

See Also:
Constant Field Values

CCMLD

private static final double CCMLD
Constants used in the calculation of the lunar contribution .

See Also:
Constant Field Values

CCFDI

private static final double CCFDI
Constants used in the calculation of the lunar contribution .

See Also:
Constant Field Values

DC1MME

private static final double DC1MME
Mass ratio Earth Moon.

See Also:
Constant Field Values

ra

private TargetDependingParameter ra
Right ascension of target. Should be precessed to current Eq.


de

private TargetDependingParameter de
The declination of the target. Should be precessed to current Eq.


jd

private Value jd
The julian date.


dhjd

private TargetDependingParameter dhjd
The correction to it to get heliocentric jd, delivers ms.

Constructor Detail

BarycentricVelocity

public BarycentricVelocity(Map info)
Constructs a barycentric velocity object. Note that this global can only function correctly after the ra and dec of the target have been registered.

Method Detail

rescanned

public double rescanned(String key,
                        String old,
                        String newval)
As any parameter depending instance we fail if the parameter we depend on is now a different one.

Specified by:
rescanned in interface Reloadable
Overrides:
rescanned in class AbstractParameter

setValue

public Number setValue(Number val)
                throws UnsupportedOperationException
Sets the hour angle of the actual target. This is a read-only variable, therefore this method throws an UnsupportedOperationException.

Specified by:
setValue in interface Value
Throws:
UnsupportedOperationException

registerTarget

public void registerTarget(TargetDefinition star)
Registers a star to this parameter. The target definition is directly passed to the ra reference of this parameter. Note that this will set the target in the additional parameter, too.

Specified by:
registerTarget in interface TargetDepending

getForTarget

public Number getForTarget(TargetDefinition star)
Gets the declination of the target star.

Specified by:
getForTarget in interface TargetDependingValue
Specified by:
getForTarget in interface TargetDependingParameter
Returns:
A Double holding the target star's declination.

getValue

public Number getValue()
Returns the actual target's hour angle in degrees, wrapped into a Double. Note that this method returns null if either the globals denoting the sidereal time or the ra target are missing.

Specified by:
getValue in interface Value

registerParameter

public void registerParameter(Parameter what)
Registers the required additional globals for the tau target. For this particular object, loacal sidereal time and target ra are required. Note that the argumental global is checked for being of instance types of SiderealTime or RaTarget, rather than querrying for the global name.

Specified by:
registerParameter in interface ParameterDepending

getBarycentricVelocity

public static final double getBarycentricVelocity(double alpha,
                                                  double delta,
                                                  double jd0,
                                                  double hjd)
Calculates the barycentric velocity as a function of jd, hjd correction and position of the object.


calculate

private Double calculate(double alpha,
                         double delta,
                         double hjd)
Calculates the corrections in meter/sec.


barycentric

private static Vector3D barycentric(double hjd)
Calculates the three components of the barycentric velocity. Heliocentric Julian date must be passed over.