stella.parameter
Class MomentsTrigger
java.lang.Object
util.PropertyContainer
util.PropertyResources
util.PropertyBundles
stella.parameter.AbstractParameter
stella.parameter.AbstractTrigger
stella.parameter.SimpleTrigger
stella.parameter.MomentsTrigger
- All Implemented Interfaces:
- Cloneable, Parameter, ParameterDepending, Trigger, ExitCleaning, Initializable, LocalizedSupplying, PropertySupplying, Reloadable, ResourceSupplying
public class MomentsTrigger
- extends SimpleTrigger
- implements ParameterDepending
A moment trigger changes its value depending on a fits moments list
provided to it. The general action is that for each moment
(one for average, two for standard deviation, from three on central
normalized moment), an allowed range is given, stating central value and
half-width of allowed range. A negative half-range means that this
moment should be ignored, comparison stops when there are no more
moments or all required moments have been checked. This parameter is
fail-fast: As soon as a criterion is violated, false is returned without
checking further.
|
Nested Class Summary |
static class |
MomentsTrigger.Test
As a test, we provide a fits file, a moment trigger properties
file and a fits moment parameter properties. |
| Methods inherited from class stella.parameter.AbstractParameter |
createParameter, delivers, exit, getFormatted, getFormatted, getName, getPreserveFile, getString, getString, register, setName, toString |
| 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 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 |
KEY_FITSMOMENTS
public static final String KEY_FITSMOMENTS
- This key links to the name of the fitsmoments parameter.
- See Also:
- Constant Field Values
KEY_MOMENTSLIST
public static final String KEY_MOMENTSLIST
- This key links to the name of the fitsmoments parameter.
- See Also:
- Constant Field Values
DEFFITSMOMENTS
private static final String DEFFITSMOMENTS
- The default lux value name.
- See Also:
- Constant Field Values
moments
private FitsMoments moments
- The parameter that holds the fits central moments, local.
range
List<Vector2D[]> range
- For convenience, we parse the ranges on init.
MomentsTrigger
public MomentsTrigger(Map<String,String> prop)
- Defaults the fits moment parameter name, but spares the moments
ranges.
init
public void init()
- On init, we create the table for calculating the times.
- Specified by:
init in interface Initializable- Overrides:
init in class SimpleTrigger
registerParameter
public void registerParameter(Parameter p)
- We register a parameter that delivers sky brightness. Preferrably it
links directly to a brightness sensor, if none is present, a
solz-dependancy can be used.
- Specified by:
registerParameter in interface ParameterDepending
getTrigger
public Boolean getTrigger()
- We get the trigger by scanning the list of central moments. If a change
has been noted, we set the super trigger.
- Specified by:
getTrigger in interface Trigger- Overrides:
getTrigger in class SimpleTrigger
checkMoments
private Boolean checkMoments(List<CentralMoments> cm)
- We scan our properties for moment ranges and return true, if we are in
the correct range or false if we are not. Never returns null, may not
be called with null.
parseRange
private static List<Vector2D[]> parseRange(String dt)
- We parse a double tokenized list into a list of vector2D arrays. The
size of the inner, comma-separated list defines the dimension of the
array, the length of the list returned is the length of the outer,
semi-solon tokenizable list. The inner list represents the number
of extension (1 in the standard case), while the out list enumerates
the moments order, starting with average, followed by standard deviation
rangeCheck
private static Boolean rangeCheck(List<CentralMoments> cm,
List<Vector2D[]> edge)
- We check if the central moments of all extensions are within the desired
range as specified in the properties.