stella.parameter
Class SolLambda

java.lang.Object
  extended by util.PropertyContainer
      extended by util.PropertyResources
          extended by util.PropertyBundles
              extended by stella.parameter.AbstractParameter
                  extended by stella.parameter.AbstractValue
                      extended by stella.parameter.SolLambda
All Implemented Interfaces:
Cloneable, Parameter, Increasing<Number>, ParameterDepending, Value, ExitCleaning, Initializable, LocalizedSupplying, PropertySupplying, Reloadable, ResourceSupplying

public class SolLambda
extends AbstractValue
implements Increasing<Number>, ParameterDepending, Reloadable

A Value calculating the apparent solar ecliptical longitude. One additional globals must be registered, Time.
The algorithms are based on NOAA solar position calculator. The calculation is correct to quadratic terms in time. Return value is in degrees.


Nested Class Summary
static class SolLambda.Test
          Testing only.
 
Nested classes/interfaces inherited from class util.PropertyResources
PropertyResources.URLResource
 
Field Summary
private static double A1EQC
          The constant coefficient in equation of center of the sun.
private static double A2EQC
          The constant coefficient in equation of center of the sun.
private static double A3EQC
          The linear coefficient in equation of center of the sun.
private static double ALAM
          The constant coefficient in apparent longitude.
private static double AM
          The constant coefficient in geometric mean longitude.
private static double ANU
          Constant coefficient for calculating mean perihelium.
private static double ANULL
          The constant coefficient in geometric mean anomaly.
private static double B1EQC
          The linear coefficient in equation of center of the sun.
private static double B2EQC
          The linear coefficient in equation of center of the sun.
private static double BLAM
          The linear coefficient in apparent longitude.
private static double BM
          The linear coefficient in geometric mean longitude.
private static double BNU
          Linear coefficient for calculating mean perihelium.
private static double BNULL
          The linear coefficient in geometric mean anomaly.
private static double C1EQC
          The quadratic coefficient in equation of center of the sun.
private static double CM
          The quadratic coefficient in geometric mean longitude.
private static double CNULL
          The quadratic coefficient in geometric mean anomaly.
static String DEFNAME
          The name of this global (sidereal).
private static String DEFTIME
          The name of this global (sidereal).
static String KEY_TIME
          The name of the latitude to use.
private  Value time
          The UT time in ms.
 
Fields inherited from class stella.parameter.AbstractParameter
KEY_FORMAT, KEY_NAME, KEY_PRESERVE, UNKNOWN
 
Fields inherited from class util.PropertyBundles
KEY_LOCALECOUNTRY, KEY_LOCALELANGUAGE, KEY_RESOURCEBUNDLES
 
Fields inherited from class util.PropertyResources
KEY_NOINITONCREATE, localurl, locate, POSTFIX_DIR, POSTFIX_EXT, POSTFIX_FILE, POSTFIX_LIST, POSTFIX_URL, urlset
 
Fields inherited from class util.PropertyContainer
KEY_LISTSEPARATOR, KEY_MAPKEYVALUECHAR, KEY_MAPSEPARATOR
 
Fields inherited from interface util.PropertySupplying
CONFIG, KEY_CLASS
 
Fields inherited from interface util.ResourceSupplying
KEY_URLRESOURCES, KEY_URLUSECONFIG, KEY_URLUSECURRENT, KEY_URLUSEHOME
 
Constructor Summary
SolLambda(Map info)
          Constructs a new sidereal time object.
 
Method Summary
 Double getAscendTime(Number until)
          Returns the remaining time in ms.
 String getFormatted()
          Returns the formatted longitude value.
static double getSolLambda(long ms)
          Returns the ecliptic longitude of the Sun from a unix time-stamp using VSOP.
 Number getValue()
          Returns the ecliptical longitude of the Sun in degrees as a Double.
 void registerParameter(Parameter what)
          Registers the required additional globals for the sidereal time.
 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 sidereal time.
 
Methods inherited from class stella.parameter.AbstractValue
get, set
 
Methods inherited from class stella.parameter.AbstractParameter
createParameter, delivers, exit, getFormatted, getName, getPreserveFile, getString, getString, init, register, setName, toString
 
Methods inherited from class util.PropertyBundles
clone, getLocalized, getLocalized, getLocalizedString, getLocalizedString, loadResource
 
Methods inherited from class util.PropertyResources
createFrom, createFrom, createFrom, getApplet, getAsResources, getLocalClassLoader, getPropertiesToKey, getPropertiesToKey, getResource, getResourceAsStream, getResourceFromKey, getResources, keyCreate, keyCreate, reload, setApplet
 
Methods inherited from class util.PropertyContainer
augment, augment, augment, defaultBoolean, defaultChar, defaultDouble, defaultFloat, defaultInt, defaultLong, defaultObject, defaultObject, defaultProperties, defaultProperty, getAsBoolean, getAsChar, getAsDouble, getAsEnums, getAsFloat, getAsInt, getAsList, getAsLong, getAsMap, getAsMap, getAsObject, getAsObject, getProperties, getProperty, has, isNew, parseObject, 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.Parameter
getName, getString
 
Methods inherited from interface util.PropertySupplying
defaultBoolean, defaultChar, defaultDouble, defaultFloat, defaultInt, defaultLong, defaultObject, defaultObject, defaultProperties, defaultProperty, getAsBoolean, getAsChar, getAsDouble, getAsFloat, getAsInt, getAsList, getAsLong, getAsMap, getAsObject, getAsObject, getProperties, getProperty, has, parseObject, removeProperty, setObject, setProperty, stringProperties
 
Methods inherited from interface util.Initializable
init
 
Methods inherited from interface util.ResourceSupplying
getResource, getResourceAsStream, getResources
 

Field Detail

KEY_TIME

public static final String KEY_TIME
The name of the latitude to use.

See Also:
Constant Field Values

DEFNAME

public static final String DEFNAME
The name of this global (sidereal).

See Also:
Constant Field Values

DEFTIME

private static final String DEFTIME
The name of this global (sidereal).

See Also:
Constant Field Values

ANULL

private static final double ANULL
The constant coefficient in geometric mean anomaly.

See Also:
Constant Field Values

BNULL

private static final double BNULL
The linear coefficient in geometric mean anomaly.

See Also:
Constant Field Values

CNULL

private static final double CNULL
The quadratic coefficient in geometric mean anomaly.

See Also:
Constant Field Values

AM

private static final double AM
The constant coefficient in geometric mean longitude.

See Also:
Constant Field Values

BM

private static final double BM
The linear coefficient in geometric mean longitude.

See Also:
Constant Field Values

CM

private static final double CM
The quadratic coefficient in geometric mean longitude.

See Also:
Constant Field Values

A1EQC

private static final double A1EQC
The constant coefficient in equation of center of the sun.

See Also:
Constant Field Values

B1EQC

private static final double B1EQC
The linear coefficient in equation of center of the sun.

See Also:
Constant Field Values

C1EQC

private static final double C1EQC
The quadratic coefficient in equation of center of the sun.

See Also:
Constant Field Values

A2EQC

private static final double A2EQC
The constant coefficient in equation of center of the sun.

See Also:
Constant Field Values

B2EQC

private static final double B2EQC
The linear coefficient in equation of center of the sun.

See Also:
Constant Field Values

A3EQC

private static final double A3EQC
The linear coefficient in equation of center of the sun.

See Also:
Constant Field Values

ALAM

private static final double ALAM
The constant coefficient in apparent longitude.

See Also:
Constant Field Values

BLAM

private static final double BLAM
The linear coefficient in apparent longitude.

See Also:
Constant Field Values

ANU

private static final double ANU
Constant coefficient for calculating mean perihelium.

See Also:
Constant Field Values

BNU

private static final double BNU
Linear coefficient for calculating mean perihelium.

See Also:
Constant Field Values

time

private Value time
The UT time in ms.

Constructor Detail

SolLambda

public SolLambda(Map info)
Constructs a new sidereal time object. Note that this global can only function correctly after the time and longitude have been registered.

Method Detail

setValue

public Number setValue(Number val)
                throws UnsupportedOperationException
Sets the sidereal time. The sidereal time is a read-only variable, therefore this method throws an UnsupportedOperationException.

Specified by:
setValue in interface Value
Throws:
UnsupportedOperationException

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

getValue

public Number getValue()
Returns the ecliptical longitude of the Sun in degrees as a Double. Note that this method returns null if the globals denoting the time is missing.

Specified by:
getValue in interface Value

getSolLambda

public static double getSolLambda(long ms)
Returns the ecliptic longitude of the Sun from a unix time-stamp using VSOP.


registerParameter

public void registerParameter(Parameter what)
Registers the required additional globals for the sidereal time. For this particular object, latitude and UT is required. Note that the argumental global is checked for being of instance types of Time or Longitude, rather than querrying for the global name.

Specified by:
registerParameter in interface ParameterDepending

getAscendTime

public Double getAscendTime(Number until)
Returns the remaining time in ms. Only a very crude estimate.

Specified by:
getAscendTime in interface Increasing<Number>
Parameters:
until - The value in the future.
Returns:
A double carrying the remaining time or null if the time cannot be calculated.

getFormatted

public String getFormatted()
Returns the formatted longitude value. It is a string giving the longitude in deg, min, and sec.

Specified by:
getFormatted in interface Parameter
Overrides:
getFormatted in class AbstractParameter