stella.adapter
Class BeamSplitterGuider

java.lang.Object
  extended by util.PropertyContainer
      extended by util.PropertyResources
          extended by util.PropertyBundles
              extended by stella.adapter.AdapterUnit
                  extended by stella.adapter.GuidingUnit
                      extended by stella.adapter.BeamSplitterGuider
All Implemented Interfaces:
Cloneable, Initializable, LocalizedSupplying, PropertySupplying, ResourceSupplying

public class BeamSplitterGuider
extends GuidingUnit

The guider unit task and the timer loop. The adapter master may prepare the guiding by a call to the do unit task, afterwards the guider loop might be retrieved with createGuiderLoop(long).


Nested Class Summary
private  class BeamSplitterGuider.GuiderLoop
          The timer task that does the actual guiding.
 
Nested classes/interfaces inherited from class util.PropertyResources
PropertyResources.URLResource
 
Field Summary
private  Rectangle catalog
          Extra space on guiding, normally zero.
private static String CONTINUOUSSEEING
          Properties of the internal seeing monitor.
private  ShelfStatistic contseeing
          The value with continuous seeing.
private  int currentguider
          Counting the guider frames.
private  int datamax
          Datamax on guiding, from guider mode.
private  int datamin
          Datamin on guiding, from guider mode.
private static double DEFABORTLEFT
          The default minimum time left for reacquire requests, ms.
static int DEFAPERTURE
          An integer value of the aperture size.
private static Dimension DEFENLARGEGUIDE
          The default pixel enlargement during guide.
static String DEFEXPOSURETIMELEFT
          The default name of the paramter holding the exposure time left .
private static double DEFFRACTION
          The default maximum fraction for reacquire/mode switch requests.
static String DEFFRACTIONALEXPOSE
          The default name of the paramter holding the fractional exposure time.
private static boolean DEFKEEPGUIDEFITS
          If true, all guiding fits are kept on disc.
private static int DEFKEEPGUIDEWHAT
          An integer specifying which guider fits to keep.
static String DEFLIGHTGAIN
          The default name of the paramter accumulating light losses.
static String DEFLIGHTLOSS
          The default name of the paramter accumulating light losses.
static String DEFLOSTCOUNT
          The default name of the paramter counting guidng losses
private static double DEFMAGERROR
          An estimate of the mgnitude error.
private static int DEFMODECHANGE
          The default number of minimum guider losts for mode change.
private static double DEFMODEFREQUENCY
          The default minimum occurence frequency of guider losts.
private static double DEFMODESEEING
          The default maximum seeing for good seeing guiding.
private static double DEFMODESWITCHLEFT
          The default minimum time left for mode switch requests, ms.
private static double DEFMODEWIND
          The default maximum wind speed for non-wind guiding.
static String DEFOFFSETAVERAGE
          The default name of the paramter counting arcsec offsets.
private static double DEFPOSITIONERROR
          An estimate of the catalog errors in pixels on ccd.
private static double DEFREACQUIRELEFT
          The default minimum time left for reacquire requests, ms.
private static long DEFROWTIMING
          Read out time for a single row, acquire frame.
static String DEFSEEING
          The default name of the paramter accumulating guiding seeing.
static String DEFSPURIOUSCOUNT
          The default name of the paramter counting guidng losses
private static boolean DEFWAITONGUIDE
          If true, we wait for offset completion on guide.
static String DEFWINDMAX
          The default name of the paramter holding windspeed max.
private  Value exposuretimeleft
          The Value holding the exposure time left.
private  Value fractionalexpose
          The value holding the fractional exposure time.
private  long guideexpose
          The exposure time for the guider applied on the CCD.
private  long guiderawexpose
          The exposure time for the guider without increase.
private  int guidinglost
          The counter of repetitive guiding failures.
private  String guidingmode
          The identifier of the guider mode, set by the master before unit task.
private  Value highwind
          The value with wind peaks.
private  double increase
          A value set from the outside signaling increased exposure time.
static String KEY_ABORTLEFT
          To request an abort, at least this exposure time must remain.
static String KEY_APERTURE
          On aperture photometry the radius of the square box, unbinned.
static String KEY_ENLARGEGUIDE
          A gray-zone around the guide field for catalog star inclusion.
static String KEY_EXPOSURETIMELEFT
          The parameter holding the exposure time left.
static String KEY_FRACTION
          No reposition or change mode after this fraction of exposure time.
static String KEY_FRACTIONALEXPOSE
          The parameter holding the fractional exposure time.
static String KEY_KEEPGUIDEFITS
          If true, all guiding fits are kept on disc.
static String KEY_KEEPGUIDEWHAT
          An integer specifying which guider fits to keep.
static String KEY_LIGHTGAIN
          Issued to the local parameter cluster as the light loss estimate.
static String KEY_LIGHTLOSS
          Issued to the local parameter cluster as the light loss estimate.
static String KEY_LOSTCOUNT
          Issued to the local parameter cluster as number of target losts.
static String KEY_MAGERROR
          An estimate of the magnitude errors.
static String KEY_MODECHANGE
          Minimum lost guidings to allow mode change.
static String KEY_MODEFREQUENCY
          Minimum frequency of guiding losts to allow mode change.
static String KEY_MODEPROPERTIES
          Modes are defined as MODE_XXX+this key, e.g.
static String KEY_MODESEEING
          Minimum seeing at guiding to allow mode change.
static String KEY_MODESWITCHLEFT
          To request a mode switch, at least this exposure time must remain.
static String KEY_MODEWIND
          Minimum wind speed at guiding to allow mode change.
static String KEY_OFFSETAVERAGE
          Issued to the local parameter cluster as average offset.
static String KEY_POSITIONERROR
          An estimate of the catalog errors in pixels on ccd.
static String KEY_REACQUIRELEFT
          To request a reposition, at least this exposure time must remain.
static String KEY_ROWTIMING
          Row read-out time for bright strip detection.
static String KEY_SPURIOUSCOUNT
          Issued to the local parameter cluster as number of guiding losts.
static String KEY_WAITONGUIDE
          If true, we wait for offset completion on guide.
private  Value lightgain
          The value with median of light gain.
private  Value lightloss
          The value averaging light-loss
private  Value lostcount
          The value counting the severe guiding losts.
private  List losts
          A list of az/alt offsets, used on permanent misses, but not star lost.
private  GuiderMode mode
          The current guiding mode, initialized on unit task.
private  int modeswitch
          The counter of absolute guider losts for mode change.
private  EncoderOffsetTelescope offsetcommand
          Re-use the offset command.
private  List offsets
          A list of az/alt offsets.
private  boolean onstar
          True, if we are currently on star.
private  Value pinholemiss
          The value averaging pinhole-offsets.
private  boolean running
          If this method is true, another task is running and we exit.
private  int searchbox
          Search box on guiding, from guider mode.
private  Value spuriouscount
          The value counting the spurious guiding losts.
private  int starlost
          The counter of repetitive star-not-visible.
private  int targetlost
          The counter of repetitive target failures.
private  Value targetseeing
          The value averaging per-target seeing.
 
Fields inherited from class stella.adapter.GuidingUnit
allowswitch, KEY_SEEING, KEY_WINDMAX, MODE_AUTO, MODE_NORMAL, MODE_SEEING, MODE_TRACKING, MODE_WIND, offrecord, pidrecord
 
Fields inherited from class stella.adapter.AdapterUnit
ACQUIRETYPE, GUIDERTYPE, PYRAMIDTYPE
 
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
BeamSplitterGuider(Map prop)
          Constructs a new guider unit.
 
Method Summary
protected  TimerTask createGuiderLoop(long repeatperiod)
          Creates the guider loop, which can be used as a timer task.
protected  ErrorEvent doUnitTask(String m)
          Doing the unit task means start guiding.
protected  long getExposureTime()
          Returns the guider exposure time, available after unit task.
private  Mirroring getMirror()
          If we are valid, this is always possible.
protected  GuiderMode getMode()
          Returns the currently active guider mode.
protected  String getUnitType()
          The type of the guider unit is AdapterUnit.GUIDERTYPE.
protected  boolean isValid()
          We are valid only if a guider mode is set.
private  boolean isViable(double left)
          Checks, if sending an error to request new guiding mode or to reposition the telescope is feasible.
protected  void requestMode(String newmode)
          Sets the guiding mode as the identifier string.
protected  void resetUnit()
          Resets the guider unit.
private  double seeingAndPhotometry(Guiding.RawStar pinhole)
          Takes a guiding signal and estimates seeing and photometry from it.
protected  void setExposure(Value timeleft, Value fractional)
          Sets the values related to exposure time.
protected  void setGuidingLost(Value losses)
          Sets the value counting the spurious guiding losses.
protected  void setLightGain(Value gain)
          Sets the value with the light gain median.
protected  void setLightLoss(Value loss)
          Sets the value with the light loss averager.
protected  void setMaster(AdapterMaster chef)
          Sets the adapter master.
protected  void setPinholeMiss(Value miss)
          Sets the value with the target seeing.
protected  void setSeeing(Value seeing)
          Sets the value with the target seeing.
protected  void setTargetLost(Value losses)
          Sets the value counting the spurious guiding losses.
protected  void setWindPeak(Value windmax)
          Sets the value with the high-peaked winds.
 
Methods inherited from class stella.adapter.GuidingUnit
setAllowSwitch, setIncrease, setOffsetStream, setPIDStream
 
Methods inherited from class stella.adapter.AdapterUnit
getGuider, getMaster, getTelescope, isManual, setGuider, setManual, setTelescope
 
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 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_LOSTCOUNT

public static final String KEY_LOSTCOUNT
Issued to the local parameter cluster as number of target losts.

See Also:
Constant Field Values

KEY_SPURIOUSCOUNT

public static final String KEY_SPURIOUSCOUNT
Issued to the local parameter cluster as number of guiding losts.

See Also:
Constant Field Values

KEY_OFFSETAVERAGE

public static final String KEY_OFFSETAVERAGE
Issued to the local parameter cluster as average offset.

See Also:
Constant Field Values

KEY_LIGHTLOSS

public static final String KEY_LIGHTLOSS
Issued to the local parameter cluster as the light loss estimate.

See Also:
Constant Field Values

KEY_LIGHTGAIN

public static final String KEY_LIGHTGAIN
Issued to the local parameter cluster as the light loss estimate.

See Also:
Constant Field Values

KEY_EXPOSURETIMELEFT

public static final String KEY_EXPOSURETIMELEFT
The parameter holding the exposure time left.

See Also:
Constant Field Values

KEY_FRACTIONALEXPOSE

public static final String KEY_FRACTIONALEXPOSE
The parameter holding the fractional exposure time.

See Also:
Constant Field Values

KEY_MODEPROPERTIES

public static final String KEY_MODEPROPERTIES
Modes are defined as MODE_XXX+this key, e.g. 'normalmodeproperties'.

See Also:
Constant Field Values

KEY_ENLARGEGUIDE

public static final String KEY_ENLARGEGUIDE
A gray-zone around the guide field for catalog star inclusion.

See Also:
Constant Field Values

KEY_WAITONGUIDE

public static final String KEY_WAITONGUIDE
If true, we wait for offset completion on guide.

See Also:
Constant Field Values

KEY_KEEPGUIDEFITS

public static final String KEY_KEEPGUIDEFITS
If true, all guiding fits are kept on disc.

See Also:
Constant Field Values

KEY_KEEPGUIDEWHAT

public static final String KEY_KEEPGUIDEWHAT
An integer specifying which guider fits to keep.

See Also:
Constant Field Values

KEY_ROWTIMING

public static final String KEY_ROWTIMING
Row read-out time for bright strip detection.

See Also:
Constant Field Values

KEY_APERTURE

public static final String KEY_APERTURE
On aperture photometry the radius of the square box, unbinned.

See Also:
Constant Field Values

KEY_POSITIONERROR

public static final String KEY_POSITIONERROR
An estimate of the catalog errors in pixels on ccd.

See Also:
Constant Field Values

KEY_MAGERROR

public static final String KEY_MAGERROR
An estimate of the magnitude errors.

See Also:
Constant Field Values

KEY_MODECHANGE

public static final String KEY_MODECHANGE
Minimum lost guidings to allow mode change.

See Also:
Constant Field Values

KEY_MODEFREQUENCY

public static final String KEY_MODEFREQUENCY
Minimum frequency of guiding losts to allow mode change.

See Also:
Constant Field Values

KEY_MODEWIND

public static final String KEY_MODEWIND
Minimum wind speed at guiding to allow mode change.

See Also:
Constant Field Values

KEY_MODESEEING

public static final String KEY_MODESEEING
Minimum seeing at guiding to allow mode change.

See Also:
Constant Field Values

KEY_REACQUIRELEFT

public static final String KEY_REACQUIRELEFT
To request a reposition, at least this exposure time must remain.

See Also:
Constant Field Values

KEY_ABORTLEFT

public static final String KEY_ABORTLEFT
To request an abort, at least this exposure time must remain.

See Also:
Constant Field Values

KEY_MODESWITCHLEFT

public static final String KEY_MODESWITCHLEFT
To request a mode switch, at least this exposure time must remain.

See Also:
Constant Field Values

KEY_FRACTION

public static final String KEY_FRACTION
No reposition or change mode after this fraction of exposure time.

See Also:
Constant Field Values

DEFLOSTCOUNT

public static final String DEFLOSTCOUNT
The default name of the paramter counting guidng losses

See Also:
Constant Field Values

DEFSPURIOUSCOUNT

public static final String DEFSPURIOUSCOUNT
The default name of the paramter counting guidng losses

See Also:
Constant Field Values

DEFOFFSETAVERAGE

public static final String DEFOFFSETAVERAGE
The default name of the paramter counting arcsec offsets.

See Also:
Constant Field Values

DEFSEEING

public static final String DEFSEEING
The default name of the paramter accumulating guiding seeing.

See Also:
Constant Field Values

DEFLIGHTLOSS

public static final String DEFLIGHTLOSS
The default name of the paramter accumulating light losses.

See Also:
Constant Field Values

DEFLIGHTGAIN

public static final String DEFLIGHTGAIN
The default name of the paramter accumulating light losses.

See Also:
Constant Field Values

DEFWINDMAX

public static final String DEFWINDMAX
The default name of the paramter holding windspeed max.

See Also:
Constant Field Values

DEFEXPOSURETIMELEFT

public static final String DEFEXPOSURETIMELEFT
The default name of the paramter holding the exposure time left .

See Also:
Constant Field Values

DEFFRACTIONALEXPOSE

public static final String DEFFRACTIONALEXPOSE
The default name of the paramter holding the fractional exposure time.

See Also:
Constant Field Values

DEFENLARGEGUIDE

private static final Dimension DEFENLARGEGUIDE
The default pixel enlargement during guide.


DEFWAITONGUIDE

private static final boolean DEFWAITONGUIDE
If true, we wait for offset completion on guide.

See Also:
Constant Field Values

DEFKEEPGUIDEFITS

private static final boolean DEFKEEPGUIDEFITS
If true, all guiding fits are kept on disc.

See Also:
Constant Field Values

DEFKEEPGUIDEWHAT

private static final int DEFKEEPGUIDEWHAT
An integer specifying which guider fits to keep.

See Also:
Constant Field Values

DEFAPERTURE

public static final int DEFAPERTURE
An integer value of the aperture size.

See Also:
Constant Field Values

DEFROWTIMING

private static final long DEFROWTIMING
Read out time for a single row, acquire frame.

See Also:
Constant Field Values

DEFPOSITIONERROR

private static final double DEFPOSITIONERROR
An estimate of the catalog errors in pixels on ccd.

See Also:
Constant Field Values

DEFMAGERROR

private static final double DEFMAGERROR
An estimate of the mgnitude error.

See Also:
Constant Field Values

DEFMODECHANGE

private static final int DEFMODECHANGE
The default number of minimum guider losts for mode change.

See Also:
Constant Field Values

DEFMODEFREQUENCY

private static final double DEFMODEFREQUENCY
The default minimum occurence frequency of guider losts.

See Also:
Constant Field Values

DEFMODEWIND

private static final double DEFMODEWIND
The default maximum wind speed for non-wind guiding.

See Also:
Constant Field Values

DEFMODESEEING

private static final double DEFMODESEEING
The default maximum seeing for good seeing guiding.

See Also:
Constant Field Values

DEFREACQUIRELEFT

private static final double DEFREACQUIRELEFT
The default minimum time left for reacquire requests, ms.

See Also:
Constant Field Values

DEFABORTLEFT

private static final double DEFABORTLEFT
The default minimum time left for reacquire requests, ms.

See Also:
Constant Field Values

DEFMODESWITCHLEFT

private static final double DEFMODESWITCHLEFT
The default minimum time left for mode switch requests, ms.

See Also:
Constant Field Values

DEFFRACTION

private static final double DEFFRACTION
The default maximum fraction for reacquire/mode switch requests.

See Also:
Constant Field Values

CONTINUOUSSEEING

private static final String CONTINUOUSSEEING
Properties of the internal seeing monitor.

See Also:
Constant Field Values

guidingmode

private String guidingmode
The identifier of the guider mode, set by the master before unit task.


mode

private GuiderMode mode
The current guiding mode, initialized on unit task.


spuriouscount

private Value spuriouscount
The value counting the spurious guiding losts. Reset from master.


lostcount

private Value lostcount
The value counting the severe guiding losts. Reset from master.


highwind

private Value highwind
The value with wind peaks.


lightloss

private Value lightloss
The value averaging light-loss


lightgain

private Value lightgain
The value with median of light gain.


contseeing

private ShelfStatistic contseeing
The value with continuous seeing.


targetseeing

private Value targetseeing
The value averaging per-target seeing.


pinholemiss

private Value pinholemiss
The value averaging pinhole-offsets.


exposuretimeleft

private Value exposuretimeleft
The Value holding the exposure time left.


fractionalexpose

private Value fractionalexpose
The value holding the fractional exposure time.


increase

private double increase
A value set from the outside signaling increased exposure time.


catalog

private Rectangle catalog
Extra space on guiding, normally zero.


guiderawexpose

private long guiderawexpose
The exposure time for the guider without increase.


guideexpose

private long guideexpose
The exposure time for the guider applied on the CCD.


datamin

private int datamin
Datamin on guiding, from guider mode.


datamax

private int datamax
Datamax on guiding, from guider mode.


searchbox

private int searchbox
Search box on guiding, from guider mode.


running

private boolean running
If this method is true, another task is running and we exit.


currentguider

private int currentguider
Counting the guider frames.


onstar

private boolean onstar
True, if we are currently on star.


guidinglost

private int guidinglost
The counter of repetitive guiding failures.


starlost

private int starlost
The counter of repetitive star-not-visible.


targetlost

private int targetlost
The counter of repetitive target failures.


modeswitch

private int modeswitch
The counter of absolute guider losts for mode change.


offsetcommand

private EncoderOffsetTelescope offsetcommand
Re-use the offset command.


offsets

private List offsets
A list of az/alt offsets.


losts

private List losts
A list of az/alt offsets, used on permanent misses, but not star lost.

Constructor Detail

BeamSplitterGuider

public BeamSplitterGuider(Map prop)
Constructs a new guider unit. Differnt to acquire, we might have different errors on the catalog for two reasone, first the guider may see not as many stars as the acquire field, thus the the catalog error might be smaller. On the other hand, exposure time is short, thus the magnitude error might be higher.

Method Detail

isValid

protected boolean isValid()
We are valid only if a guider mode is set.

Overrides:
isValid in class AdapterUnit

getMirror

private Mirroring getMirror()
If we are valid, this is always possible.


getExposureTime

protected long getExposureTime()
Returns the guider exposure time, available after unit task.

Specified by:
getExposureTime in class GuidingUnit

requestMode

protected void requestMode(String newmode)
Sets the guiding mode as the identifier string.

Specified by:
requestMode in class GuidingUnit

setMaster

protected void setMaster(AdapterMaster chef)
Sets the adapter master.

Overrides:
setMaster in class AdapterUnit

setGuidingLost

protected void setGuidingLost(Value losses)
Sets the value counting the spurious guiding losses.


setTargetLost

protected void setTargetLost(Value losses)
Sets the value counting the spurious guiding losses.


setWindPeak

protected void setWindPeak(Value windmax)
Sets the value with the high-peaked winds.


setSeeing

protected void setSeeing(Value seeing)
Sets the value with the target seeing.


setLightLoss

protected void setLightLoss(Value loss)
Sets the value with the light loss averager.


setLightGain

protected void setLightGain(Value gain)
Sets the value with the light gain median.


setPinholeMiss

protected void setPinholeMiss(Value miss)
Sets the value with the target seeing.


setExposure

protected void setExposure(Value timeleft,
                           Value fractional)
Sets the values related to exposure time.

Parameters:
timeleft - The value holding the exposure time left.
fractional - The value holding the fraction of exposure done.

getUnitType

protected String getUnitType()
The type of the guider unit is AdapterUnit.GUIDERTYPE.

Specified by:
getUnitType in class AdapterUnit

getMode

protected GuiderMode getMode()
Returns the currently active guider mode.

Specified by:
getMode in class GuidingUnit

doUnitTask

protected ErrorEvent doUnitTask(String m)
Doing the unit task means start guiding. Only if the guider mode was set to GuidingUnit.MODE_AUTO, the mode is calculated from the current wind, otherwise the appropriate guider mode is loaded. The unit task does not start or create the guider loop, this must be done after the unti task by a call to createGuiderLoop(long).

Specified by:
doUnitTask in class AdapterUnit
Parameters:
m - If the unit supports more than a single mode, otherwise null
Returns:
null on okay, or an ErrorEvent desribing the failure.

createGuiderLoop

protected TimerTask createGuiderLoop(long repeatperiod)
Creates the guider loop, which can be used as a timer task. This method must be called after the unit task was done without an error, and piped to the adapter masters timer. For the benefit of knowing the guider period, the adapter master hands over the period in ms at which the task will be scheduled.

Specified by:
createGuiderLoop in class GuidingUnit

resetUnit

protected void resetUnit()
Resets the guider unit. This is done only on first start of guiding loop, not at each restart, as we than lose the targetcounts.

Overrides:
resetUnit in class AdapterUnit

seeingAndPhotometry

private double seeingAndPhotometry(Guiding.RawStar pinhole)
Takes a guiding signal and estimates seeing and photometry from it.

Parameters:
pinhole - The direct image of the star on the pinhole
Returns:
The fraction of light lost.

isViable

private boolean isViable(double left)
Checks, if sending an error to request new guiding mode or to reposition the telescope is feasible. This depends on the value of the exposure time remaining and on the fractional exposure time.

Parameters:
left - The time in ms that must be left on the exposure.