|
| PcdMap (double disco, std::vector< double > const &pcdcen, std::string const &options="") |
|
virtual | ~PcdMap () |
|
| PcdMap (PcdMap const &)=default |
| Copy constructor: make a deep copy. More...
|
|
| PcdMap (PcdMap &&)=default |
|
PcdMap & | operator= (PcdMap const &)=delete |
|
PcdMap & | operator= (PcdMap &&)=default |
|
std::shared_ptr< PcdMap > | copy () const |
| Return a deep copy of this object. More...
|
|
double | getDisco () const |
| Get Disco: pincushion/barrel distortion coefficient. More...
|
|
double | getPcdCen (int axis) const |
| Get PcdMap_PcdCen PcdCen(axis) for one axis: centre coordinates of pincushion/barrel distortion. More...
|
|
std::vector< double > | getPcdCen () const |
| Get PcdMap_PcdCen PcdCen for both axes: centre coordinates of pincushion/barrel distortion. More...
|
|
virtual | ~Mapping () |
|
| Mapping (Mapping const &)=default |
| Copy constructor: make a deep copy. More...
|
|
| Mapping (Mapping &&)=default |
|
Mapping & | operator= (Mapping const &)=delete |
|
Mapping & | operator= (Mapping &&)=default |
|
std::shared_ptr< Mapping > | copy () const |
| Return a deep copy of this object. More...
|
|
int | getNIn () const |
|
int | getNOut () const |
|
bool | getIsSimple () const |
|
bool | isInverted () const |
|
bool | getIsLinear () const |
|
bool | getReport () const |
|
bool | hasForward () const |
|
bool | hasInverse () const |
|
std::shared_ptr< Mapping > | inverted () const |
|
Array2D | linearApprox (PointD const &lbnd, PointD const &ubnd, double tol) const |
|
SeriesMap | then (Mapping const &next) const |
|
ParallelMap | under (Mapping const &next) const |
|
double | rate (PointD const &at, int ax1, int ax2) const |
|
void | setReport (bool report) |
|
std::shared_ptr< Mapping > | simplified () const |
|
void | applyForward (ConstArray2D const &from, Array2D const &to) const |
|
Array2D | applyForward (ConstArray2D const &from) const |
|
std::vector< double > | applyForward (std::vector< double > const &from) const |
|
void | applyInverse (ConstArray2D const &from, Array2D const &to) const |
|
Array2D | applyInverse (ConstArray2D const &from) const |
|
std::vector< double > | applyInverse (std::vector< double > const &from) const |
|
void | tranGridForward (PointI const &lbnd, PointI const &ubnd, double tol, int maxpix, Array2D const &to) const |
|
Array2D | tranGridForward (PointI const &lbnd, PointI const &ubnd, double tol, int maxpix, int nPts) const |
|
void | tranGridInverse (PointI const &lbnd, PointI const &ubnd, double tol, int maxpix, Array2D const &to) const |
|
Array2D | tranGridInverse (PointI const &lbnd, PointI const &ubnd, double tol, int maxpix, int nPts) const |
|
virtual | ~Object () |
|
| Object (Object const &object) |
| Copy constructor: make a deep copy. More...
|
|
| Object (Object &&)=default |
|
Object & | operator= (Object const &)=delete |
|
Object & | operator= (Object &&)=default |
|
bool | operator== (Object const &rhs) const |
|
bool | operator!= (Object const &rhs) const |
|
std::shared_ptr< Object > | copy () const |
| Return a deep copy of this object. More...
|
|
void | clear (std::string const &attrib) |
|
bool | hasAttribute (std::string const &attrib) const |
|
std::string | getClassName () const |
|
std::string | getID () const |
| Get ID: object identification string that is not copied. More...
|
|
std::string | getIdent () const |
| Get Ident: object identification string that is copied. More...
|
|
int | getNObject () const |
|
int | getObjSize () const |
| Get ObjSize: the in-memory size of the AST object in bytes. More...
|
|
int | getRefCount () const |
|
bool | getUseDefs () const |
| Get UseDefs: allow use of default values for Object attributes? More...
|
|
void | lock (bool wait) |
|
bool | same (Object const &other) const |
|
void | setID (std::string const &id) |
| Set ID: object identification string that is not copied. More...
|
|
void | setIdent (std::string const &ident) |
| Set Ident: object identification string that is copied. More...
|
|
void | setUseDefs (bool usedefs) |
| Set UseDefs: allow use of default values for Object attributes? More...
|
|
void | show (std::ostream &os, bool showComments=true) const |
|
std::string | show (bool showComments=true) const |
|
bool | test (std::string const &attrib) const |
|
void | unlock (bool report=false) |
|
AstObject const * | getRawPtr () const |
|
AstObject * | getRawPtr () |
|
|
virtual std::shared_ptr< Object > | copyPolymorphic () const override |
|
| PcdMap (AstPcdMap *rawptr) |
| Construct a PcdMap from a raw AST pointer. More...
|
|
| Mapping (AstMapping *rawMap) |
|
template<typename Class > |
std::shared_ptr< Class > | decompose (int i, bool copy) const |
|
| Object (AstObject *object) |
|
template<typename T , typename AstT > |
std::shared_ptr< T > | copyImpl () const |
|
bool | getB (std::string const &attrib) const |
|
std::string const | getC (std::string const &attrib) const |
|
double | getD (std::string const &attrib) const |
|
float | getF (std::string const &attrib) const |
|
int | getI (std::string const &attrib) const |
|
long int | getL (std::string const &attrib) const |
|
void | set (std::string const &setting) |
|
void | setB (std::string const &attrib, bool value) |
|
void | setC (std::string const &attrib, std::string const &value) |
|
void | setD (std::string const &attrib, double value) |
|
void | setF (std::string const &attrib, float value) |
|
void | setI (std::string const &attrib, int value) |
|
void | setL (std::string const &attrib, long int value) |
|
A PcdMap is a non-linear Mapping which transforms 2-dimensional positions to correct for the radial distortion introduced by some cameras and telescopes. This can take the form either of pincushion or barrel distortion, and is characterized by a single distortion coefficient. A PcdMap is specified by giving this distortion coefficient and the coordinates of the centre of the radial distortion. The forward transformation of a PcdMap applies the distortion:
RD = R * ( 1 + disco * R * R )
where R
is the undistorted radial distance from pcdcen
, the distortion centre, RD
is the radial distance from the same centre in the presence of distortion.
The inverse transformation of a PcdMap removes the distortion produced by the forward transformation. The expression used to derive R
from RD
is an approximate inverse of the expression above, obtained from two iterations of the Newton-Raphson method. The mismatch between the forward and inverse expressions is negligible for astrometric applications (to reach 1 milliarcsec at the edge of the Anglo-Australian Telescope triplet or a Schmidt field would require field diameters of 2.4 and 42 degrees respectively).
Attributes
In addition to those attributes provided by Mapping and Object, PcdMap has the following attributes:
Disco
: pincushion/barrel distortion coefficient.
The pincushion/barrel distortion coefficient. For pincushion distortion, the value should be positive. For barrel distortion, it should be negative. 0 gives no distortion.
Note that the forward transformation of a PcdMap applies the distortion specified by this attribute and the inverse transformation removes this distortion.
PcdCen(axis)
: Centre coordinates of pincushion/barrel distortion.