stella.parameter
Class MoonAzimuth

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.MoonAzimuth
All Implemented Interfaces:
Cloneable, Parameter, Increasing<Number>, ParameterDepending, Value, ExitCleaning, Initializable, LocalizedSupplying, PropertySupplying, Reloadable, ResourceSupplying

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

A Value calculating the moon height. Four other globals must be registered, MoonRa, MoonDec, SiderealTime, and Latitude.


Nested Class Summary
 
Nested classes/interfaces inherited from class util.PropertyResources
PropertyResources.URLResource
 
Field Summary
private static String DEFLATITUDE
          The default name of the latitude parameter to use.
private static String DEFMOONDEC
          The default name of the solar declination to use.
private static String DEFMOONRA
          The default name of the solar right ascension to use.
static String DEFNAME
          The default name of this value.
private static String DEFSIDEREAL
          The default name of the sidereal parameter to use.
static String KEY_LATITUDE
          The name of the latitude to use.
static String KEY_MOONDEC
          The name of the solar declination to use.
static String KEY_MOONRA
          The name of the solar right ascension to use.
static String KEY_SIDEREAL
          The name of the sidereal time to use.
private  Value latitude
          The longitude of Teide, degrees.
private  Value moondec
          The solar declination parameter to use.
private  Value moonra
          The solar right ascension parameter to use.
private  Value sidereal
          The actual sidereal time.
 
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
MoonAzimuth(Map<String,String> info)
          Constructs a new sidereal time object.
 
Method Summary
private  Double calcTime(double az, double phi, double dec)
          Calculates the remaining time until a given az is reached.
 Double getAscendTime(Number hsol)
          Returns the remaining time in ms.
 String getFormatted()
          Returns the formatted moon height value.
 Number getValue()
          Returns the actual height of the sun over the horizon.
 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 moon height.
 
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_SIDEREAL

public static final String KEY_SIDEREAL
The name of the sidereal time to use.

See Also:
Constant Field Values

KEY_LATITUDE

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

See Also:
Constant Field Values

KEY_MOONRA

public static final String KEY_MOONRA
The name of the solar right ascension to use.

See Also:
Constant Field Values

KEY_MOONDEC

public static final String KEY_MOONDEC
The name of the solar declination to use.

See Also:
Constant Field Values

DEFNAME

public static final String DEFNAME
The default name of this value.

See Also:
Constant Field Values

DEFSIDEREAL

private static final String DEFSIDEREAL
The default name of the sidereal parameter to use.

See Also:
Constant Field Values

DEFLATITUDE

private static final String DEFLATITUDE
The default name of the latitude parameter to use.

See Also:
Constant Field Values

DEFMOONRA

private static final String DEFMOONRA
The default name of the solar right ascension to use.

See Also:
Constant Field Values

DEFMOONDEC

private static final String DEFMOONDEC
The default name of the solar declination to use.

See Also:
Constant Field Values

latitude

private Value latitude
The longitude of Teide, degrees.


sidereal

private Value sidereal
The actual sidereal time.


moonra

private Value moonra
The solar right ascension parameter to use.


moondec

private Value moondec
The solar declination parameter to use.

Constructor Detail

MoonAzimuth

public MoonAzimuth(Map<String,String> 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

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 moon height. It is a read-only variable, therefore this method throws an UnsupportedOperationException.

Specified by:
setValue in interface Value
Throws:
UnsupportedOperationException

getValue

public Number getValue()
Returns the actual height of the sun over the horizon. For convenience, the returned value is in degrees not in radians. If either of the three parameters denoting the sidereal time, the latitude of the site or the ecliptical longitude of the sun is missing, null is returned.

Specified by:
getValue in interface Value

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 hsol)
Returns the remaining time in ms. For the ascend the solution of the hour angle that satisfies dh/dt>0 is used to derive the remaining time. The solar position is considered inmutable.

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

calcTime

private Double calcTime(double az,
                        double phi,
                        double dec)
Calculates the remaining time until a given az is reached. Always uses the ascend time of the hour angle definition. If the target definition handed over is null, the non-target depending version of the ascend time of tau is used.

Parameters:
az - Target azimuth of object in degrees.
phi - Latitude in degrees.
dec - Declination of object in degree.
target - If non-null the target depending time is used.

getFormatted

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

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