Skip to content

Combined reference updates - #576

Merged
gmloose merged 4 commits into
masterfrom
combined-reference-updates
Nov 9, 2026
Merged

gmloose merged 4 commits into
masterfrom
combined-reference-updates

Conversation

@gmloose

@gmloose gmloose commented Nov 9, 2026

Copy link
Copy Markdown
Collaborator

This PR bundles the updates to the reference outputs that were originally made in #535, #548, and #565, into a single update, to avoid unnecessary bloat of the Git repository.

AlexKurek and others added 4 commits November 9, 2026 14:49
`fit_island()` converts the beam PA to the convention used by `gaus_2d()` by adding 90 deg. That beam is passed to `get_maxima()` and then to `mclean()`, which adds another 90 deg. The clean model is therefore rotated by 90 deg.
**Bugs**
The wavelet module incorrectly generated the `model_wavelets.fits` and `resid_wavelets.fits`. After Gaussian fitting, the residual image is further processed by wavelet Gaussian fitting. However, the implementation did not correctly account for the standard Gaussian model when saving the final outputs.

- `model_wavelets.fits` contained only the additional model contributed by wavelet Gaussian fitting, rather than the complete source model.

- `resid_wavelets.fits` contained the original image with only the wavelet model subtracted. So the standard Gaussian model was still present in this image, meaning it was not the actual residual.

- This also caused incorrect results when wavelet Gaussian fitting was disabled (atrous_bdsm_do = False): the model image was 0 and the residual image was identical to the input image.

**Fixed**
- `model_wavelets.fits` contain the complete model (both standard and wavelet Gaussian components).

- `resid_wavelets.fits` contain the final residual after subtraction of both model components.

**Added**
- `model_wavelets_component.fits` to preserve the wavelet-only model.

Also updated the wavelet image filenames to distinguish wavelet components from remaining scale images when `atrous_sum = True`.
* Update reference outputs and make output comparison stricter

- Regenerate `test/reference_outputs` with the current master. The old
  ones had drifted: `resid_gaus.fits` differed by 2.9% (close to the CI
  tolerance of 3%), and the wavelet model images by 12.7%.
- `compare_results` now compares all subdirectories recursively (the
  images in `wavelet/model`, `wavelet/residual` and `wavelet/background`,
  and the top-level `ch0_*` images, were not compared), and fails if a file
  is missing in one of the runs (this was only logged).
- `tbdsf_process_image.py` takes the tolerance as `--rtol`, with a default
  of 0.001 for runs on the same kind of system as the one that generated
  the reference outputs (x86-64 Linux). CI and cibuildwheel use 0.03.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Restore reference outputs from master

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@gmloose gmloose self-assigned this Nov 9, 2026
@gmloose
gmloose requested a review from darafferty November 9, 2026 14:17

@darafferty darafferty left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!

@gmloose
gmloose merged commit 7ddb350 into master Nov 9, 2026
1 check passed
@gmloose
gmloose deleted the combined-reference-updates branch November 9, 2026 14:52
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