stella.parameter
Class EnvironmentFocus

java.lang.Object
  extended by util.PropertyContainer
      extended by util.PropertyResources
          extended by util.PropertyBundles
              extended by stella.parameter.AbstractParameter
                  extended by stella.parameter.AbstractTargetParameter
                      extended by stella.parameter.AbstractTargetValue
                          extended by stella.parameter.EnvironmentFocus
All Implemented Interfaces:
Cloneable, Parameter, TargetDependingValue, ParameterDepending, TargetDepending, TargetDependingParameter, Value, ExitCleaning, Initializable, LocalizedSupplying, PropertySupplying, Reloadable, ResourceSupplying

public class EnvironmentFocus
extends AbstractTargetValue
implements ParameterDepending, TargetDependingParameter, Reloadable

A parameter that calculates an optimal setting for the telescope focus from a temperature parameter and the target height.


Nested Class Summary
 
Nested classes/interfaces inherited from class util.PropertyResources
PropertyResources.URLResource
 
Field Summary
private  TargetDependingParameter alt
          The actual hour angle of the target, degrees.
private static double DEFF0
          The default name of the solar ecliptical longitude to use.
private static double DEFFSINH
          The default linear dependency on sine height.
private static double DEFFTEMP
          The default linear dependency on temperature in mm/Celcius.
private static double DEFFTEMPSQ
          The default quadratic dependency on temperature in mm/Celcius.
private static double DEFFTEMPZERO
          The default name of the solar ecliptical longitude to use.
static String DEFNAME
          The default name of this value.
private static String DEFTARGETHEIGHT
          The default name of the latitude parameter to use.
private static String DEFTEMPERATURE
          The default name of the sidereal parameter to use.
private static DecimalFormat df
          The formatter for the target height.
static String KEY_F0
          The value of the constant focus position.
static String KEY_FSINH
          The value of the linear-in-sine-height parameter.
static String KEY_FTEMP
          The value of the linear-in-temperature parameter.
static String KEY_FTEMPSQ
          The value of the squared-in-temperature parameter.
static String KEY_FTEMPZERO
          The zero point of the linear-in-temperature parameter.
static String KEY_TARGETHEIGHT
          The name of the target height to use.
static String KEY_TEMPERATURE
          The name of the temperature to use.
private  Value temperature
          The latitude of Teide, degrees.
 
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.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
EnvironmentFocus(Map info)
          Constructs a new airmass target object.
 
Method Summary
private  Number calculate(Number haveh)
          Calculates the environmental focus according to:
 Number getForTarget(TargetDefinition star)
          Gets the declination of the target star.
 Number getValue()
          Returns the target's actual airmass, wrapped into a Double.
 void registerParameter(Parameter what)
          Registers the required additional globals for the Z 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 airmass 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.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 stella.TargetDependingParameter
getFormattedFor
 
Methods inherited from interface stella.Parameter
get, getFormatted, getName, getString, set
 
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.Reloadable
reload
 
Methods inherited from interface util.ResourceSupplying
getResource, getResourceAsStream, getResources
 

Field Detail

KEY_TEMPERATURE

public static final String KEY_TEMPERATURE
The name of the temperature to use.

See Also:
Constant Field Values

KEY_TARGETHEIGHT

public static final String KEY_TARGETHEIGHT
The name of the target height to use.

See Also:
Constant Field Values

KEY_F0

public static final String KEY_F0
The value of the constant focus position.

See Also:
Constant Field Values

KEY_FSINH

public static final String KEY_FSINH
The value of the linear-in-sine-height parameter.

See Also:
Constant Field Values

KEY_FTEMP

public static final String KEY_FTEMP
The value of the linear-in-temperature parameter.

See Also:
Constant Field Values

KEY_FTEMPSQ

public static final String KEY_FTEMPSQ
The value of the squared-in-temperature parameter.

See Also:
Constant Field Values

KEY_FTEMPZERO

public static final String KEY_FTEMPZERO
The zero point of the linear-in-temperature parameter.

See Also:
Constant Field Values

DEFNAME

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

See Also:
Constant Field Values

DEFTEMPERATURE

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

See Also:
Constant Field Values

DEFTARGETHEIGHT

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

See Also:
Constant Field Values

DEFF0

private static final double DEFF0
The default name of the solar ecliptical longitude to use.

See Also:
Constant Field Values

DEFFTEMPZERO

private static final double DEFFTEMPZERO
The default name of the solar ecliptical longitude to use.

See Also:
Constant Field Values

DEFFSINH

private static final double DEFFSINH
The default linear dependency on sine height.

See Also:
Constant Field Values

DEFFTEMP

private static final double DEFFTEMP
The default linear dependency on temperature in mm/Celcius.

See Also:
Constant Field Values

DEFFTEMPSQ

private static final double DEFFTEMPSQ
The default quadratic dependency on temperature in mm/Celcius.

See Also:
Constant Field Values

alt

private TargetDependingParameter alt
The actual hour angle of the target, degrees.


temperature

private Value temperature
The latitude of Teide, degrees.


df

private static final DecimalFormat df
The formatter for the target height.

Constructor Detail

EnvironmentFocus

public EnvironmentFocus(Map info)
Constructs a new airmass target object. Note that this global can only function correctly after the tau and dec of the target and the teide latitude 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 airmass of the actual target. This is a read-only variable, therefore this method throws an UnsupportedOperationException.

Specified by:
setValue in interface Value
Throws:
UnsupportedOperationException

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 target's actual airmass, wrapped into a Double. Note that this method returns null if either of the globals denoting the tau, dec of the target or the latitude is missing.

Specified by:
getValue in interface Value

registerParameter

public void registerParameter(Parameter what)
Registers the required additional globals for the Z target. For this particular object, target dec and tau and teide latitude are required. Note that the argumental global is checked for being of instance types of TauTarget, DecTarget or Latitude, rather than querrying for the global name.

Specified by:
registerParameter in interface ParameterDepending

registerTarget

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

Specified by:
registerTarget in interface TargetDepending

calculate

private Number calculate(Number haveh)
Calculates the environmental focus according to:
       f_opt=f_0+(Temp-T_0)*f_temp+sin(h)*f_sinh