From 5ce3bb0cd30b85f38caa59390f91a743e0537e44 Mon Sep 17 00:00:00 2001 From: Wolfgang Kastaun <wolfgang.kastaun@aei.mpg.de> Date: Thu, 30 Jan 2025 16:47:48 +0100 Subject: [PATCH] provide convenience method to set up dsp based shift inversion --- lisainstrument/shift_inversion_dask.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/lisainstrument/shift_inversion_dask.py b/lisainstrument/shift_inversion_dask.py index afac2ad..f41f226 100644 --- a/lisainstrument/shift_inversion_dask.py +++ b/lisainstrument/shift_inversion_dask.py @@ -17,6 +17,7 @@ from lisainstrument.regular_interpolators import ( RegularInterpolator, make_regular_interpolator_lagrange, ) +from lisainstrument.dynamic_delay_dsp import make_regular_interpolator_dsp from lisainstrument.shift_inversion_numpy import fixed_point_iter @@ -145,3 +146,23 @@ def make_shift_inverse_lagrange_dask( """ interp = make_regular_interpolator_lagrange(order) return ShiftInverseDask(max_abs_shift, interp, max_iter, tolerance) + +def make_shift_inverse_dsp_dask( + order: int, + max_abs_shift: float, + max_iter: int, + tolerance: float, +) -> ShiftInverseDask: + """Set up ShiftInverseDask instance using dsp.timeshift as interpolation method. + + Arguments: + order: Order of the Lagrange polynomials + max_abs_shift: Upper limit for absolute difference between coordinate frames w.r.t index space + max_iter: Maximum iterations before fail + tolerance: Maximum absolute error of result + + Returns: + Inversion function of type ShiftInverseNumpy + """ + interp = make_regular_interpolator_dsp(order) + return ShiftInverseDask(max_abs_shift, interp, max_iter, tolerance) -- GitLab