Skip to content

Commit 110d571

Browse files
committed
Deprecate the MexicanHat kernels, too
1 parent 8c9e963 commit 110d571

3 files changed

Lines changed: 40 additions & 29 deletions

File tree

astropy/convolution/kernels.py

Lines changed: 28 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,11 @@
88
from .utils import has_even_axis, raise_even_kernel_exception
99
from astropy.modeling import models
1010
from astropy.modeling.core import Fittable1DModel, Fittable2DModel
11+
from astropy.utils.decorators import deprecated
1112

1213
__all__ = ['Gaussian1DKernel', 'Gaussian2DKernel', 'CustomKernel',
1314
'Box1DKernel', 'Box2DKernel', 'Tophat2DKernel',
14-
'Trapezoid1DKernel', 'MexicanHat1DKernel', 'MexicanHat2DKernel',
15+
'Trapezoid1DKernel', 'RickerWavelet1DKernel', 'RickerWavelet2DKernel',
1516
'AiryDisk2DKernel', 'Moffat2DKernel', 'Model1DKernel',
1617
'Model2DKernel', 'TrapezoidDisk2DKernel', 'Ring2DKernel']
1718

@@ -58,7 +59,7 @@ class Gaussian1DKernel(Kernel1D):
5859
5960
See Also
6061
--------
61-
Box1DKernel, Trapezoid1DKernel, MexicanHat1DKernel
62+
Box1DKernel, Trapezoid1DKernel, RickerWavelet1DKernel
6263
6364
6465
Examples
@@ -127,7 +128,7 @@ class Gaussian2DKernel(Kernel2D):
127128
128129
See Also
129130
--------
130-
Box2DKernel, Tophat2DKernel, MexicanHat2DKernel, Ring2DKernel,
131+
Box2DKernel, Tophat2DKernel, RickerWavelet2DKernel, Ring2DKernel,
131132
TrapezoidDisk2DKernel, AiryDisk2DKernel, Moffat2DKernel
132133
133134
Examples
@@ -198,7 +199,7 @@ class Box1DKernel(Kernel1D):
198199
199200
See Also
200201
--------
201-
Gaussian1DKernel, Trapezoid1DKernel, MexicanHat1DKernel
202+
Gaussian1DKernel, Trapezoid1DKernel, RickerWavelet1DKernel
202203
203204
204205
Examples
@@ -266,7 +267,7 @@ class Box2DKernel(Kernel2D):
266267
267268
See Also
268269
--------
269-
Gaussian2DKernel, Tophat2DKernel, MexicanHat2DKernel, Ring2DKernel,
270+
Gaussian2DKernel, Tophat2DKernel, RickerWavelet2DKernel, Ring2DKernel,
270271
TrapezoidDisk2DKernel, AiryDisk2DKernel, Moffat2DKernel
271272
272273
Examples
@@ -331,7 +332,7 @@ class Tophat2DKernel(Kernel2D):
331332
332333
See Also
333334
--------
334-
Gaussian2DKernel, Box2DKernel, MexicanHat2DKernel, Ring2DKernel,
335+
Gaussian2DKernel, Box2DKernel, RickerWavelet2DKernel, Ring2DKernel,
335336
TrapezoidDisk2DKernel, AiryDisk2DKernel, Moffat2DKernel
336337
337338
Examples
@@ -390,7 +391,7 @@ class Ring2DKernel(Kernel2D):
390391
391392
See Also
392393
--------
393-
Gaussian2DKernel, Box2DKernel, Tophat2DKernel, MexicanHat2DKernel,
394+
Gaussian2DKernel, Box2DKernel, Tophat2DKernel, RickerWavelet2DKernel,
394395
Ring2DKernel, AiryDisk2DKernel, Moffat2DKernel
395396
396397
Examples
@@ -448,7 +449,7 @@ class Trapezoid1DKernel(Kernel1D):
448449
449450
See Also
450451
--------
451-
Box1DKernel, Gaussian1DKernel, MexicanHat1DKernel
452+
Box1DKernel, Gaussian1DKernel, RickerWavelet1DKernel
452453
453454
Examples
454455
--------
@@ -506,7 +507,7 @@ class TrapezoidDisk2DKernel(Kernel2D):
506507
507508
See Also
508509
--------
509-
Gaussian2DKernel, Box2DKernel, Tophat2DKernel, MexicanHat2DKernel,
510+
Gaussian2DKernel, Box2DKernel, Tophat2DKernel, RickerWavelet2DKernel,
510511
Ring2DKernel, AiryDisk2DKernel, Moffat2DKernel
511512
512513
Examples
@@ -536,7 +537,7 @@ def __init__(self, radius, slope=1., **kwargs):
536537
self.normalize()
537538

538539

539-
class MexicanHat1DKernel(Kernel1D):
540+
class RickerWavelet1DKernel(Kernel1D):
540541
"""
541542
1D Mexican hat filter kernel.
542543
@@ -588,8 +589,8 @@ class MexicanHat1DKernel(Kernel1D):
588589
:include-source:
589590
590591
import matplotlib.pyplot as plt
591-
from astropy.convolution import MexicanHat1DKernel
592-
mexicanhat_1D_kernel = MexicanHat1DKernel(10)
592+
from astropy.convolution import RickerWavelet1DKernel
593+
mexicanhat_1D_kernel = RickerWavelet1DKernel(10)
593594
plt.plot(mexicanhat_1D_kernel, drawstyle='steps')
594595
plt.xlabel('x [pixels]')
595596
plt.ylabel('value')
@@ -606,7 +607,7 @@ def __init__(self, width, **kwargs):
606607
self._truncation = np.abs(self._array.sum() / self._array.size)
607608

608609

609-
class MexicanHat2DKernel(Kernel2D):
610+
class RickerWavelet2DKernel(Kernel2D):
610611
"""
611612
2D Mexican hat filter kernel.
612613
@@ -661,8 +662,8 @@ class MexicanHat2DKernel(Kernel2D):
661662
:include-source:
662663
663664
import matplotlib.pyplot as plt
664-
from astropy.convolution import MexicanHat2DKernel
665-
mexicanhat_2D_kernel = MexicanHat2DKernel(10)
665+
from astropy.convolution import RickerWavelet2DKernel
666+
mexicanhat_2D_kernel = RickerWavelet2DKernel(10)
666667
plt.imshow(mexicanhat_2D_kernel, interpolation='none', origin='lower')
667668
plt.xlabel('x [pixels]')
668669
plt.ylabel('y [pixels]')
@@ -713,7 +714,7 @@ class AiryDisk2DKernel(Kernel2D):
713714
714715
See Also
715716
--------
716-
Gaussian2DKernel, Box2DKernel, Tophat2DKernel, MexicanHat2DKernel,
717+
Gaussian2DKernel, Box2DKernel, Tophat2DKernel, RickerWavelet2DKernel,
717718
Ring2DKernel, TrapezoidDisk2DKernel, AiryDisk2DKernel, Moffat2DKernel
718719
719720
Examples
@@ -777,7 +778,7 @@ class Moffat2DKernel(Kernel2D):
777778
778779
See Also
779780
--------
780-
Gaussian2DKernel, Box2DKernel, Tophat2DKernel, MexicanHat2DKernel,
781+
Gaussian2DKernel, Box2DKernel, Tophat2DKernel, RickerWavelet2DKernel,
781782
Ring2DKernel, TrapezoidDisk2DKernel, AiryDisk2DKernel
782783
783784
Examples
@@ -1022,3 +1023,13 @@ def array(self, array):
10221023
self._is_bool = bool(np.all(np.logical_or(ones, zeros)))
10231024

10241025
self._truncation = 0.0
1026+
1027+
1028+
@deprecated('4.0', alternative='RickerWavelet1DKernel')
1029+
class MexicanHat1DKernel(RickerWavelet1DKernel):
1030+
pass
1031+
1032+
1033+
@deprecated('4.0', alternative='RickerWavelet2DKernel')
1034+
class MexicanHat2DKernel(RickerWavelet2DKernel):
1035+
pass

astropy/convolution/tests/test_kernel_class.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
from astropy.convolution.convolve import convolve, convolve_fft
1010
from astropy.convolution.kernels import (
1111
Gaussian1DKernel, Gaussian2DKernel, Box1DKernel, Box2DKernel,
12-
Trapezoid1DKernel, TrapezoidDisk2DKernel, MexicanHat1DKernel,
13-
Tophat2DKernel, MexicanHat2DKernel, AiryDisk2DKernel, Ring2DKernel,
12+
Trapezoid1DKernel, TrapezoidDisk2DKernel, RickerWavelet1DKernel,
13+
Tophat2DKernel, RickerWavelet2DKernel, AiryDisk2DKernel, Ring2DKernel,
1414
CustomKernel, Model1DKernel, Model2DKernel, Kernel1D, Kernel2D)
1515

1616
from astropy.convolution.utils import KernelSizeError
@@ -29,7 +29,7 @@
2929
KERNEL_TYPES = [Gaussian1DKernel, Gaussian2DKernel,
3030
Box1DKernel, Box2DKernel,
3131
Trapezoid1DKernel, TrapezoidDisk2DKernel,
32-
MexicanHat1DKernel, Tophat2DKernel, AiryDisk2DKernel,
32+
RickerWavelet1DKernel, Tophat2DKernel, AiryDisk2DKernel,
3333
Ring2DKernel]
3434

3535

@@ -76,10 +76,10 @@ def test_scipy_filter_gaussian(self, width):
7676
@pytest.mark.parametrize(('width'), WIDTHS_ODD)
7777
def test_scipy_filter_gaussian_laplace(self, width):
7878
"""
79-
Test MexicanHat kernels against SciPy ndimage gaussian laplace filters.
79+
Test RickerWavelet kernels against SciPy ndimage gaussian laplace filters.
8080
"""
81-
mexican_kernel_1D = MexicanHat1DKernel(width)
82-
mexican_kernel_2D = MexicanHat2DKernel(width)
81+
mexican_kernel_1D = RickerWavelet1DKernel(width)
82+
mexican_kernel_2D = RickerWavelet2DKernel(width)
8383

8484
astropy_1D = convolve(delta_pulse_1D, mexican_kernel_1D, boundary='fill', normalize_kernel=False)
8585
astropy_2D = convolve(delta_pulse_2D, mexican_kernel_2D, boundary='fill', normalize_kernel=False)

docs/convolution/kernels.rst

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -156,13 +156,13 @@ scale compared to the original image.
156156
data_2D = gauss(x, y) + 0.1 * (np.random.rand(201, 201) - 0.5)
157157

158158
# Setup kernels, including unity kernel for original image
159-
# Choose normalization for linear scale space for MexicanHat
159+
# Choose normalization for linear scale space for RickerWavelet
160160

161161
kernels = [TrapezoidDisk2DKernel(11, slope=0.2),
162162
Tophat2DKernel(11),
163163
Gaussian2DKernel(11),
164164
Box2DKernel(11),
165-
11 ** 2 * MexicanHat2DKernel(11),
165+
11 ** 2 * RickerWavelet2DKernel(11),
166166
AiryDisk2DKernel(11)]
167167

168168
fig, axes = plt.subplots(nrows=2, ncols=3)
@@ -203,8 +203,8 @@ Available Kernels
203203
CustomKernel
204204
Gaussian1DKernel
205205
Gaussian2DKernel
206-
MexicanHat1DKernel
207-
MexicanHat2DKernel
206+
RickerWavelet1DKernel
207+
RickerWavelet2DKernel
208208
Model1DKernel
209209
Model2DKernel
210210
Ring2DKernel
@@ -342,7 +342,7 @@ The kernel arrays can be renormalized explicitly by calling either the
342342
method leaves the kernel itself unchanged but works with an internal normalized
343343
version of the kernel.
344344

345-
Note that for :class:`~astropy.convolution.MexicanHat1DKernel`
346-
and :class:`~astropy.convolution.MexicanHat2DKernel` there is
345+
Note that for :class:`~astropy.convolution.RickerWavelet1DKernel`
346+
and :class:`~astropy.convolution.RickerWavelet2DKernel` there is
347347
:math:`\int_{-\infty}^{\infty} f(x) dx = 0`. To define a proper normalization,
348348
both filters are derived from a normalized Gaussian function.

0 commit comments

Comments
 (0)