LSST Applications g0f08755f38+9c285cab97,g1635faa6d4+13f3999e92,g1653933729+a8ce1bb630,g1a0ca8cf93+bf6eb00ceb,g28da252d5a+0829b12dee,g29321ee8c0+5700dc9eac,g2bbee38e9b+9634bc57db,g2bc492864f+9634bc57db,g2cdde0e794+c2c89b37c4,g3156d2b45e+41e33cbcdc,g347aa1857d+9634bc57db,g35bb328faa+a8ce1bb630,g3a166c0a6a+9634bc57db,g3e281a1b8c+9f2c4e2fc3,g414038480c+077ccc18e7,g41af890bb2+fde0dd39b6,g5fbc88fb19+17cd334064,g781aacb6e4+a8ce1bb630,g80478fca09+55a9465950,g82479be7b0+d730eedb7d,g858d7b2824+9c285cab97,g9125e01d80+a8ce1bb630,g9726552aa6+10f999ec6a,ga5288a1d22+2a84bb7594,gacf8899fa4+c69c5206e8,gae0086650b+a8ce1bb630,gb58c049af0+d64f4d3760,gc28159a63d+9634bc57db,gcf0d15dbbd+4b7d09cae4,gda3e153d99+9c285cab97,gda6a2b7d83+4b7d09cae4,gdaeeff99f8+1711a396fd,ge2409df99d+5e831397f4,ge79ae78c31+9634bc57db,gf0baf85859+147a0692ba,gf3967379c6+41c94011de,gf3fb38a9a8+8f07a9901b,gfb92a5be7c+9c285cab97,w.2024.46
LSST Data Management Base Package
|
Public Member Functions | |
__init__ (self, np.ndarray image, dict[Sequence[Sequence[int]], np.ndarray]|None image_fft=None) | |
np.ndarray | image (self) |
tuple[int,...] | shape (self) |
np.ndarray | fft (self, Sequence[int] fft_shape, int|Sequence[int] axes) |
int | __len__ (self) |
Fourier | __getitem__ (self, int|Sequence[int]|slice index) |
Static Public Member Functions | |
Fourier | from_fft (np.ndarray image_fft, Sequence[int] fft_shape, Sequence[int] image_shape, int|Sequence[int]|None axes=None, DTypeLike dtype=float) |
Public Attributes | |
image | |
Protected Attributes | |
_fft | |
_image | |
An array that stores its Fourier Transform The `Fourier` class is used for images that will make use of their Fourier Transform multiple times. In order to prevent numerical artifacts the same image convolved with different images might require different padding, so the FFT for each different shape is stored in a dictionary. Parameters ---------- image: np.ndarray The real space image. image_fft: dict[Sequence[int], np.ndarray] A dictionary of {shape: fft_value} for which each different shape has a precalculated FFT.
lsst.scarlet.lite.fft.Fourier.__init__ | ( | self, | |
np.ndarray | image, | ||
dict[Sequence[Sequence[int]], np.ndarray] | None | image_fft = None ) |
Fourier lsst.scarlet.lite.fft.Fourier.__getitem__ | ( | self, | |
int | Sequence[int] | slice | index ) |
Definition at line 347 of file fft.py.
int lsst.scarlet.lite.fft.Fourier.__len__ | ( | self | ) |
np.ndarray lsst.scarlet.lite.fft.Fourier.fft | ( | self, | |
Sequence[int] | fft_shape, | ||
int | Sequence[int] | axes ) |
The FFT of an image for a given `fft_shape` along desired `axes` Parameters ---------- fft_shape: "Fast" shape of the image used to generate the FFT. This will be different than `image_fft.shape` if any of the dimensions are odd, since `np.fft.rfft` requires an even number of dimensions (for symmetry), so this tells `np.fft.irfft` how to go from complex k-space to real space. axes: The dimension(s) of the array that will be transformed.
Definition at line 313 of file fft.py.
|
static |
Generate a new Fourier object from an FFT dictionary If the fft of an image has been generated but not its real space image (for example when creating a convolution kernel), this method can be called to create a new `Fourier` instance from the k-space representation. Parameters ---------- image_fft: The FFT of the image. fft_shape: "Fast" shape of the image used to generate the FFT. This will be different than `image_fft.shape` if any of the dimensions are odd, since `np.fft.rfft` requires an even number of dimensions (for symmetry), so this tells `np.fft.irfft` how to go from complex k-space to real space. image_shape: The shape of the image *before padding*. This will regenerate the image with the extra padding stripped. axes: The dimension(s) of the array that will be transformed. Returns ------- result: A `Fourier` object generated from the FFT.
Definition at line 251 of file fft.py.
np.ndarray lsst.scarlet.lite.fft.Fourier.image | ( | self | ) |
tuple[int, ...] lsst.scarlet.lite.fft.Fourier.shape | ( | self | ) |