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

Padding and correlation options for WaveletOperator + check for range_geometry size #1638

Merged
merged 8 commits into from
Jan 11, 2024

Conversation

tommheik
Copy link
Contributor

@tommheik tommheik commented Dec 21, 2023

Describe your changes

  • Added option to specify convolution padding mode via the keyword bnd_cond similar to GradientOperator. This just applies the existing options from pywt.
  • Added option to specify axes using the correlation keyword similar to GradientOperator. This sets the axes unless axes is already specified, which takes priority. It also gives errors and warnings for nonsense choices.
  • The size of the range_geometry is now checked upon initialization to make sure the wavelet coefficients fit.
  • Some small fixes and comments. Mostly for VectorGeometry which has so many weird behaviours such as not setting the shape automatically. Also the special option for setting 1D domain geometry has been removed because it was pointless.

Describe any testing you have performed

  • None

Describe any testing you wish to be implemented :)

  • The range_geometry size checking does check for problems but these should be tested for:
    • Use giving wrong size range should give error
    • Not decomposing all dimensions (either via axes or correlation) should keep those dimensions same size as input
  • correlation and axes are also checked for clashes and overall viability
    • Correlation for Channels should not work with data without channels
    • Correlation with 1D data should always give error
    • What happens if user labels 1D data to channel or one of the dimensions in 2D data?

Link relevant issues

- Added string-based `correlation` keywords for defining decomposition `axes`. Specifying `axes` still takes priority though. This is similar behaviour as `GradientOperator`
- Added string-based convolution boundary condition `bnd_cond` to set the wavelet extension mode. This is similar behaviour as `GradientOperator`
- Removed special case for `VectorGeometry`, the user should give the geometry as with 2D and 3D. There was no reason to have this behaviour.
The size of `range_geometry` is now checked upon initialization to make sure its size matches the wavelet coefficient array size.
@MargaretDuff
Copy link
Member

Thanks @tommheik - @paskino and I are on leave until 8th January but will have a look once we are back

@MargaretDuff MargaretDuff merged commit bd3aa3e into TomographicImaging:wavelet_regularisation Jan 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants