Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added normalized_epsilon as a parameter to convolve_fft #5177

Closed
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
9 changes: 6 additions & 3 deletions astropy/convolution/convolve.py
Expand Up @@ -226,8 +226,8 @@ def convolve(array, kernel, boundary='fill', fill_value=0.,
def convolve_fft(array, kernel, boundary='fill', fill_value=0, crop=True,
return_fft=False, fft_pad=None, psf_pad=None,
interpolate_nan=False, quiet=False, ignore_edge_zeros=False,
min_wt=0.0, normalize_kernel=False, allow_huge=False,
fftn=np.fft.fftn, ifftn=np.fft.ifftn,
min_wt=0.0, normalize_kernel=False, normalized_epsilon=1e-8,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line contains a trailing whitespace (at the end of the line). That's why your first build failied during the PEP-8 check.

allow_huge=False, fftn=np.fft.fftn, ifftn=np.fft.ifftn,
complex_dtype=np.complex):
"""
Convolve an ndarray with an nd-kernel. Returns a convolved image with
Expand Down Expand Up @@ -312,6 +312,9 @@ def convolve_fft(array, kernel, boundary='fill', fill_value=0, crop=True,
256.
quiet : bool, optional
Silence warning message about NaN interpolation
normalized_epsilon: float, optional
The upper limit on the deviation of the kernel sum with respect to unity.
Will be checked only if ``normalize_kernel`` is False. Default is "1e-8".
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this should mention somewhere that it is a relative tolerance. Since elsewhere we often use rtol for relative tolerance, I wonder if normalization_rtol might be a better argument name? (no strong opinions though).

allow_huge : bool, optional
Allow huge arrays in the FFT? If False, will raise an exception if the
array or kernel size is >1 GB
Expand Down Expand Up @@ -440,7 +443,7 @@ def convolve_fft(array, kernel, boundary='fill', fill_value=0, crop=True,
kernel = kernel / normalize_kernel(kernel)
kernel_is_normalized = True
else:
if np.abs(kernel.sum() - 1) < 1e-8:
if np.abs(kernel.sum() - 1) < normalized_epsilon:
kernel_is_normalized = True
else:
kernel_is_normalized = False
Expand Down