Fix weighted mean std when infinite values #898
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Quick description
Email from Po-Jui:
Mario and I found an unexpected behavior with the function weighted_mean_std in scilpy. np.average is used inside that function to compute the weighted mean with the image saved in a numpy masked array. In this case, the voxels of invalid nan values would be considered in the denominator of the weighted mean computation. To compute the weighted average on a masked numpy array without the invalid voxels, np.ma.average should be used.
Another thing we would like to propose is to check infinity values in the image, in addition to checking nan values. The proposed modification is in blue
...
Type of change
Check the relevant options.
Provide data, screenshots, command line to test (if relevant)
...
Checklist