lentil.jitter#
- lentil.jitter(img, scale, pixelscale=1, oversample=1)[source]#
Apply image jitter via convolution.
- Parameters:
img (array_like) – Input image
scale (float) –
1-sigma jitter motion
If
pixelscale = 1
,scale
should give jitter in terms of fractional pixels. Ifpixelscale
is the physical dimension of one pixel,scale
should give jitter in terms of the same units.pixelscale (float, optional) – Pixel size. If
pixelscale = 1
(default), thescale
parameter provided when Jitter is called should give jitter in terms of fractional pixels. Ifpixelscale
is the physical dimension of one pixel,the ``scale
parameter provided when Jitter is called should give jitter in terms of the same units.oversample (int, optional) – Oversampling factor of img. Default is 1.
- Returns:
out – Image with jitter applied.
- Return type:
ndarray
Examples
Apply 2 pixels jitter to a 5x oversmapled PSF:
>>> import lentil >>> import matplotlib.pyplot as plt >>> psf = ... # PSF calculation details omitted >>> psf_jitter = lentil.jitter(psf, scale=2, oversample=5) >>> plt.subplot(121), plt.imshow(psf) >>> plt.subplot(122), plt.imshow(psf_jitter)
- ..plot:: _img/python/jitter.py
- scale:
50
Apply 10 um jitter to a 5x oversampled PSF. Note that because we are specifying jitter in terms of linear distance on the focal plane, we must provide the detector pixelscale when applying the Jitter. We also provide the oversampling factor, ensuring the convolution kernel is appropriately sized:
>>> import lentil >>> import matplotlib.pyplot as plt >>> psf = ... # PSF calculation details omitted >>> psf_jitter = lentil.jitter(psf, ... scale=10e-6, ... pixelscale=5e-6, ... oversample=5) >>> plt.subplot(121), plt.imshow(psf) >>> plt.subplot(122), plt.imshow(psf_jitter)
References