lsst.scarlet.lite ge1c02a5578+b0138be388
 
Loading...
Searching...
No Matches
lsst.scarlet.lite.models.parametric.EllipseFrame Class Reference
Inheritance diagram for lsst.scarlet.lite.models.parametric.EllipseFrame:
lsst.scarlet.lite.models.parametric.CartesianFrame

Public Member Functions

 __init__ (self, float y0, float x0, float major, float minor, float theta, Box bbox, float r_min=1e-20)
 
float grad_x0 (self, np.ndarray input_grad, bool use_r2)
 
float grad_y0 (self, np.ndarray input_grad, bool use_r2)
 
float grad_major (self, np.ndarray input_grad, bool use_r2)
 
float grad_minor (self, np.ndarray input_grad, bool use_r2)
 
float grad_theta (self, np.ndarray input_grad, bool use_r2)
 
float x0 (self)
 
float y0 (self)
 
float major (self)
 
float minor (self)
 
float theta (self)
 
Box bbox (self)
 
np.ndarray r_grid (self)
 
np.ndarray r2_grid (self)
 
- Public Member Functions inherited from lsst.scarlet.lite.models.parametric.CartesianFrame
 __init__ (self, Box bbox)
 
tuple[int,...] shape (self)
 
np.ndarray x_grid (self)
 
np.ndarray y_grid (self)
 

Protected Attributes

tuple _xMajor = (self._x - x0) * cos + (self._y - y0) * sin
 
 _xMinor = -(self._x - x0) * sin + (self._y - y0) * cos
 
tuple _xa = self._xMajor / major
 
float _yb = self._xMinor / minor
 
 _y0
 
float _x0 = y0, x0
 
float _theta = theta
 
float _major = major
 
float _minor = minor
 
 _sin
 
 _cos = sin, cos
 
 _rMin = r_min
 
tuple _radius2 = self._xa**2 + self._yb**2
 
np.ndarray|None _radius = None
 
- Protected Attributes inherited from lsst.scarlet.lite.models.parametric.CartesianFrame
Box _bbox = bbox
 
 _x = np.linspace(xi, xf - 1, width)
 
 _y = np.meshgrid(x, y)
 
 _r = None
 
 _r2 = None
 

Detailed Description

Frame to scale the radius based on the parameters of an ellipse

This frame is used to calculate the coordinates of the
radius and radius**2 from a given center location,
based on the semi-major axis, semi-minor axis, and rotation angle.
It is also used to calculate the gradient wrt either the
radius**2 or radius for all of the model parameters.

Parameters
----------
y0: float
    The y-center of the ellipse.
x0: float
    The x-center of the ellipse.
major: float
    The length of the semi-major axis.
minor: float
    The length of the semi-minor axis.
theta: float
    The counter-clockwise rotation angle
    from the semi-major axis.
bbox: Box
    The bounding box that contains the entire frame.
r_min: float
    The minimum value of the radius.
    This is used to prevent divergences that occur
    when calculating the gradient at radius == 0.

Member Function Documentation

◆ bbox()

Box lsst.scarlet.lite.models.parametric.EllipseFrame.bbox ( self)
The bounding box to hold the model

Reimplemented from lsst.scarlet.lite.models.parametric.CartesianFrame.

◆ grad_major()

float lsst.scarlet.lite.models.parametric.EllipseFrame.grad_major ( self,
np.ndarray input_grad,
bool use_r2 )
The gradient of either the radius or radius**2 wrt.
the semi-major axis

Parameters
----------
input_grad:
    Gradient of the likelihood wrt the component model
use_r2:
    Whether to calculate the gradient of the radius**2
    (``use_r2==True``) or the radius (``use_r2==False``).

Returns
-------
result:
    The gradient of the likelihood wrt the semi-major axis.

◆ grad_minor()

float lsst.scarlet.lite.models.parametric.EllipseFrame.grad_minor ( self,
np.ndarray input_grad,
bool use_r2 )
The gradient of either the radius or radius**2 wrt.
the semi-minor axis

Parameters
----------
input_grad:
    Gradient of the likelihood wrt the component model
use_r2:
    Whether to calculate the gradient of the radius**2
    (``useR2==True``) or the radius (``useR2==False``).

Returns
-------
result:
    The gradient of the likelihood wrt the semi-minor axis.

◆ grad_theta()

float lsst.scarlet.lite.models.parametric.EllipseFrame.grad_theta ( self,
np.ndarray input_grad,
bool use_r2 )
The gradient of either the radius or radius**2 wrt.
the rotation angle

Parameters
----------
input_grad:
    Gradient of the likelihood wrt the component model
use_r2:
    Whether to calculate the gradient of the radius**2
    (``useR2==True``) or the radius (``useR2==False``).

Returns
-------
result:
    The gradient of the likelihood wrt the rotation angle.

◆ grad_x0()

float lsst.scarlet.lite.models.parametric.EllipseFrame.grad_x0 ( self,
np.ndarray input_grad,
bool use_r2 )
The gradient of either the radius or radius**2 wrt. the x-center

Parameters
----------
input_grad:
    Gradient of the likelihood wrt the component model
use_r2:
    Whether to calculate the gradient of the radius**2
    (``useR2==True``) or the radius (``useR2==False``).

Returns
-------
result:
    The gradient of the likelihood wrt x0.

◆ grad_y0()

float lsst.scarlet.lite.models.parametric.EllipseFrame.grad_y0 ( self,
np.ndarray input_grad,
bool use_r2 )
The gradient of either the radius or radius**2 wrt. the y-center

Parameters
----------
input_grad:
    Gradient of the likelihood wrt the component model
use_r2:
    Whether to calculate the gradient of the radius**2
    (``useR2==True``) or the radius (``useR2==False``).

Returns
-------
result:
    The gradient of the likelihood wrt y0.

◆ major()

float lsst.scarlet.lite.models.parametric.EllipseFrame.major ( self)
The semi-major axis

◆ minor()

float lsst.scarlet.lite.models.parametric.EllipseFrame.minor ( self)
The semi-minor axis

◆ r2_grid()

np.ndarray lsst.scarlet.lite.models.parametric.EllipseFrame.r2_grid ( self)
The radius squared located at each pixel

◆ r_grid()

np.ndarray lsst.scarlet.lite.models.parametric.EllipseFrame.r_grid ( self)
The radial coordinates of each pixel

◆ theta()

float lsst.scarlet.lite.models.parametric.EllipseFrame.theta ( self)
The rotation angle

◆ x0()

float lsst.scarlet.lite.models.parametric.EllipseFrame.x0 ( self)
The x-center

◆ y0()

float lsst.scarlet.lite.models.parametric.EllipseFrame.y0 ( self)
The y-center

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