Skip to content

Commit

Permalink
[BC] Enable ifft with single frequency/wavenumber axis
Browse files Browse the repository at this point in the history
  • Loading branch information
EmileDvs committed May 24, 2022
1 parent f6d7534 commit a82c604
Showing 1 changed file with 19 additions and 17 deletions.
36 changes: 19 additions & 17 deletions SciDataTool/Functions/fft_functions.py
Original file line number Diff line number Diff line change
Expand Up @@ -380,8 +380,9 @@ def comp_ifftn(values, axes_list, is_real=True):
freqs = comp_fft_freqs(
axis.input_data, axis.name == "time", is_real
)
if len(axis.corr_values) > 1:
if (
if len(axis.corr_values) == 1 or (
len(axis.corr_values) > 1
and (
not is_uniform(axis.corr_values)
or (
len(freqs) != len(axis.corr_values)
Expand All @@ -395,21 +396,22 @@ def comp_ifftn(values, axes_list, is_real=True):
atol=1e-8,
equal_nan=False,
)
):
# Data is at least non uniform in "frequency"
# Convert wavenumbers to frequencies if needed
frequencies = (
axis.corr_values
if axis.name == "time"
else axis.corr_values / (2 * pi)
)
axes_dict_non_uniform[axis.index] = [
axis.input_data,
frequencies,
]
# Keep only interpolation data
axis.values = axis.input_data
axis.input_data = None
)
):
# Data is at least non uniform in "frequency"
# Convert wavenumbers to frequencies if needed
frequencies = (
axis.corr_values
if axis.name == "time"
else axis.corr_values / (2 * pi)
)
axes_dict_non_uniform[axis.index] = [
axis.input_data,
frequencies,
]
# Keep only interpolation data
axis.values = axis.input_data
axis.input_data = None

# Compute non uniform inverse Fourier Transform for axes
if axes_dict_non_uniform:
Expand Down

0 comments on commit a82c604

Please sign in to comment.