Antonio Valentino pushed to branch upstream at Debian GIS Project / trollimage
Commits: 0b4066e6 by Antonio Valentino at 2023-11-25T07:45:23+00:00 New upstream version 1.22.1 - - - - - 4 changed files: - CHANGELOG.md - trollimage/tests/test_image.py - trollimage/version.py - trollimage/xrimage.py Changes: ===================================== CHANGELOG.md ===================================== @@ -1,3 +1,20 @@ +## Version 1.22.1 (2023/11/24) + +### Issues Closed + +* [Issue 152](https://github.com/pytroll/trollimage/issues/152) - Linear stretch of `uint8` data gives unexpected results ([PR 153](https://github.com/pytroll/trollimage/pull/153) by [@pnuu](https://github.com/pnuu)) + +In this release 1 issue was closed. + +### Pull Requests Merged + +#### Bugs fixed + +* [PR 153](https://github.com/pytroll/trollimage/pull/153) - Fix stretching integer data ([152](https://github.com/pytroll/trollimage/issues/152)) + +In this release 1 pull request was closed. + + ## Version 1.22.0 (2023/11/23) ===================================== trollimage/tests/test_image.py ===================================== @@ -1631,6 +1631,25 @@ class TestXRImage: np.testing.assert_allclose(img.data.values, res, atol=1.e-6) + @pytest.mark.parametrize(("dtype", "max_val", "exp_min", "exp_max"), + ((np.uint8, 255, -0.005358012691140175, 1.0053772069513798), + (np.int8, 127, -0.004926108196377754, 1.0058689523488282), + (np.uint16, 65535, -0.005050825305515899, 1.005050893505104), + (np.int16, 32767, -0.005052744992717635, 1.0050527782880818), + (np.uint32, 4294967295, -0.005050505077517274, 1.0050505395923495), + (np.int32, 2147483647, -0.00505050499355784, 1.0050505395923495), + (int, 2147483647, -0.00505050499355784, 1.0050505395923495), + )) + def test_linear_stretch_integers(self, dtype, max_val, exp_min, exp_max): + """Test linear stretch with low-bit unsigned integer data.""" + arr = np.linspace(0, max_val, num=75, dtype=dtype).reshape(5, 5, 3) + data = xr.DataArray(arr.copy(), dims=['y', 'x', 'bands'], + coords={'bands': ['R', 'G', 'B']}) + img = xrimage.XRImage(data) + img.stretch_linear() + assert img.data.values.min() == pytest.approx(exp_min) + assert img.data.values.max() == pytest.approx(exp_max) + @pytest.mark.parametrize("dtype", (np.float32, np.float64, float)) def test_histogram_stretch(self, dtype): """Test histogram stretching.""" ===================================== trollimage/version.py ===================================== @@ -26,9 +26,9 @@ def get_keywords(): # setup.py/versioneer.py will grep for the variable names, so they must # each be defined on a line of their own. _version.py will just call # get_keywords(). - git_refnames = " (HEAD -> main, tag: v1.22.0)" - git_full = "dd16cdfbf40d8a245454ab5675166a1e9282b20c" - git_date = "2023-11-23 08:59:37 +0100" + git_refnames = " (HEAD -> main, tag: v1.22.1)" + git_full = "a84299fffaee504540cb7ab69a70b5690fb23156" + git_date = "2023-11-24 13:21:19 +0100" keywords = {"refnames": git_refnames, "full": git_full, "date": git_date} return keywords ===================================== trollimage/xrimage.py ===================================== @@ -1082,6 +1082,7 @@ class XRImage: attrs = self.data.attrs offset = -min_stretch * scale_factor + self.data = np.multiply(self.data, scale_factor, dtype=scale_factor.dtype) + offset self.data.attrs = attrs self.data.attrs.setdefault('enhancement_history', []).append({'scale': scale_factor, @@ -1095,8 +1096,13 @@ class XRImage: if isinstance(val, (list, tuple)): val = self.xrify_tuples(val) + dtype = self.data.dtype + if dtype in (np.uint8, np.int8, np.uint16, np.int16): + dtype = np.dtype(np.float32) + elif np.issubdtype(dtype, np.integer) or isinstance(dtype, int): + dtype = np.dtype(np.float64) try: - val = val.astype(self.data.dtype) + val = val.astype(dtype) except AttributeError: val = self.data.dtype.type(val) View it on GitLab: https://salsa.debian.org/debian-gis-team/trollimage/-/commit/0b4066e6f74bd56c2d2c5fd83dfa3207ee0b5189 -- View it on GitLab: https://salsa.debian.org/debian-gis-team/trollimage/-/commit/0b4066e6f74bd56c2d2c5fd83dfa3207ee0b5189 You're receiving this email because of your account on salsa.debian.org.
_______________________________________________ Pkg-grass-devel mailing list [email protected] https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/pkg-grass-devel
