astro
Class WcsProjection.ThreeStepWcs

java.lang.Object
  extended by util.PropertyContainer
      extended by util.PropertyResources
          extended by util.PropertyBundles
              extended by astro.WcsProjection
                  extended by astro.WcsProjection.ThreeStepWcs
All Implemented Interfaces:
Cloneable, Initializable, LocalizedSupplying, PropertySupplying, ResourceSupplying, VectorFunction
Direct Known Subclasses:
WcsProjection.LinearGnomonicRaDe, WcsProjection.PolynomialGnomonicRaDe, WcsProjection.VariableGnomonicRaDe
Enclosing class:
WcsProjection

public static class WcsProjection.ThreeStepWcs
extends WcsProjection

A combination put together from three individual WcsProjections, a pixel projection that transfers CCD-pixel into intermediate world coordinates, a true geometric projection (like Gnomonic) and a final rotation to yield coordinates in a known space. We prescribe that the first pixel-to-intermediate transformation uses the first coordinates of the parameters vector, the true geometric projection has no parameters and the final rotation uses the two last coordinates in the parameters. If there is a third, non-trivial Euler angle involved, it must be kept fixed.


Nested Class Summary
 
Nested classes/interfaces inherited from class astro.WcsProjection
WcsProjection.EulerRotation, WcsProjection.Gnomonic, WcsProjection.LinearGnomonicRaDe, WcsProjection.LinearPixelProjection, WcsProjection.PolynomialGnomonicRaDe, WcsProjection.PolynomialPixelProjection, WcsProjection.ReadWcs, WcsProjection.ThreeStepWcs, WcsProjection.VariableGnomonicRaDe, WcsProjection.VariablePixelProjection
 
Nested classes/interfaces inherited from class util.PropertyResources
PropertyResources.URLResource
 
Field Summary
private  WcsProjection geometric
          From intermediate WC to native spherical coordinates.
private  WcsProjection intermediate
          This wcs projection is used to get from pixel to intermediat WC.
private  WcsProjection rotation
          Rotate the native spherical coordiantes to a well-known system.
 
Fields inherited from class astro.WcsProjection
KEY_PARAMETERSCALE
 
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
protected WcsProjection.ThreeStepWcs(WcsProjection w1, WcsProjection w2, WcsProjection w3)
          Not intended to be used from outside, thus protected.
 
Method Summary
 VectorG estimateParameters(nom.tam.fits.Header h)
          We start with the anticipated pointing of the telescope.
 VectorG estimateParameterScales(VectorG s)
          We start with the anticipated pointing of the telescope.
 VectorG evaluate(VectorG pxpy)
          We evaluate a pixel pair by first converting to intermediate world coordinates.
 Collection<nom.tam.fits.HeaderCard> getCards()
          We return the combined collection of all header cards.
 VectorG getParameters()
          We stitch the parameters of the three projection together, assuming that the pure geometric projection has no parameter.
 double getPixelArea(VectorG pxpy)
          Area of pixel is multiplicative area of the three projections, which is possible due to the properties of determinantes.
 boolean parseHeader(nom.tam.fits.Header h)
          We parse a fit header by subsequentially applying it to our three projection.
 void setParameters(VectorG three)
          We set the parameters by splitting the entire range of coordinates to two sets, all but the last two and the last two.
 
Methods inherited from class astro.WcsProjection
argumentDimension, functionDimension, getStandardKeys
 
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

intermediate

private WcsProjection intermediate
This wcs projection is used to get from pixel to intermediat WC.


geometric

private WcsProjection geometric
From intermediate WC to native spherical coordinates.


rotation

private WcsProjection rotation
Rotate the native spherical coordiantes to a well-known system.

Constructor Detail

WcsProjection.ThreeStepWcs

protected WcsProjection.ThreeStepWcs(WcsProjection w1,
                                     WcsProjection w2,
                                     WcsProjection w3)
Not intended to be used from outside, thus protected.

Method Detail

setParameters

public void setParameters(VectorG three)
We set the parameters by splitting the entire range of coordinates to two sets, all but the last two and the last two. These are than set in the intermediate and rotation WCS, respectively. The pure geometric transformation is expexted to have no varying parameters, as this method is mainly used by a wcs model during parameter determination.

Overrides:
setParameters in class WcsProjection

getParameters

public VectorG getParameters()
We stitch the parameters of the three projection together, assuming that the pure geometric projection has no parameter. The result is a vector containing the parameters of the intermediate projection, followed by the (two) rotational parameters.

Overrides:
getParameters in class WcsProjection

evaluate

public VectorG evaluate(VectorG pxpy)
We evaluate a pixel pair by first converting to intermediate world coordinates. These are than converted into a spherical projection in a native system, and finally rotated to yield the final system.


parseHeader

public boolean parseHeader(nom.tam.fits.Header h)
                    throws nom.tam.fits.HeaderCardException
We parse a fit header by subsequentially applying it to our three projection. We return true, only if successful in all steps.

Specified by:
parseHeader in class WcsProjection
Throws:
nom.tam.fits.HeaderCardException

getCards

public Collection<nom.tam.fits.HeaderCard> getCards()
                                             throws nom.tam.fits.HeaderCardException
We return the combined collection of all header cards.

Specified by:
getCards in class WcsProjection
Throws:
nom.tam.fits.HeaderCardException

estimateParameterScales

public VectorG estimateParameterScales(VectorG s)
We start with the anticipated pointing of the telescope. If no unit for ra, de is given, we assume Sexagesimal, colons as separators. If a lonpole is given, we set it, but it is never a fitted parameter.

Overrides:
estimateParameterScales in class WcsProjection

estimateParameters

public VectorG estimateParameters(nom.tam.fits.Header h)
                           throws nom.tam.fits.HeaderCardException
We start with the anticipated pointing of the telescope. If no unit for ra, de is given, we assume Sexagesimal, colons as separators. If a lonpole is given, we set it, but it is never a fitted parameter.

Specified by:
estimateParameters in class WcsProjection
Throws:
nom.tam.fits.HeaderCardException

getPixelArea

public double getPixelArea(VectorG pxpy)
Area of pixel is multiplicative area of the three projections, which is possible due to the properties of determinantes.

Specified by:
getPixelArea in class WcsProjection