Describe the bug
The two Gaussian convolution layers, images.GaussConvFourier and images.GaussConvImage, do not yield consistent results when considering elliptical beams with some non-zero rotation value Omega.
It appears the images.GaussConvFourier routine is consistent with our convention expectations (positive Omega is rotated from North towards East, 0 degrees has FWHM_maj aligned with N-S) whileimages.GaussConvImage follows the opposite convention.
See the output of the images.test_GaussConvFourier_rotate and images.test_GaussConvImage_rotate tests.
Screenshots
The routines appear to be consistent for Omega = 0.


But look noticeably different for Omega = 30. Compare the struts/veins in the lower half of the butterflies wings in the right vs. left wings. The GaussConvImage appears to give the expected result, where struts aligned with the beam major axis look sharpest.


Suggested fix
- Investigate what is flipped inside the
GaussConvFourier routine with regards to the beam.
- Write a new test directly comparing the per-pixel output from images sent through both routines, for some non-zero and non-symmetric rotation.
- Also, the Omega=0 results look less consistent than expected, so further tests to investigate these discrepancies.
Describe the bug
The two Gaussian convolution layers,
images.GaussConvFourierandimages.GaussConvImage, do not yield consistent results when considering elliptical beams with some non-zero rotation value Omega.It appears the
images.GaussConvFourierroutine is consistent with our convention expectations (positive Omega is rotated from North towards East, 0 degrees has FWHM_maj aligned with N-S) whileimages.GaussConvImagefollows the opposite convention.See the output of the
images.test_GaussConvFourier_rotateandimages.test_GaussConvImage_rotatetests.Screenshots


The routines appear to be consistent for Omega = 0.
But look noticeably different for Omega = 30. Compare the struts/veins in the lower half of the butterflies wings in the right vs. left wings. The GaussConvImage appears to give the expected result, where struts aligned with the beam major axis look sharpest.


Suggested fix
GaussConvFourierroutine with regards to the beam.