Several significant changes to the Wavelength code were made:
First, the function to determine the estimated offset between rows of pixels was changed to use the new find_shift method rather than the xcor and xcor_peak methods. This new method is similar, but works out to be about 2x faster when timed using the %timeit tool in ipython.
Second, that shift determination was constrained to be within 3 pixels of the neighboring line, rather than within 30 pixels of the starting line. This ensures a much more continuous wavelength solution in the Y direction.
Third, when fitting Chebyshev polynomials to the wavelength solution for each line, an extra step is added (the smooth_solution method) to median filter each Chebyshev coefficient in the Y direction to limit the changes in wavelength solution from pixel line to adjacent pixel line.
This appears to have fixed the problem in #115, though further testing to ensure that it works in all cases is still pending.
Several significant changes to the Wavelength code were made:
First, the function to determine the estimated offset between rows of pixels was changed to use the new
find_shift
method rather than thexcor
andxcor_peak
methods. This new method is similar, but works out to be about 2x faster when timed using the%timeit
tool in ipython.Second, that shift determination was constrained to be within 3 pixels of the neighboring line, rather than within 30 pixels of the starting line. This ensures a much more continuous wavelength solution in the Y direction.
Third, when fitting Chebyshev polynomials to the wavelength solution for each line, an extra step is added (the
smooth_solution
method) to median filter each Chebyshev coefficient in the Y direction to limit the changes in wavelength solution from pixel line to adjacent pixel line.This appears to have fixed the problem in #115, though further testing to ensure that it works in all cases is still pending.