scarlet.initialization

scarlet.initialization.build_initialization_image(observations, spectra=None)[source]

Build a spectrum-weighted image from all observations.

Parameters:
observations: list of `~scarlet.observation.Observation`

Every observation with a suitable renderer will contribute to the initialization image, according to its noise level.

spectra: list of arrays

for every observation: source spectrum to optimize for. If not set, assumes flat spectrum.

Returns:
image: array

image created by weighting all channels by spectrum

std: array

the effective noise standard deviation of image

scarlet.initialization.get_minimal_boxsize(size, min_size=21, increment=10)[source]
scarlet.initialization.get_pixel_spectrum(sky_coord, observations, correct_psf=False, models=None, concat=True)[source]

Get the spectrum at sky_coord in observation.

Yields the spectrum of a single-pixel source with flux 1 in every channel, concatenated for all observations.

If correct_psf, it homogenizes the PSFs of the observations, which yields the correct spectrum for a flux=1 point source.

If model is set, it reads of the value of the model at sky_coord and yields the spectrum for that model.

Parameters:
sky_coord: tuple

Position in the observation

observations: instance or list of `~scarlet.Observation`

Observation to extract SED from.

correct_psf: bool

If PSF shape variations in the observations should be corrected.

models: instance or list of arrays

Rendered models for this source in every observation

concat: bool

Whether spectra from multiple observations are flattened

Returns:
spectrum: ~numpy.array
scarlet.initialization.get_psf_spectrum(sky_coord, observations, compute_snr=False, concat=True)[source]

Get spectrum for a point source at sky_coord in observation

Equivalent to point source photometry for isolated sources. For extended source, this will underestimate the actual source flux in every channel. In case of crowding, the resulting photometry is likely contaminated by neighbors.

Yields the spectrum of a PSF-homogenized source of flux 1 in every channel, concatenated for all observations.

Parameters:
sky_coord: tuple

Position in the observation

observations: instance or list of `~scarlet.Observation`

Observation to extract the spectrum from.

compute_snr: bool

Whether the compute the SNR of a PSF at sky_coord

concat: bool

Whether spectra from multiple observations are flattened

Returns:
spectrum: ~numpy.array`
scarlet.initialization.init_all_sources(frame, centers, observations, thresh=1, max_components=1, min_components=1, min_snr=50, shifting=False, resizing=True, boxsize=None, fallback=True, silent=False, set_spectra=True)[source]

Initialize all sources in a blend

Seeks to initialize sources at the sky positions of centers with multiple components of type ExtendedSource. If each component has sufficient SNR, the model will be kept, otherwise one component is removed and the source reinitialized. If a source cannot be initialized, its index is returned in skipped.

See ~init_source for a description of the arguments

Parameters:
centerslist of tuples

(y, x) center location for each source in sky coordinates

silent: bool

If set to True, will prevent exceptions from being thrown abd register the source index in a list of skipped sources.

set_spectra: bool

If set to True, will solve for the best spectra of all sources given the observations. See set_spectra_to_match for details.

Returns:
sources: list

List of intialized sources, where each source derives from the ~scarlet.Component class.

skipped: list

This list contains sources that failed to initialize with silent = True

scarlet.initialization.init_source(frame, center, observations, thresh=1, max_components=1, min_components=1, min_snr=50, shifting=False, resizing=True, boxsize=None, fallback=True)[source]

Initialize a Source

The user can specify the number of desired components for the modeled source. If scarlet cannot initialize a model with the desired number of components it continues to attempt initialization of one fewer component until it finds a model that can be initialized. It is possible that scarlet will be unable to initialize a source with the desired number of components, for example a two component source might have degenerate components, a single component source might not have enough signal in the joint coadd (all bands combined together into single signal-to-noise weighted image for initialization) to initialize, and a true spurious detection will not have enough signal to initialize as a point source. If all of the models fail, including a CompactExtendedSource model, then this source is skipped.

Parameters:
frame~scarlet.Frame

The model frame for the scene

centertuple of float`

(y, x) location for the center of the source.

observationsinstance or list of ~scarlet.Observation

The Observation that contains the images, weights, and PSF used to generate the model.

threshfloat

Multiple of the backround RMS used as a flux cutoff for morphology initialization

max_componentsint

The maximum number of components in a source. If fallback is True then when a source fails to initialize with max_components it will continue to subtract one from the number of components until it reaches zero (which fits a CompactExtendedSource). If a point source cannot be fit then the source is skipped.

min_componentsint

The minimum number of components in a source. Only relevent for fallback=True.

min_snr: float

Mininmum SNR per component of a multi-component source. If fallback=True, every component needs to have at least min_snr, otherwise the component number will be reduced At last resort, the component is initialized with a PointSource morphology

shiftingbool

Whether or not to fit the position of a source. This is an expensive operation and is typically only used when a source is on the edge of the detector.

resizingbool

Whether or not to change the size of the source box.

boxsize: int or None

Spatial size of the source box

fallbackbool

Whether to reduce the number of components if the model cannot be initialized with max_components. Fallback = False is unlikely to be used in production but can be useful for troubleshooting when an error can cause a particular source class to fail every time.

prerender: bool

Whether to initialize the source with pre-rendered observations. This is an experimental feature, which may be removed in the future.

scarlet.initialization.set_spectra_to_match(sources, observations)[source]

Sets the spectra of any FactorizedComponent to match the Observations.

Computes the best-fit amplitude of the rendered model of the sources in every channel of every observation as a linear inverse problem.

Parameters:
sources: list of sources

Only FactorizedComponent or CombinedComponent will be considered

observations: `scarlet.Observation` or list thereof
scarlet.initialization.trim_morphology(center_index, morph, bg_thresh=0, boxsize=None)[source]