SourceXtractorPlusPlus 1.0.3
SourceXtractor++, the next generation SExtractor
Loading...
Searching...
No Matches
SourceXtractor::FlexibleModelFittingIterativeTask Class Reference

#include <FlexibleModelFittingIterativeTask.h>

Inheritance diagram for SourceXtractor::FlexibleModelFittingIterativeTask:
Collaboration diagram for SourceXtractor::FlexibleModelFittingIterativeTask:

Classes

struct  FittingEllipse
struct  FittingState
struct  SourceState

Public Types

enum class  WindowType {
  RECTANGLE = 1 , SQUARE_MIN = 2 , SQUARE_MAX = 3 , SQUARE_AREA = 4 ,
  DISK_MIN = 5 , DISK_MAX = 6 , DISK_AREA = 7 , ALIGNED_ELLIPSE = 8 ,
  ROTATED_ELLIPSE = 9
}

Public Member Functions

 FlexibleModelFittingIterativeTask (const std::string &least_squares_engine, unsigned int max_iterations, double modified_chi_squared_scale, std::vector< std::shared_ptr< FlexibleModelFittingParameter > > parameters, std::vector< std::shared_ptr< FlexibleModelFittingFrame > > frames, std::vector< std::shared_ptr< FlexibleModelFittingPrior > > priors, std::vector< bool > should_renormalize, double scale_factor=1.0, int meta_iterations=3, double deblend_factor=1.0, double meta_iteration_stop=0.0001, size_t max_fit_size=100, WindowType window_type=WindowType::RECTANGLE, double ellipse_scale=3.0)
virtual ~FlexibleModelFittingIterativeTask ()
void computeProperties (SourceGroupInterface &group) const override
 Computes one or more properties for the SourceGroup and/or the Sources it contains.
Public Member Functions inherited from SourceXtractor::GroupTask
virtual ~GroupTask ()=default
 Destructor.
Public Member Functions inherited from SourceXtractor::Task
virtual ~Task ()=default
 Destructor.

Private Member Functions

PixelRectangle getFittingRect (SourceInterface &source, int frame_index) const
std::shared_ptr< VectorImage< SeFloat > > createDeblendImage (SourceGroupInterface &group, SourceInterface &source, int source_index, std::shared_ptr< FlexibleModelFittingFrame > frame, FittingState &state) const
std::shared_ptr< VectorImage< SeFloat > > createWeightImage (SourceInterface &source, int frame_index) const
bool isFrameValid (SourceInterface &source, int frame_index) const
std::shared_ptr< VectorImage< SeFloat > > createImageCopy (SourceInterface &source, int frame_index) const
void fitSource (SourceGroupInterface &group, SourceInterface &source, int index, FittingState &state) const
void updateCheckImages (SourceGroupInterface &group, double pixel_scale, FittingState &state) const
SeFloat computeChiSquared (SourceGroupInterface &group, SourceInterface &source, int index, double pixel_scale, FlexibleModelFittingParameterManager &manager, int &total_data_points, FittingState &state) const
SeFloat computeChiSquaredForFrame (std::shared_ptr< const Image< SeFloat > > image, std::shared_ptr< const Image< SeFloat > > model, std::shared_ptr< const Image< SeFloat > > weights, int &data_points) const
int fitSourcePrepareParameters (FlexibleModelFittingParameterManager &parameter_manager, ModelFitting::EngineParameterManager &engine_parameter_manager, SourceInterface &source, int index, FittingState &state) const
int fitSourcePrepareModels (FlexibleModelFittingParameterManager &parameter_manager, ModelFitting::ResidualEstimator &res_estimator, int &good_pixels, SourceGroupInterface &group, SourceInterface &source, int index, FittingState &state, double downscaling) const
SeFloat fitSourceComputeChiSquared (FlexibleModelFittingParameterManager &parameter_manager, SourceGroupInterface &group, SourceInterface &source, int index, FittingState &state) const
void fitSourceUpdateState (FlexibleModelFittingParameterManager &parameter_manager, SourceInterface &source, SeFloat avg_reduced_chi_squared, SeFloat duration, unsigned int iterations, unsigned int stop_reason, Flags flags, ModelFitting::LeastSquareSummary solution, int index, FittingState &state) const
FlexibleModelFittingIterativeTask::FittingEllipse getFittingEllipse (SourceInterface &source, int frame_index) const
PixelRectangle getEllipseRect (FittingEllipse ellipse) const
FlexibleModelFittingIterativeTask::FittingEllipse transformEllipse (FittingEllipse ellipse, SourceInterface &source, int frame_index) const
PixelRectangle clipFittingRect (PixelRectangle fitting_rect, SourceInterface &source, int frame_index) const
PixelRectangle getUnclippedFittingRect (SourceInterface &source, int frame_index) const
ModelFitting::FrameModel< DownSampledImagePsf, std::shared_ptr< VectorImage< SourceXtractor::SeFloat > > > createFrameModel (SourceInterface &source, double pixel_scale, FlexibleModelFittingParameterManager &manager, std::shared_ptr< FlexibleModelFittingFrame > frame, PixelRectangle stamp_rect, double down_scaling=1.0) const

Private Attributes

std::string m_least_squares_engine
unsigned int m_max_iterations
double m_modified_chi_squared_scale
double m_scale_factor
int m_meta_iterations
double m_deblend_factor
double m_meta_iteration_stop
size_t m_max_fit_size
std::vector< std::shared_ptr< FlexibleModelFittingParameter > > m_parameters
std::vector< std::shared_ptr< FlexibleModelFittingFrame > > m_frames
std::vector< std::shared_ptr< FlexibleModelFittingPrior > > m_priors
std::vector< bool > m_should_renormalize
WindowType m_window_type { WindowType::RECTANGLE }
double m_ellipse_scale = 3.0

Detailed Description

Definition at line 39 of file FlexibleModelFittingIterativeTask.h.

Member Enumeration Documentation

◆ WindowType

Enumerator
RECTANGLE 
SQUARE_MIN 
SQUARE_MAX 
SQUARE_AREA 
DISK_MIN 
DISK_MAX 
DISK_AREA 
ALIGNED_ELLIPSE 
ROTATED_ELLIPSE 

Definition at line 42 of file FlexibleModelFittingIterativeTask.h.

Constructor & Destructor Documentation

◆ FlexibleModelFittingIterativeTask()

SourceXtractor::FlexibleModelFittingIterativeTask::FlexibleModelFittingIterativeTask ( const std::string & least_squares_engine,
unsigned int max_iterations,
double modified_chi_squared_scale,
std::vector< std::shared_ptr< FlexibleModelFittingParameter > > parameters,
std::vector< std::shared_ptr< FlexibleModelFittingFrame > > frames,
std::vector< std::shared_ptr< FlexibleModelFittingPrior > > priors,
std::vector< bool > should_renormalize,
double scale_factor = 1.0,
int meta_iterations = 3,
double deblend_factor = 1.0,
double meta_iteration_stop = 0.0001,
size_t max_fit_size = 100,
WindowType window_type = WindowType::RECTANGLE,
double ellipse_scale = 3.0 )

◆ ~FlexibleModelFittingIterativeTask()

SourceXtractor::FlexibleModelFittingIterativeTask::~FlexibleModelFittingIterativeTask ( )
virtual

Definition at line 73 of file FlexibleModelFittingIterativeTask.cpp.

Member Function Documentation

◆ clipFittingRect()

PixelRectangle SourceXtractor::FlexibleModelFittingIterativeTask::clipFittingRect ( PixelRectangle fitting_rect,
SourceInterface & source,
int frame_index ) const
private

◆ computeChiSquared()

SeFloat SourceXtractor::FlexibleModelFittingIterativeTask::computeChiSquared ( SourceGroupInterface & group,
SourceInterface & source,
int index,
double pixel_scale,
FlexibleModelFittingParameterManager & manager,
int & total_data_points,
FittingState & state ) const
private

◆ computeChiSquaredForFrame()

SeFloat SourceXtractor::FlexibleModelFittingIterativeTask::computeChiSquaredForFrame ( std::shared_ptr< const Image< SeFloat > > image,
std::shared_ptr< const Image< SeFloat > > model,
std::shared_ptr< const Image< SeFloat > > weights,
int & data_points ) const
private

Definition at line 848 of file FlexibleModelFittingIterativeTask.cpp.

References SourceXtractor::ImageAccessor< T >::getValue().

Referenced by computeChiSquared().

Here is the call graph for this function:

◆ computeProperties()

void SourceXtractor::FlexibleModelFittingIterativeTask::computeProperties ( SourceGroupInterface & group) const
overridevirtual

◆ createDeblendImage()

◆ createFrameModel()

◆ createImageCopy()

◆ createWeightImage()

◆ fitSource()

◆ fitSourceComputeChiSquared()

SeFloat SourceXtractor::FlexibleModelFittingIterativeTask::fitSourceComputeChiSquared ( FlexibleModelFittingParameterManager & parameter_manager,
SourceGroupInterface & group,
SourceInterface & source,
int index,
FittingState & state ) const
private

◆ fitSourcePrepareModels()

int SourceXtractor::FlexibleModelFittingIterativeTask::fitSourcePrepareModels ( FlexibleModelFittingParameterManager & parameter_manager,
ModelFitting::ResidualEstimator & res_estimator,
int & good_pixels,
SourceGroupInterface & group,
SourceInterface & source,
int index,
FittingState & state,
double downscaling ) const
private

◆ fitSourcePrepareParameters()

int SourceXtractor::FlexibleModelFittingIterativeTask::fitSourcePrepareParameters ( FlexibleModelFittingParameterManager & parameter_manager,
ModelFitting::EngineParameterManager & engine_parameter_manager,
SourceInterface & source,
int index,
FittingState & state ) const
private

◆ fitSourceUpdateState()

void SourceXtractor::FlexibleModelFittingIterativeTask::fitSourceUpdateState ( FlexibleModelFittingParameterManager & parameter_manager,
SourceInterface & source,
SeFloat avg_reduced_chi_squared,
SeFloat duration,
unsigned int iterations,
unsigned int stop_reason,
Flags flags,
ModelFitting::LeastSquareSummary solution,
int index,
FittingState & state ) const
private

◆ getEllipseRect()

◆ getFittingEllipse()

◆ getFittingRect()

PixelRectangle SourceXtractor::FlexibleModelFittingIterativeTask::getFittingRect ( SourceInterface & source,
int frame_index ) const
private

◆ getUnclippedFittingRect()

PixelRectangle SourceXtractor::FlexibleModelFittingIterativeTask::getUnclippedFittingRect ( SourceInterface & source,
int frame_index ) const
private

◆ isFrameValid()

bool SourceXtractor::FlexibleModelFittingIterativeTask::isFrameValid ( SourceInterface & source,
int frame_index ) const
private

Definition at line 236 of file FlexibleModelFittingIterativeTask.cpp.

References getFittingRect().

Referenced by computeChiSquared(), computeProperties(), fitSource(), fitSourcePrepareModels(), and updateCheckImages().

Here is the call graph for this function:

◆ transformEllipse()

◆ updateCheckImages()

Member Data Documentation

◆ m_deblend_factor

double SourceXtractor::FlexibleModelFittingIterativeTask::m_deblend_factor
private

◆ m_ellipse_scale

double SourceXtractor::FlexibleModelFittingIterativeTask::m_ellipse_scale = 3.0
private

◆ m_frames

◆ m_least_squares_engine

std::string SourceXtractor::FlexibleModelFittingIterativeTask::m_least_squares_engine
private

◆ m_max_fit_size

size_t SourceXtractor::FlexibleModelFittingIterativeTask::m_max_fit_size
private

◆ m_max_iterations

unsigned int SourceXtractor::FlexibleModelFittingIterativeTask::m_max_iterations
private

◆ m_meta_iteration_stop

double SourceXtractor::FlexibleModelFittingIterativeTask::m_meta_iteration_stop
private

◆ m_meta_iterations

int SourceXtractor::FlexibleModelFittingIterativeTask::m_meta_iterations
private

◆ m_modified_chi_squared_scale

double SourceXtractor::FlexibleModelFittingIterativeTask::m_modified_chi_squared_scale
private

◆ m_parameters

◆ m_priors

std::vector<std::shared_ptr<FlexibleModelFittingPrior> > SourceXtractor::FlexibleModelFittingIterativeTask::m_priors
private

◆ m_scale_factor

double SourceXtractor::FlexibleModelFittingIterativeTask::m_scale_factor
private

◆ m_should_renormalize

std::vector<bool> SourceXtractor::FlexibleModelFittingIterativeTask::m_should_renormalize
private

◆ m_window_type

WindowType SourceXtractor::FlexibleModelFittingIterativeTask::m_window_type { WindowType::RECTANGLE }
private

The documentation for this class was generated from the following files: