BaseField#

class lsst.images.fields.BaseField#

Bases: ABC

An abstract base class for parametric or interpolated 2-d functions, generally representing some sort of calculated image.

Notes#

The field hierarchy is closed to the types in this package, so we can enumerate all of the serializations and avoid any kind of extension system. All field types are immutable.

Field types implement the function call operator and both multiplication and division by a constant via operator overloading. See the named evaluate and multiply_constant methods (respectively) for more information about those operations.

This interface will probably change in the future to incorporate options for dealing with out-of-bounds positions. At present the behavior for such positions is implementation-specific and should not be relied upon.

Attributes Summary

bounds

The region over which this field can be evaluated (Bounds).

is_constant

Whether the field is spatially constant (bool).

unit

The units of the field (astropy.units.UnitBase or None).

Methods Summary

__call__()

Call self as a function.

evaluate(*, x, y, quantity)

Evaluate at non-gridded points.

make_legacy_photo_calib(image_unit)

Make a legacy lsst.afw.image.PhotoCalib for an image with the given units, if that is possible without a photometric scaling field.

multiply_constant(factor)

Multiply by a constant, returning a new field of the same type.

render([bbox, dtype])

Create an image realization of the field.

to_legacy()

Convert to a legacy lsst.afw.math.BoundedField.

to_legacy_photo_calib(image_unit)

Convert to a legacy lsst.afw.image.PhotoCalib.

Attributes Documentation

bounds#

The region over which this field can be evaluated (Bounds).

is_constant#

Whether the field is spatially constant (bool).

unit#

The units of the field (astropy.units.UnitBase or None).

Methods Documentation

__call__(*, x: ndarray, y: ndarray, quantity: Literal[False] = False) ndarray#
__call__(*, x: ndarray, y: ndarray, quantity: Literal[True]) Quantity
__call__(*, x: ndarray, y: ndarray, quantity: bool) ndarray | Quantity

Call self as a function.

abstract evaluate(*, x: ndarray, y: ndarray, quantity: bool) ndarray | Quantity#

Evaluate at non-gridded points.

Parameters#

x

X coordinates to evaluate at.

y

Y coordinates to evaluate at; must be broadcast-compatible with x.

quantity

If True, return an astropy.units.Quantity instead of a numpy.ndarray. If unit is None, the returned object will be a dimensionless Quantity.

static make_legacy_photo_calib(image_unit: astropy.units.UnitBase) LegacyPhotoCalib | None#

Make a legacy lsst.afw.image.PhotoCalib for an image with the given units, if that is possible without a photometric scaling field.

abstract multiply_constant(factor: float | Quantity | UnitBase) Self#

Multiply by a constant, returning a new field of the same type.

Parameters#

factor

Factor to multiply by. When this has units, those should multiply self.unit or set the units of the returned field if self.unit is None.

abstract render(bbox: Box | None = None, *, dtype: type[Any] | dtype[Any] | _SupportsDType[dtype[Any]] | tuple[Any, Any] | list[Any] | _DTypeDict | str | None = None) Image#

Create an image realization of the field.

Parameters#

bbox

Bounding box of the image. If not provided, self.bounds.bbox will be used.

dtype

Pixel data type for the returned image.

to_legacy() LegacyBoundedField#

Convert to a legacy lsst.afw.math.BoundedField.

to_legacy_photo_calib(image_unit: astropy.units.UnitBase) LegacyPhotoCalib#

Convert to a legacy lsst.afw.image.PhotoCalib.

Parameters#

image_unit

The units of the pixels the returned PhotoCalib will be associated with.