stella.xml
Class BeforeAfterMerit

java.lang.Object
  extended by util.PropertyContainer
      extended by util.PropertyResources
          extended by util.PropertyBundles
              extended by stella.AbstractMerit
                  extended by stella.xml.BeforeAfterMerit
All Implemented Interfaces:
Serializable, Cloneable, EndpointDefining, Meriting, Initializable, LocalizedSupplying, PropertySupplying, ResourceSupplying

public class BeforeAfterMerit
extends AbstractMerit
implements EndpointDefining

A class defining a time-slot merit that allows observation either after or before a time defined with KEY_T0. If the KEY_WIDTH is positive, the merit blocks observation before t0, if it is negative, the merit blocks observation after t0. The absoulte value of KEY_WIDTH defines the sharpness of the merit as in

   ts(t) = ln(±(t-t0)/width+1)
   
If the logarithm evaluates to a negative value, zero is returned. For a positive KEY_WIDTH, i.e. for a before merit, this class also has the power of defining an end-point, i.e. this class implements EndpointDefining.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class util.PropertyResources
PropertyResources.URLResource
 
Field Summary
private static String DEFTIME
          Default time parameter name.
private static double DEFWIDTH
          Default value for the width, one hour.
static String KEY_T0
          The key linked to the impact of the airmass merit.
static String KEY_TIME
          The key pointing to the name of the time parameter.
static String KEY_WIDTH
          The key linked to the maximum number of successful observations.
 
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.ResourceSupplying
KEY_URLRESOURCES, KEY_URLUSECONFIG, KEY_URLUSECURRENT, KEY_URLUSEHOME
 
Fields inherited from interface util.PropertySupplying
CONFIG, KEY_CLASS
 
Constructor Summary
BeforeAfterMerit(Map prop)
          Constructs a at-time merit centered at the current time and with a default width of DEFWIDTH.
 
Method Summary
 double getMerit(ParameterClustering set, TargetDefinition target, Collection ignore, long within)
          Calculates the actual time slot merit.
 boolean isCompleted(ParameterClustering set, TargetDefinition target)
          Test if this target is completed.
 
Methods inherited from class stella.AbstractMerit
createMerit, getInitializer, initMerit
 
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, init, 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, rescanned, setObject, setProperties, setProperty, stringProperties, toString
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface stella.Meriting
getInitializer, initMerit
 
Methods inherited from interface util.ResourceSupplying
getResource, getResourceAsStream, getResources
 
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
 

Field Detail

KEY_T0

public static final String KEY_T0
The key linked to the impact of the airmass merit.

See Also:
Constant Field Values

KEY_WIDTH

public static final String KEY_WIDTH
The key linked to the maximum number of successful observations.

See Also:
Constant Field Values

KEY_TIME

public static final String KEY_TIME
The key pointing to the name of the time parameter.

See Also:
Constant Field Values

DEFWIDTH

private static final double DEFWIDTH
Default value for the width, one hour.

See Also:
Constant Field Values

DEFTIME

private static final String DEFTIME
Default time parameter name.

See Also:
Constant Field Values
Constructor Detail

BeforeAfterMerit

public BeforeAfterMerit(Map prop)
Constructs a at-time merit centered at the current time and with a default width of DEFWIDTH. Proper creation should be done using the AbstractMerit.createMerit(java.util.Map) method. This create method also takes care of proper parameter overloading.

Method Detail

getMerit

public double getMerit(ParameterClustering set,
                       TargetDefinition target,
                       Collection ignore,
                       long within)
Calculates the actual time slot merit. The current time is substracted from KEY_T0, and dived through the KEY_WIDTH. The remaining value is used in a logarithm.

Specified by:
getMerit in interface Meriting
Parameters:
set - Current observing conditions.
target - The actual target.
ignore - The list of targetes relevant to the actual target.
within - The relevant time span in ms.

isCompleted

public boolean isCompleted(ParameterClustering set,
                           TargetDefinition target)
Test if this target is completed. Only in the 'after' mode, a definitie decision is possible: if the current time is past the zero-time, this method returns true.

Specified by:
isCompleted in interface EndpointDefining