PCL
pcl::PSFEstimator Class Reference

Base class of estimators based on PSF photometry. More...

#include <PSFEstimator.h>

+ Inheritance diagram for pcl::PSFEstimator:

Public Types

using psf_function = StarDetector::psf_function
 

Public Member Functions

 PSFEstimator ()=default
 
 PSFEstimator (const PSFEstimator &)=default
 
 ~PSFEstimator () override
 
StarDetectorDetector ()
 
const StarDetectorDetector () const
 
void DisablePSFWeighting (bool disable=true)
 
void DisableRelativeSaturation (bool disable=true)
 
void EnablePSFWeighting (bool enable=true)
 
void EnableRelativeSaturation (bool enable=true)
 
Array< PSFDataFitStars (const ImageVariant &image) const
 
float GrowthFactorForFluxMeasurement () const
 
bool IsPSFWeightingEnabled () const
 
bool IsRelativeSaturationEnabled () const
 
int MaxStars () const
 
PSFEstimatoroperator= (const PSFEstimator &)=default
 
float PSFCentroidTolerance () const
 
psf_function PSFType () const
 
float RejectionLimit () const
 
float SaturationThreshold () const
 
void SetGrowthFactorForFluxMeasurement (float k)
 
void SetMaxStars (int n)
 
void SetPSFCentroidTolerance (float t)
 
void SetPSFType (psf_function type)
 
void SetRejectionLimit (float r)
 
void SetSaturationThreshold (float t)
 
- Public Member Functions inherited from pcl::ParallelProcess
 ParallelProcess ()=default
 
 ParallelProcess (const ParallelProcess &)=default
 
virtual ~ParallelProcess ()
 
void DisableParallelProcessing (bool disable=true) noexcept
 
void EnableParallelProcessing (bool enable=true, int maxProcessors=0) noexcept
 
bool IsParallelProcessingEnabled () const noexcept
 
int MaxProcessors () const noexcept
 
ParallelProcessoperator= (const ParallelProcess &)=default
 
void SetMaxProcessors (int maxProcessors) noexcept
 
void Swap (ParallelProcess &process) noexcept
 

Detailed Description

Member Typedef Documentation

◆ psf_function

using pcl::PSFEstimator::psf_function = StarDetector::psf_function

Represents a point spread function type.

Definition at line 79 of file PSFEstimator.h.

Constructor & Destructor Documentation

◆ PSFEstimator() [1/2]

pcl::PSFEstimator::PSFEstimator ( )
default

Default constructor.

◆ PSFEstimator() [2/2]

pcl::PSFEstimator::PSFEstimator ( const PSFEstimator )
default

Copy constructor.

◆ ~PSFEstimator()

pcl::PSFEstimator::~PSFEstimator ( )
inlineoverride

Destroys a PSFEstimator object.

Definition at line 94 of file PSFEstimator.h.

Member Function Documentation

◆ Detector() [1/2]

StarDetector& pcl::PSFEstimator::Detector ( )
inline

Returns a reference to the (mutable) internal star detector used by this PSF estimator.

PSF fitting will always be performed as a separate step after star detection, so changing the PSF fitting parameters of the returned object will have no effect on the estimation tasks implemented by derived classes.

Definition at line 125 of file PSFEstimator.h.

◆ Detector() [2/2]

const StarDetector& pcl::PSFEstimator::Detector ( ) const
inline

Returns a reference to the (immutable) internal star detector used by this PSF estimator.

PSF fitting will always be performed as a separate step after star detection, so the PSF fitting parameters of the returned object are meaningless for the estimation tasks implemented by derived classes.

Definition at line 111 of file PSFEstimator.h.

◆ DisablePSFWeighting()

void pcl::PSFEstimator::DisablePSFWeighting ( bool  disable = true)
inline

Disables PSF weighting for this signal estimator. See IsPSFWeightingEnabled() for more information.

Definition at line 361 of file PSFEstimator.h.

◆ DisableRelativeSaturation()

void pcl::PSFEstimator::DisableRelativeSaturation ( bool  disable = true)
inline

Disables the relative saturation threshold option. See SaturationThreshold() and IsRelativeSaturationEnabled() for complete information on these parameters.

Definition at line 242 of file PSFEstimator.h.

◆ EnablePSFWeighting()

void pcl::PSFEstimator::EnablePSFWeighting ( bool  enable = true)
inline

Enables PSF weighting for this signal estimator. See IsPSFWeightingEnabled() for more information.

Definition at line 352 of file PSFEstimator.h.

◆ EnableRelativeSaturation()

void pcl::PSFEstimator::EnableRelativeSaturation ( bool  enable = true)
inline

Enables the relative saturation threshold option. See SaturationThreshold() and IsRelativeSaturationEnabled() for complete information on these parameters.

Definition at line 232 of file PSFEstimator.h.

◆ FitStars()

Array<PSFData> pcl::PSFEstimator::FitStars ( const ImageVariant image) const

Performs star detection, PSF fitting and signal evaluation for the specified image. Returns a list of PSFData structures for all valid PSF fits performed.

Star detection and PSF fitting will be performed for the current selection in the specified image, including its current rectangular selection and currently selected channel.

Note
This function is thread-safe. It can be invoked from multiple threads running concurrently.

◆ GrowthFactorForFluxMeasurement()

float pcl::PSFEstimator::GrowthFactorForFluxMeasurement ( ) const
inline

Returns the growing factor for expansion/contraction of the PSF flux measurement region, in units of the Full Width at Tenth Maximum (FWTM), assuming a normalized PSF of unit height.

The default value of this parameter is 1.0, meaning that flux is measured exclusively for pixels within the elliptical region defined at one tenth of the fitted PSF maximum.

Definition at line 289 of file PSFEstimator.h.

◆ IsPSFWeightingEnabled()

bool pcl::PSFEstimator::IsPSFWeightingEnabled ( ) const
inline

Returns true iff PSF weighting is enabled. When PSF weighting is enabled, each photometric PSF sample is multiplied by the inverse of the mean absolute deviation of the fitted PSF measured with respect to sampled image data.

PSF weighting is disabled by default.

Definition at line 343 of file PSFEstimator.h.

◆ IsRelativeSaturationEnabled()

bool pcl::PSFEstimator::IsRelativeSaturationEnabled ( ) const
inline

The saturation threshold parameter can be applied either as an absolute pixel sample value in the normalized [0,1] range, or as a value relative to the maximum pixel sample value of the measured image.

The relative saturation threshold option is enabled by default.

Definition at line 222 of file PSFEstimator.h.

◆ MaxStars()

int pcl::PSFEstimator::MaxStars ( ) const
inline

Returns the maximum number of stars that will be measured. Returns zero if no limit has been set on the maximum number of PSF measurements.

When a limit n greater than zero is specified, PSF-based estimation will be performed for no more than the n brightest stars detected in the target image.

The default value is zero, meaning that no specific limit is set.

Definition at line 315 of file PSFEstimator.h.

◆ operator=()

PSFEstimator& pcl::PSFEstimator::operator= ( const PSFEstimator )
default

Copy assignment operator. Returns a reference to this object.

◆ PSFCentroidTolerance()

float pcl::PSFEstimator::PSFCentroidTolerance ( ) const
inline

Returns the centroid tolerance in pixels.

The centroid tolerance is the maximum allowed distance in pixels between a detected star position (or barycenter) and the centroid position of the corresponding fitted PSF. Stars where that distance is greater than the value returned by this function will be rejected and excluded for estimation. This allows preventing PSF fits departing too much from detected star coordinates, which enforces robustness and stability of the PSF fitting process.

The default centroid tolerance is 1.5 pixels.

Definition at line 171 of file PSFEstimator.h.

◆ PSFType()

psf_function pcl::PSFEstimator::PSFType ( ) const
inline

Returns the type of point spread function (PSF) used by this estimator. Elliptical PSFs are always used for PSF-based evaluation.

This implementation supports the special PSFunction::Auto PSF type. When this type is selected, a series of different PSFs will be fitted for each source, and the fit that leads to the least absolute difference among function values and sampled pixel values will be used for estimation. Currently the following functions are tested in this special mode: Gaussian, Lorentzian, and Moffat functions with beta shape parameters of 1.5, 4 and 10.

The default PSF type is PSFunction::Moffat4.

Definition at line 144 of file PSFEstimator.h.

◆ RejectionLimit()

float pcl::PSFEstimator::RejectionLimit ( ) const
inline

Returns the rejection limit parameter of this estimator.

The rejection limit parameter defines an order statistic, in the [0.5,1] range, used to exclude a fraction of the brightest PSF signal samples during the estimation process.

The brightest signal samples usually tend to be unreliable because of relative saturation and nonlinearity. However, reliability of PSF flux measurements is normally ensured by robust star detection, where the source detection algorithm excludes too dim stars, and the saturation threshold parameter should impose a reliable upper limit in most practical cases. So this parameter should not be necessary under normal working conditions.

The default value of this parameter is 1.0, meaning that the sample of PSF flux measurements is not clipped by default.

Definition at line 265 of file PSFEstimator.h.

◆ SaturationThreshold()

float pcl::PSFEstimator::SaturationThreshold ( ) const
inline

Returns the saturation threshold for PSF flux measurements.

Detected stars with one or more pixels with values above this threshold will be excluded to perform the PSF estimation task.

The returned value is expressed in the [0,1] range. It can applied either as an absolute pixel sample value in the normalized [0,1] range, or as a value relative to the maximum pixel sample value of the measured image. See IsRelativeSaturationEnabled() for more information.

The default saturation threshold is 0.75.

Definition at line 199 of file PSFEstimator.h.

◆ SetGrowthFactorForFluxMeasurement()

void pcl::PSFEstimator::SetGrowthFactorForFluxMeasurement ( float  k)
inline

Sets a new value of the growing factor for the PSF flux measurement region. See GrowthFactorForFluxMeasurement() for a description of this parameter. The valid range for the specified factor k is [0.5,2.0].

Definition at line 299 of file PSFEstimator.h.

References pcl::Range().

◆ SetMaxStars()

void pcl::PSFEstimator::SetMaxStars ( int  n)
inline

Sets the maximum number of stars that will be measured. See MaxStars() for more information on this parameter.

When a limit n greater than zero is specified, PSF-based estimation will be performed for no more than the n brightest stars detected in the target image. When a value ≤ 0 is specified, no specific limit will be set on the number of measured stars.

Definition at line 329 of file PSFEstimator.h.

References pcl::Max().

◆ SetPSFCentroidTolerance()

void pcl::PSFEstimator::SetPSFCentroidTolerance ( float  t)
inline

Sets the centroid tolerance in pixels. See PSFCentroidTolerance() for a description of this parameter.

Definition at line 180 of file PSFEstimator.h.

References pcl::Max().

◆ SetPSFType()

void pcl::PSFEstimator::SetPSFType ( psf_function  type)
inline

Sets the type of point spread function used by this estimator. See PSFType() for more information.

Definition at line 153 of file PSFEstimator.h.

◆ SetRejectionLimit()

void pcl::PSFEstimator::SetRejectionLimit ( float  r)
inline

Sets a new value of the rejection limit parameter in the [0.5,1] range. See RejectionLimit() for a complete description of this parameter.

Definition at line 274 of file PSFEstimator.h.

References pcl::Range().

◆ SetSaturationThreshold()

void pcl::PSFEstimator::SetSaturationThreshold ( float  t)
inline

Sets the saturation threshold in the [0,1] range. The minimum acceptable value t is 0.1. See SaturationThreshold() for a description of this parameter.

Definition at line 209 of file PSFEstimator.h.

References pcl::Range().


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