lsst.scarlet.lite ge1c02a5578+b0138be388
 
Loading...
Searching...
No Matches
lsst.scarlet.lite.blend.Blend Class Reference
Inheritance diagram for lsst.scarlet.lite.blend.Blend:
lsst.scarlet.lite.blend.BlendBase lsst.scarlet.lite.models.fit_psf.FittedPsfBlend

Public Member Functions

 __init__ (self, Sequence[Source] sources, Observation observation, dict|None metadata=None)
 
Image get_model (self, bool convolve=False, bool use_flux=False)
 
float log_likelihood (self)
 
Blend fit_spectra (self, bool clip=False)
 
tuple[int, float] fit (self, int max_iter, float e_rel=1e-4, int min_iter=15, int resize=10)
 
 parameterize (self, Callable parameterization)
 
None conserve_flux (self, bool mask_footprint=True, Image|None weight_image=None)
 
ScarletBlendData to_data (self)
 
Blend __getitem__ (self, Any indices)
 
Blend __copy__ (self)
 
Blend __deepcopy__ (self, dict[int, Any] memo)
 
- Public Member Functions inherited from lsst.scarlet.lite.blend.BlendBase
tuple[int, int, int] shape (self)
 
Box bbox (self)
 
list[Componentcomponents (self)
 
Self __getitem__ (self, Any indices)
 
Self __copy__ (self)
 
Self __deepcopy__ (self, dict[int, Any] memo)
 
Self copy (self, bool deep=False)
 

Public Attributes

 observation = observation
 
int it = 0
 
list loss = []
 

Protected Member Functions

tuple[Image, np.ndarray] _grad_log_likelihood (self)
 

Additional Inherited Members

- Static Public Attributes inherited from lsst.scarlet.lite.blend.BlendBase
Sequence sources [SourceBase]
 
dict metadata | None
 

Detailed Description

A single blend.

This class holds all of the sources and observation that are to be fit,
as well as performing fitting and joint initialization of the
spectral components (when applicable).

Parameters
----------
sources:
    The sources to fit.
observation:
    The observation that contains the images,
        PSF, etc. that are being fit.
metadata:
    Additional metadata to store with the blend.

Member Function Documentation

◆ __copy__()

Blend lsst.scarlet.lite.blend.Blend.__copy__ ( self)
Create a copy of this blend.

Returns
-------
blend : Blend
    A new blend that is a copy of this one.

◆ __deepcopy__()

Blend lsst.scarlet.lite.blend.Blend.__deepcopy__ ( self,
dict[int, Any] memo )
Create a deep copy of this blend.

Parameters
----------
memo : dict[int, Any]
    A memoization dictionary used by `copy.deepcopy`.

Returns
-------
blend : Blend
    A new blend that is a deep copy of this one.

◆ __getitem__()

Blend lsst.scarlet.lite.blend.Blend.__getitem__ ( self,
Any indices )
Get a sub-blend corresponding to the given indices.

Parameters
----------
indices :
    The indices to use to slice the blend.

Returns
-------
blend :
    A new `Blend` instance containing only data from the
    specified bands in the specified order.

Raises
------
IndexError :
    If the indices contain bands not included in the original
    blend or a bounding box is given.

◆ _grad_log_likelihood()

tuple[Image, np.ndarray] lsst.scarlet.lite.blend.Blend._grad_log_likelihood ( self)
protected
Gradient of the likelihood wrt the unconvolved model

Returns
-------
result:
    The gradient of the likelihood wrt the model
model_data:
   The convol model data used to calculate the gradient.
   This can be useful for debugging but is not used in
   production.

Reimplemented in lsst.scarlet.lite.models.fit_psf.FittedPsfBlend.

◆ conserve_flux()

None lsst.scarlet.lite.blend.Blend.conserve_flux ( self,
bool mask_footprint = True,
Image | None weight_image = None )
Use the source models as templates to re-distribute flux
from the data

The source models are used as approximations to the data,
which redistribute the flux in the data according to the
ratio of the models for each source.
There is no return value for this function,
instead it adds (or modifies) a ``flux_weighted_image``
attribute to each the sources with the flux attributed to
that source.

Parameters
----------
blend:
    The blend that is being fit
mask_footprint:
    Whether or not to apply a mask for pixels with zero weight.
weight_image:
    The weight image to use for the redistribution.
    If `None` then the observation image is used.

◆ fit()

tuple[int, float] lsst.scarlet.lite.blend.Blend.fit ( self,
int max_iter,
float e_rel = 1e-4,
int min_iter = 15,
int resize = 10 )
Fit all of the parameters

Parameters
----------
max_iter:
    The maximum number of iterations
e_rel:
    The relative error to use for determining convergence.
min_iter:
    The minimum number of iterations.
resize:
    Number of iterations before attempting to resize the
    resizable components. If `resize` is `None` then
    no resizing is ever attempted.

Returns
-------
it:
    Number of iterations.
loss:
    Loss for the last solution

Reimplemented in lsst.scarlet.lite.models.fit_psf.FittedPsfBlend.

◆ fit_spectra()

Blend lsst.scarlet.lite.blend.Blend.fit_spectra ( self,
bool clip = False )
Fit all of the spectra given their current morphologies with a
linear least squares algorithm.

Parameters
----------
clip:
    Whether or not to clip components that were not
    assigned any flux during the fit.

Returns
-------
blend:
    The blend with updated components is returned.

◆ get_model()

Image lsst.scarlet.lite.blend.Blend.get_model ( self,
bool convolve = False,
bool use_flux = False )
Generate a model of the entire blend.

Parameters
----------
convolve:
    Whether to convolve the model with the observed PSF in each band.
use_flux:
    Whether to use the re-distributed flux associated with the sources
    instead of the component models.

Returns
-------
model:
    The model created by combining all of the source models.

Reimplemented from lsst.scarlet.lite.blend.BlendBase.

◆ log_likelihood()

float lsst.scarlet.lite.blend.Blend.log_likelihood ( self)
The current log-likelihood

This is calculated on the fly to ensure that it is always up to date
with the current model parameters.

◆ parameterize()

lsst.scarlet.lite.blend.Blend.parameterize ( self,
Callable parameterization )
Convert the component parameter arrays into Parameter instances

Parameters
----------
parameterization:
    A function to use to convert parameters of a given type into
    a `Parameter` in place. It should take a single argument that
    is the `Component` or `Source` that is to be parameterized.

Reimplemented in lsst.scarlet.lite.models.fit_psf.FittedPsfBlend.

◆ to_data()

ScarletBlendData lsst.scarlet.lite.blend.Blend.to_data ( self)
Convert the Blend into a persistable data object

Parameters
----------
blend :
    The blend that is being persisted.

Returns
-------
blend_data :
    The data model for a single blend.

Reimplemented from lsst.scarlet.lite.blend.BlendBase.


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