stella.adapter
Class ModelShift

java.lang.Object
  extended by util.PropertyContainer
      extended by util.PropertyResources
          extended by util.PropertyBundles
              extended by stella.adapter.AbstractPinholeShift
                  extended by stella.adapter.ModelShift
All Implemented Interfaces:
Cloneable, PinholeShift, Initializable, LocalizedSupplying, PropertySupplying, ResourceSupplying

public class ModelShift
extends AbstractPinholeShift

Class that determines the pixel shift between pinhole and star by modelling the star plus pinhole. The star is a proportional to the Moffat function,

   psf(r)=(β-1)/πα²[1+(r/α)²],
   
where FWHM = 2α√(21/β-1).
Subtracted from that is a pinhole, which is modeled with an arctan according to
   ph(r)=1+(atan(k*(x-FWHM/2))-atan(k*(x+FWHM/2)))/π,
   
where bigger k's mean steeper slope. Additionally to the shift of the pinhole, we also get a hold on the seeing and total flux of the star, but no hold on pinhole drifts.


Nested Class Summary
static class ModelShift.PinholeModel
          A pinhole model is the model of a star with fitted intensity and FWHM close to the fixed pinhole position at the given coordinates.
static class ModelShift.Test
          Test class.
 
Nested classes/interfaces inherited from class stella.adapter.AbstractPinholeShift
AbstractPinholeShift.Background, AbstractPinholeShift.Evaluate, AbstractPinholeShift.Reconstruct
 
Nested classes/interfaces inherited from class util.PropertyResources
PropertyResources.URLResource
 
Field Summary
private static double DEFMOFFATBETA
          The moffat-beta, 4.765 is literature value.
private static double DEFPINHOLEDEEP
          Broad-band anti-reflective coating, typically.
private static double DEFPINHOLESIZE
          Default size (FWHM) of pinhole, pixel.
private static double DEFPINHOLESTEEP
          Pinhole model steepness.
private static boolean DEFUSESIMPLEX
          Default we are not using simplex.
static String KEY_MOFFATBETA
          The moffat-beta, 4.765 is literature value.
static String KEY_PINHOLEDEEP
          The pinhole model minimum transmission .
static String KEY_PINHOLESIZE
          The pinhole diameter.
static String KEY_PINHOLESTEEP
          The pinhole model steepness .
static String KEY_USESIMPLEX
          If false, we use Levenberg-Marquardt algorithm, otherwise Simplex.
private  VectorG last
          The last solution.
 
Fields inherited from class stella.adapter.AbstractPinholeShift
KEY_ADNOISE, KEY_APPLICABLE, KEY_GAIN, KEY_PINHOLE, KEY_SIGMACLIP, KEY_SKYTHICK
 
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
ModelShift(Map<String,String> prop)
          Constructs a model-shift.
 
Method Summary
 Vector2D getBackground(nom.tam.fits.ImageHDU hdu)
          This method calculates the background as the median of a frame at the outer edge of the apllicable window.
 double getFlux()
          Returns the total flux from the last solution, if possible.
 double getFwhm()
          Returns the fwhm from the last solution, if possible.
 Point2D initFiberView(nom.tam.fits.Fits ccd)
          Returns the center of gravity shift of the image from the pinhole position.
 
Methods inherited from class stella.adapter.AbstractPinholeShift
backgroundFrameMean, backgroundFrameMedian, backgroundMean, backgroundMedian, getAduSignal, getApplicableWindow, getPinholePosition, getSignalToNoise, init
 
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, 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
 

Field Detail

KEY_MOFFATBETA

public static final String KEY_MOFFATBETA
The moffat-beta, 4.765 is literature value.

See Also:
Constant Field Values

KEY_PINHOLESIZE

public static final String KEY_PINHOLESIZE
The pinhole diameter.

See Also:
Constant Field Values

KEY_PINHOLESTEEP

public static final String KEY_PINHOLESTEEP
The pinhole model steepness .

See Also:
Constant Field Values

KEY_PINHOLEDEEP

public static final String KEY_PINHOLEDEEP
The pinhole model minimum transmission .

See Also:
Constant Field Values

KEY_USESIMPLEX

public static final String KEY_USESIMPLEX
If false, we use Levenberg-Marquardt algorithm, otherwise Simplex.

See Also:
Constant Field Values

DEFMOFFATBETA

private static final double DEFMOFFATBETA
The moffat-beta, 4.765 is literature value.

See Also:
Constant Field Values

DEFPINHOLESIZE

private static final double DEFPINHOLESIZE
Default size (FWHM) of pinhole, pixel.

See Also:
Constant Field Values

DEFPINHOLESTEEP

private static final double DEFPINHOLESTEEP
Pinhole model steepness.

See Also:
Constant Field Values

DEFPINHOLEDEEP

private static final double DEFPINHOLEDEEP
Broad-band anti-reflective coating, typically.

See Also:
Constant Field Values

DEFUSESIMPLEX

private static final boolean DEFUSESIMPLEX
Default we are not using simplex.

See Also:
Constant Field Values

last

private VectorG last
The last solution.

Constructor Detail

ModelShift

public ModelShift(Map<String,String> prop)
Constructs a model-shift.

Method Detail

getBackground

public Vector2D getBackground(nom.tam.fits.ImageHDU hdu)
This method calculates the background as the median of a frame at the outer edge of the apllicable window.

Returns:
The background ADU in x and its ADU-sigma in y.

initFiberView

public Point2D initFiberView(nom.tam.fits.Fits ccd)
Returns the center of gravity shift of the image from the pinhole position. The true center of gravity is scaled with two functions to return true shifts.

Parameters:
ccd - The image of the pinhole entrance
Returns:
The pixel shift from the pinhole center to the star.

getFlux

public double getFlux()
Returns the total flux from the last solution, if possible.

Specified by:
getFlux in interface PinholeShift
Overrides:
getFlux in class AbstractPinholeShift

getFwhm

public double getFwhm()
Returns the fwhm from the last solution, if possible.

Specified by:
getFwhm in interface PinholeShift
Overrides:
getFwhm in class AbstractPinholeShift