|
mxlib
c++ tools for analyzing astronomical data and other tasks by Jared R. Males. [git repo]
|
Class to manage fitting a 2D Moffat to data via the levmarInterface.
Fits The Moffat Function to a 2-dimensional array of data.
This class allows for treating any of the parameters as fixed.
| fitterT | a type meeting the requirements specified in levmarInterface. |
Definition at line 449 of file fitMoffat.hpp.
#include <math/fit/fitMoffat.hpp>
Inheritance diagram for mx::math::fit::fitMoffat2D< fitterT >:Public Member Functions | |
| void | setFixed (bool I0, bool I, bool x0, bool y0, bool alpha, bool beta) |
| Set whether each parameter is fixed. | |
| void | setGuess (realT I0, realT I, realT x0, realT y0, realT alpha, realT beta) |
| Set the initial guess for a symmetric Moffat. | |
| void | setArray (realT *data, int nx, int ny) |
| Set the data aray. | |
| realT | I0 () |
| Get the current value of I0, the constant. | |
| realT | I () |
| Get the current value of I, the peak scaling. | |
| realT | x0 () |
| Get the center x-. | |
| realT | y0 () |
| Get the center y-coordinate. | |
| realT | alpha () |
| Return the width parameter. | |
| realT | beta () |
| Return the shape parameter. | |
| realT | fwhm () |
| Return the full-width at half maximum. | |
Public Member Functions inherited from mx::math::fit::levmarInterface< fitterT > | |
| levmarInterface () | |
| Default constructor. | |
| levmarInterface (realT *i_p, realT *i_x, int i_m, int i_n, void *i_adata) | |
| Setup constructor. | |
| ~levmarInterface () | |
| Destructor. | |
| void | nParams (int i_m) |
| Set number of parameters, but don't allocate. | |
| int | nParams () |
| Get the current number of parameters. | |
| void | allocate_params () |
| Allocate parameters array based on previous call to nParams. | |
| void | allocate_params (int i_m) |
| Set number of parameters and allocate. | |
| void | point_params (realT *i_p) |
| Point the parameter pointer at an externally allocated array. | |
| void | point_params (realT *i_p, int i_m) |
| Point the parameter pointer at an externally allocated array. | |
| void | set_params (realT *i_p) |
| Copy parameters to the parameter array. | |
| realT * | get_params () |
| Get current pointer array address. | |
| void | set_itmax (int i_itmax) |
| Set the maximum number of iterations. | |
| int | get_itmax () |
| Get the maximum number of iterations. | |
| void | allocate_work () |
| Allocate the work and covar matrices. | |
| void | set_opts (int n, realT val) |
| Set one of the minimization options to val. | |
| void | set_opts_default (int n=-1) |
| Set one or all of the minimization options to the default. | |
| realT | get_opts (int n) |
| Get the current value of an option. | |
| int | fit () |
| Perform the fit. | |
| realT | get_initial_norm () |
| Returns the L2-norm before minimization occurs. | |
| realT | get_final_norm () |
| Returns the L2-norm at the end of the minimization. | |
| int | get_iterations () |
| Get the number of iterations taken during the minimization. | |
| int | get_reason_code () |
| Get a code specifying the reason minimization terminated. | |
| std::string | get_reason_string () |
| Get the descriptive string describing the reason minimization terminated. | |
| int | get_fevals () |
| Get the number of function evaluations during the minimization. | |
| int | get_jevals () |
| Get the number of jacobian evaluations during the minimization. | |
| int | get_nlinsys () |
| Get the number of linear system solutions during the minimization. | |
| double | get_deltaT () |
| Get the elapsed time of the fit. | |
| template<typename iosT , char comment = '#'> | |
| iosT & | dumpParameters (iosT &ios) |
| Output current parameters to a stream. | |
| template<char comment = '#'> | |
| std::ostream & | dumpParameters () |
| Dump the parameter vector to stdout. | |
| template<typename iosT , char comment = '#'> | |
| iosT & | dumpReport (iosT &ios, bool dumpParams=true) |
| Output current parameters to a stream. | |
| template<char comment = '#'> | |
| std::ostream & | dumpReport (bool dumpParams=true) |
| Dump a status report to stdout. | |
Additional Inherited Members | |
Public Attributes inherited from mx::math::fit::levmarInterface< fitterT > | |
| realT * | x |
| I: measurement vector. NULL implies a zero vector. | |
| int | n |
| I: measurement vector dimension. | |
| realT | opts [LM_OPTS_SZ] |
| Options passed to the minimization routines. See set_opts for details. | |
| realT | info [LM_INFO_SZ] |
| Information regarding the minimization. | |
| double | deltaT |
| Elapsed time of the fitting procedure. | |
| realT * | work |
| Working memory passed to the levmar routines. | |
| int | work_sz |
| The current size of the work array. | |
| realT * | covar |
| Covariance matrix corresponding to LS solution; mxm. | |
| int | covar_sz |
| The current size of the covar array. | |
| bool | getCovar |
| Controls whether the covar array is allocated. | |
| void * | adata |
| Pointer to possibly additional data, passed uninterpreted to func & jacf. | |
Protected Attributes inherited from mx::math::fit::levmarInterface< fitterT > | |
| realT * | p |
| Parameter array. On input is the initial estimates. On output has the estimated solution. | |
| realT * | init_p |
| Parameter array on input, saved for comparison. | |
| int | m |
| Parameter vector dimension (i.e. number of unknowns) | |
| bool | own_p |
| Flag indicating whether the p array is owned by this object (for de-allocation). | |
| int | itmax |
| Maximum number of iterations, default is 100. | |
|
inline |
Return the width parameter.
Definition at line 559 of file fitMoffat.hpp.
Referenced by mx::math::fit::fitMoffat2D< fitterT >::fwhm(), mx::math::fit::fitMoffat2D< fitterT >::setFixed(), and mx::math::fit::fitMoffat2D< fitterT >::setGuess().
|
inline |
Return the shape parameter.
Definition at line 568 of file fitMoffat.hpp.
Referenced by mx::math::fit::fitMoffat2D< fitterT >::fwhm(), mx::math::fit::fitMoffat2D< fitterT >::setFixed(), and mx::math::fit::fitMoffat2D< fitterT >::setGuess().
|
inline |
Return the full-width at half maximum.
Definition at line 577 of file fitMoffat.hpp.
References mx::math::fit::fitMoffat2D< fitterT >::alpha(), mx::math::fit::fitMoffat2D< fitterT >::beta(), and mx::math::func::moffatFWHM().
|
inline |
Get the current value of I, the peak scaling.
Definition at line 532 of file fitMoffat.hpp.
Referenced by mx::math::fit::fitMoffat2D< fitterT >::setFixed(), and mx::math::fit::fitMoffat2D< fitterT >::setGuess().
|
inline |
Get the current value of I0, the constant.
Definition at line 523 of file fitMoffat.hpp.
Referenced by mx::math::fit::fitMoffat2D< fitterT >::setFixed(), and mx::math::fit::fitMoffat2D< fitterT >::setGuess().
|
inline |
Set the data aray.
| [in] | data | pointer to an nx X ny array of data to be fit |
| [in] | nx | the number of pixels in the x direction of the data array |
| [in] | ny | the number of pixels in the y direction of the data array |
Definition at line 507 of file fitMoffat.hpp.
References mx::math::fit::array2FitMoffat< realT >::data, mx::math::fit::levmarInterface< fitterT >::n, mx::math::fit::array2FitMoffat< realT >::nx, and mx::math::fit::array2FitMoffat< realT >::ny.
|
inline |
Set whether each parameter is fixed.
Sets the parameter indices appropriately.
| [in] | I0 | if true, then I0 will be not be part of the fit |
| [in] | I | if true, then I will be not be part of the fit |
| [in] | x0 | if true, then x0 will be not be part of the fit |
| [in] | y0 | if true, then y0 will be not be part of the fit |
| [in] | alpha | if true, then alpha will be not be part of the fit |
| [in] | beta | if true, then beta will be not be part of the fit |
Definition at line 477 of file fitMoffat.hpp.
References mx::math::fit::levmarInterface< fitterT >::allocate_params(), mx::math::fit::fitMoffat2D< fitterT >::alpha(), mx::math::fit::fitMoffat2D< fitterT >::beta(), mx::math::fit::fitMoffat2D< fitterT >::I(), mx::math::fit::fitMoffat2D< fitterT >::I0(), mx::math::fit::array2FitMoffat< realT >::setFixed(), mx::math::fit::fitMoffat2D< fitterT >::x0(), and mx::math::fit::fitMoffat2D< fitterT >::y0().
|
inline |
Set the initial guess for a symmetric Moffat.
| [in] | I0 | the constant background level |
| [in] | I | the peak scaling |
| [in] | x0 | the center x-coordinate |
| [in] | y0 | the center y-coordinate |
| [in] | alpha | the width parameter |
| [in] | beta | the shape parameter |
Definition at line 490 of file fitMoffat.hpp.
References mx::math::fit::fitMoffat2D< fitterT >::alpha(), mx::math::fit::fitMoffat2D< fitterT >::beta(), mx::math::fit::fitMoffat2D< fitterT >::I(), mx::math::fit::fitMoffat2D< fitterT >::I0(), mx::math::fit::fitMoffat2D< fitterT >::x0(), and mx::math::fit::fitMoffat2D< fitterT >::y0().
|
inline |
Get the center x-.
Definition at line 541 of file fitMoffat.hpp.
Referenced by mx::math::fit::fitMoffat2D< fitterT >::setFixed(), and mx::math::fit::fitMoffat2D< fitterT >::setGuess().
|
inline |
Get the center y-coordinate.
Definition at line 550 of file fitMoffat.hpp.
Referenced by mx::math::fit::fitMoffat2D< fitterT >::setFixed(), and mx::math::fit::fitMoffat2D< fitterT >::setGuess().