# Background Estimators

All of these estimators are subtypes of Background.LocationEstimator or Background.RMSEstimator and are derived using various statistical and image processing methods.

## Location Estimators

These estimators are used for estimating the background using some form of a central statistic.

Photometry.Background.MMMBackgroundType
MMMBackground(median_factor=3, mean_factor=2)

Estimate the background using a mode estimator of the form median_factor * median - mean_factor * mean. This algorithm is based on the MMMBackground routine originally implemented in DAOPHOT. MMMBackground uses factors of median_factor=3 and mean_factor=2 by default. This estimator assumes that contaminated sky pixel values overwhelmingly display positive departures from the true value.

Examples

julia> x = ones(3, 5);

julia> MMMBackground()(x)
1.0

julia> MMMBackground(median_factor=4, mean_factor=3)(x, dims = 1)
1×5 Matrix{Float64}:
1.0  1.0  1.0  1.0  1.0

source
Photometry.Background.SourceExtractorBackgroundType
SourceExtractorBackground()

This estimator returns the background of the input using the SourceExtractorBackground algorithm.

The background is calculated using a mode estimator of the form (2.5 * median) - (1.5 * mean).

If (mean - median) / std > 0.3 then the median is used and if std = 0 then the mean is used.

Examples

julia> data = ones(3, 5);

julia> SourceExtractorBackground()(data)
1.0

julia> SourceExtractorBackground()(data, dims=1)
1×5 Matrix{Float64}:
1.0  1.0  1.0  1.0  1.0
source
Photometry.Background.BiweightLocationBackgroundType
BiweightLocationBackground(c = 6.0, M = nothing)

Estimate the background using the robust biweight location statistic.

$\xi_{biloc}=M + \frac{\sum_{|u_i|<1}{(x_i - M)(1 - u_i^2)^2}}{\sum_{|u_i|<1}{(1-u_i^2)^2}}$

$u_i = \frac{(x_i - M)}{c\cdot\text{MAD}(x)}$

Where $\text{MAD}(x)$ is median absolute deviation of x.

Examples

julia> x = ones(3,5);

julia> BiweightLocationBackground()(x)
1.0

julia> BiweightLocationBackground(c=5.5)(x; dims = 1)
1×5 Matrix{Float64}:
1.0  1.0  1.0  1.0  1.0
source

## RMS Estimators

These estimators are used for estimating the root-mean-square (RMS) of the background using some form of a deviation statistic.

Photometry.Background.StdRMSType
StdRMS()

Uses the standard deviation statistic for background RMS estimation.

Examples

julia> data = ones(3, 5);

julia> StdRMS()(data)
0.0

julia> StdRMS()(data, dims=1)
1×5 Matrix{Float64}:
0.0  0.0  0.0  0.0  0.0
source
Photometry.Background.MADStdRMSType
MADStdRMS()

Uses the standard median absolute deviation (MAD) statistic for background RMS estimation.

This is typically given as

$\sigma \approx 1.4826 \cdot \text{MAD}$

Examples

julia> data = ones(3, 5);

0.0

1×5 Matrix{Float64}:
0.0  0.0  0.0  0.0  0.0
source
Photometry.Background.BiweightScaleRMSType
BiweightScaleRMS(c=9.0, M=nothing)

Uses the robust biweight scale statistic for background RMS estimation.

The biweight scale is the square root of the biweight midvariance. The biweight midvariance uses a tuning constant, c, and an optional initial guess of the central value M.

$\zeta^2_{biscl}= \frac{n\sum_{|u_i|<1}{(x_i - M)^2(1 - u_i^2)^4}}{\left[\sum_{|u_i|<1}{(1-u_i^2)(1-5u_i^2)}\right]^2}$

$u_i = \frac{(x_i - M)}{c\cdot\text{MAD}(x)}$

Where $\text{MAD}(x)$ is median absolute deviation of x.

Examples

julia> data = ones(3, 5);

julia> BiweightScaleRMS()(data)
0.0

julia> BiweightScaleRMS(c=3.0)(data, dims=1)
1×5 Matrix{Float64}:
0.0  0.0  0.0  0.0  0.0
source