A class for fitting multiple Gaussian components to an image and generating model and residual images.
More...
#include <ImageFitter.h>
|
| | ImageFitter () |
| | Constructor for the ImageFitter class.
|
| |
| bool | FitImage (size_t width, size_t height, float *image, double beam_size, string unit, std::vector< CARTA::GaussianComponent > &initial_values, const std::vector< bool > &fixed_params, double background_offset, CARTA::FittingSolverType solver, bool create_model_image, bool create_residual_image, CARTA::FittingResponse &fitting_response, GeneratorProgressCallback progress_callback, size_t offset_x=0, size_t offset_y=0) |
| | Fit Gaussian components to an image and generate fitting results along with model and residual data.
|
| |
| bool | GetGeneratedImages (std::shared_ptr< casacore::ImageInterface< float > > image, const casacore::ImageRegion &image_region, const std::string &filename, GeneratedImage &model_image, GeneratedImage &residual_image, CARTA::FittingResponse &fitting_response) |
| | Generate model and residual images based on the fitting results.
|
| |
| void | StopFitting () |
| | Stop the ongoing fitting process.
|
| |
|
| void | CalculateNanNumAndStd () |
| | Calculate the number of NaN values and standard deviation of the image data.
|
| |
| bool | SetInitialValues (const std::vector< CARTA::GaussianComponent > &initial_values, double background_offset, const std::vector< bool > &fixed_params) |
| | Set initial fitting parameters for the fitting.
|
| |
| int | SolveSystem (CARTA::FittingSolverType solver) |
| | Main function for the multiple Gaussian image fitting.
|
| |
| void | CalculateErrors () |
| | Calculate parameter errors after fitting.
|
| |
| void | CalculateImageData (const gsl_vector *residual) |
| | Calculate the model and residual image data after fitting.
|
| |
| std::string | GetLog () |
| | Retrieve a log message describing the fitting status.
|
| |
| casa::SPIIF | GetImageData (casa::SPIIF image, const casacore::ImageRegion &image_region, std::vector< float > image_data) |
| | Generate a casacore ImageInterface object from the provided image data.
|
| |
| std::string | GetFilename (const std::string &filename, std::string suffix) |
| | Generate filenames by adding a suffix.
|
| |
| std::string | GetGeneratedMomentFilename (const std::string &filename, std::string suffix) |
| | Generate filenames by adding a suffix for generated moment images.
|
| |
|
| static int | FuncF (const gsl_vector *fit_params, void *fit_data, gsl_vector *f) |
| | Calculate the residual of the image data with the provided fitting parameters.
|
| |
| static void | Callback (const size_t iter, void *params, const gsl_multifit_nlinear_workspace *w) |
| | Called after each iteration of the fitting.
|
| |
| static void | ErrorHandler (const char *reason, const char *file, int line, int gsl_errno) |
| | Customize GSL errors.
|
| |
| static GaussianParams | GetGaussianParams (const gsl_vector *value_vector, size_t index, std::vector< int > &fit_values_indexes, std::vector< double > &initial_values, size_t offset_x=0, size_t offset_y=0) |
| | Extract Gaussian parameters from a vector.
|
| |
| static double | GetMedianAbsDeviation (const size_t n, double x[]) |
| | Calculate the Median Absolute Deviation (MAD) of an array of data.
|
| |
A class for fitting multiple Gaussian components to an image and generating model and residual images.
◆ ImageFitter()
| ImageFitter::ImageFitter |
( |
| ) |
|
◆ CalculateErrors()
| void ImageFitter::CalculateErrors |
( |
| ) |
|
|
private |
Calculate parameter errors after fitting.
◆ CalculateImageData()
| void ImageFitter::CalculateImageData |
( |
const gsl_vector * |
residual | ) |
|
|
private |
Calculate the model and residual image data after fitting.
- Parameters
-
| residual | Pointer to the residual values |
◆ CalculateNanNumAndStd()
| void ImageFitter::CalculateNanNumAndStd |
( |
| ) |
|
|
private |
Calculate the number of NaN values and standard deviation of the image data.
◆ Callback()
| void ImageFitter::Callback |
( |
const size_t |
iter, |
|
|
void * |
params, |
|
|
const gsl_multifit_nlinear_workspace * |
w |
|
) |
| |
|
staticprivate |
Called after each iteration of the fitting.
- Parameters
-
| iter | The current iteration number |
| params | Fitting parameters |
| w | The workspace for the fitting |
◆ ErrorHandler()
| void ImageFitter::ErrorHandler |
( |
const char * |
reason, |
|
|
const char * |
file, |
|
|
int |
line, |
|
|
int |
gsl_errno |
|
) |
| |
|
staticprivate |
Customize GSL errors.
- Parameters
-
| reason | The error reason |
| file | The source file where the error occurred |
| line | The line number where the error occurred |
| gsl_errno | The GSL error number |
◆ FitImage()
| bool ImageFitter::FitImage |
( |
size_t |
width, |
|
|
size_t |
height, |
|
|
float * |
image, |
|
|
double |
beam_size, |
|
|
string |
unit, |
|
|
std::vector< CARTA::GaussianComponent > & |
initial_values, |
|
|
const std::vector< bool > & |
fixed_params, |
|
|
double |
background_offset, |
|
|
CARTA::FittingSolverType |
solver, |
|
|
bool |
create_model_image, |
|
|
bool |
create_residual_image, |
|
|
CARTA::FittingResponse & |
fitting_response, |
|
|
GeneratorProgressCallback |
progress_callback, |
|
|
size_t |
offset_x = 0, |
|
|
size_t |
offset_y = 0 |
|
) |
| |
Fit Gaussian components to an image and generate fitting results along with model and residual data.
- Parameters
-
| width | The width of the image |
| height | The height of the image |
| image | Pointer to the image data |
| beam_size | Beam size of the image |
| unit | Unit of the image |
| initial_values | Initial values of the fixed and unfixed Gaussian parameters |
| fixed_params | Whether the fitting parameters are fixed |
| background_offset | Background offset of the image |
| solver | The type of solver to use. |
| create_model_image | Whether to create a model image |
| create_residual_image | Whether to create a residual image |
| fitting_response | The fitting response message |
| progress_callback | Callback function for updating fitting progress |
| offset_x | X-axis offset from the fitting region to the entire image |
| offset_y | Y-axis offset from the fitting region to the entire image |
- Returns
- Whether the fitting is successful
◆ FuncF()
| int ImageFitter::FuncF |
( |
const gsl_vector * |
fit_params, |
|
|
void * |
fit_data, |
|
|
gsl_vector * |
f |
|
) |
| |
|
staticprivate |
Calculate the residual of the image data with the provided fitting parameters.
- Parameters
-
| fit_params | Fitting parameters |
| fit_data | Fitting-related data |
| f | The residual of the image data |
◆ GetFilename()
| std::string ImageFitter::GetFilename |
( |
const std::string & |
filename, |
|
|
std::string |
suffix |
|
) |
| |
|
private |
Generate filenames by adding a suffix.
- Parameters
-
| filename | Name of the fitting image file |
| suffix | The suffix to add |
- Returns
- The modified filename
◆ GetGaussianParams()
| GaussianParams ImageFitter::GetGaussianParams |
( |
const gsl_vector * |
value_vector, |
|
|
size_t |
index, |
|
|
std::vector< int > & |
fit_values_indexes, |
|
|
std::vector< double > & |
initial_values, |
|
|
size_t |
offset_x = 0, |
|
|
size_t |
offset_y = 0 |
|
) |
| |
|
staticprivate |
Extract Gaussian parameters from a vector.
- Parameters
-
| value_vector | The vector containing fitting parameters |
| index | The index of the Gaussian component |
| fit_values_indexes | Indexes of the Gaussian parameters in the fittig parameters |
| initial_values | Initial fitting parameter |
| offset_x | X-axis offset from the fitting region to the entire image |
| offset_y | Y-axis offset from the fitting region to the entire image |
- Returns
- Gaussian parameters including center x, center y, amplitude, FWHM x, FWHM y, and position angle
◆ GetGeneratedImages()
| bool ImageFitter::GetGeneratedImages |
( |
std::shared_ptr< casacore::ImageInterface< float > > |
image, |
|
|
const casacore::ImageRegion & |
image_region, |
|
|
const std::string & |
filename, |
|
|
GeneratedImage & |
model_image, |
|
|
GeneratedImage & |
residual_image, |
|
|
CARTA::FittingResponse & |
fitting_response |
|
) |
| |
Generate model and residual images based on the fitting results.
- Parameters
-
| image | Pointer to the casacore ImageInterface object |
| image_region | The fitting region |
| filename | Name of the fitting image file |
| model_image | The generated model image |
| residual_image | The generated residual image |
| fitting_response | The fitting response message |
- Returns
- Whether the images are successfully generated
◆ GetGeneratedMomentFilename()
| std::string carta::ImageFitter::GetGeneratedMomentFilename |
( |
const std::string & |
filename, |
|
|
std::string |
suffix |
|
) |
| |
|
private |
Generate filenames by adding a suffix for generated moment images.
- Parameters
-
| filename | Name of the fitting image file |
| suffix | The suffix to add |
- Returns
- The modified filename
◆ GetImageData()
| casa::SPIIF ImageFitter::GetImageData |
( |
casa::SPIIF |
image, |
|
|
const casacore::ImageRegion & |
image_region, |
|
|
std::vector< float > |
image_data |
|
) |
| |
|
private |
Generate a casacore ImageInterface object from the provided image data.
- Parameters
-
| image | The casacore ImageInterface object of the entire image |
| image_region | The fitting region |
| image_data | The image data for the generated casacore ImageInterface object |
- Returns
- A casacore ImageInterface object
◆ GetLog()
| std::string ImageFitter::GetLog |
( |
| ) |
|
|
private |
Retrieve a log message describing the fitting status.
- Returns
- The log message
◆ GetMedianAbsDeviation()
| double ImageFitter::GetMedianAbsDeviation |
( |
const size_t |
n, |
|
|
double |
x[] |
|
) |
| |
|
staticprivate |
Calculate the Median Absolute Deviation (MAD) of an array of data.
- Parameters
-
| n | The number of data points in the array |
| x | An array containing the data points |
- Returns
- The calculated MAD
◆ SetInitialValues()
| bool ImageFitter::SetInitialValues |
( |
const std::vector< CARTA::GaussianComponent > & |
initial_values, |
|
|
double |
background_offset, |
|
|
const std::vector< bool > & |
fixed_params |
|
) |
| |
|
private |
Set initial fitting parameters for the fitting.
- Parameters
-
| initial_values | Initial fitting parameters |
| background_offset | Background offset of the image |
| fixed_params | Whether the fitting parameters are fixed |
- Returns
- Whether all parameters are valid
◆ SolveSystem()
| int ImageFitter::SolveSystem |
( |
CARTA::FittingSolverType |
solver | ) |
|
|
private |
Main function for the multiple Gaussian image fitting.
- Parameters
-
| solver | The type of solver to use |
- Returns
- The status of the fitting: zero for success or non-zero for error codes
◆ StopFitting()
| void ImageFitter::StopFitting |
( |
| ) |
|
Stop the ongoing fitting process.
◆ _beam_size
| double carta::ImageFitter::_beam_size |
|
private |
◆ _create_model_data
| bool carta::ImageFitter::_create_model_data |
|
private |
Whether to create a model image.
◆ _create_residual_data
| bool carta::ImageFitter::_create_residual_data |
|
private |
Whether to create a residual image.
◆ _fdf
| gsl_multifit_nlinear_fdf carta::ImageFitter::_fdf |
|
private |
Object for the fitting model.
◆ _fit_data
| FitData carta::ImageFitter::_fit_data |
|
private |
◆ _fit_errors
| gsl_vector* carta::ImageFitter::_fit_errors |
|
private |
Fitting parameter errors.
◆ _fit_status
Status of the fitting result.
◆ _fit_values
| gsl_vector* carta::ImageFitter::_fit_values |
|
private |
Fitting parameter values.
◆ _image_std
| double carta::ImageFitter::_image_std |
|
private |
Standard deviation of the image data.
◆ _integrated_flux_errors
| std::vector<double> carta::ImageFitter::_integrated_flux_errors |
|
private |
Integrated flux errors of components.
◆ _integrated_flux_values
| std::vector<double> carta::ImageFitter::_integrated_flux_values |
|
private |
Integrated flux values of components.
◆ _max_iter
| const size_t carta::ImageFitter::_max_iter = 200 |
|
private |
Maximum number of fitting iterations.
◆ _model_data
| std::vector<float> carta::ImageFitter::_model_data |
|
private |
◆ _num_components
| size_t carta::ImageFitter::_num_components |
|
private |
Number of Gaussian components.
◆ _progress_callback
Callback function for updating fitting progress.
◆ _residual_data
| std::vector<float> carta::ImageFitter::_residual_data |
|
private |
◆ _unit
| string carta::ImageFitter::_unit |
|
private |
The documentation for this class was generated from the following files: