From 6a5b036e4c9f40c8c30ef9aaee9faa690f8b74e5 Mon Sep 17 00:00:00 2001 From: Thomas Robitaille Date: Thu, 9 Apr 2020 22:36:37 +0100 Subject: [PATCH] Fix bug that caused errors when slicing a cube with a mask set to None --- CHANGES.rst | 1 + spectral_cube/spectral_cube.py | 4 +-- .../data/nomask.image/logtable/table.dat | Bin 0 -> 1392 bytes .../tests/data/nomask.image/logtable/table.f0 | Bin 0 -> 98816 bytes .../data/nomask.image/logtable/table.info | 4 +++ .../data/nomask.image/logtable/table.lock | Bin 0 -> 325 bytes .../tests/data/nomask.image/table.dat | Bin 0 -> 8753 bytes .../tests/data/nomask.image/table.f0 | Bin 0 -> 293 bytes .../tests/data/nomask.image/table.f0_TSM0 | Bin 0 -> 480 bytes .../tests/data/nomask.image/table.info | 3 +++ .../tests/data/nomask.image/table.lock | Bin 0 -> 325 bytes spectral_cube/tests/test_casafuncs.py | 25 ++++++++++++++++++ spectral_cube/tests/test_spectral_cube.py | 17 ++++++++++++ 13 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 spectral_cube/tests/data/nomask.image/logtable/table.dat create mode 100644 spectral_cube/tests/data/nomask.image/logtable/table.f0 create mode 100644 spectral_cube/tests/data/nomask.image/logtable/table.info create mode 100644 spectral_cube/tests/data/nomask.image/logtable/table.lock create mode 100644 spectral_cube/tests/data/nomask.image/table.dat create mode 100644 spectral_cube/tests/data/nomask.image/table.f0 create mode 100644 spectral_cube/tests/data/nomask.image/table.f0_TSM0 create mode 100644 spectral_cube/tests/data/nomask.image/table.info create mode 100644 spectral_cube/tests/data/nomask.image/table.lock diff --git a/CHANGES.rst b/CHANGES.rst index ef8a66ca7..32431c38a 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -5,6 +5,7 @@ run a script to generate test files. #598 - Refactor package infrastructure to no longer use astropy-helpers. #599 - Switch to using unified I/O infrastructure from Astropy. #600 +- Bugfix: fix slicing of cubes with mask set to None. #621 - Refactor CASA I/O to use dask to access the array/mask data directly and to use only Python and Numpy to access image metadata. CASA images can now be read without CASA installed. #607, #609, #613 diff --git a/spectral_cube/spectral_cube.py b/spectral_cube/spectral_cube.py index 4df521f0f..d5ff86a86 100644 --- a/spectral_cube/spectral_cube.py +++ b/spectral_cube/spectral_cube.py @@ -1223,7 +1223,7 @@ def __getitem__(self, view): copy=False, unit=self.unit, spectral_unit=self._spectral_unit, - mask=self.mask[view], + mask=self.mask[view] if self.mask is not None else None, meta=meta, **bmarg ) @@ -1239,7 +1239,7 @@ def __getitem__(self, view): header['CUNIT3'] = self._spectral_unit.to_string(format='FITS') return Slice(value=self.filled_data[view], - mask=self.mask[view], + mask=self.mask[view] if self.mask is not None else None, wcs=newwcs, copy=False, unit=self.unit, diff --git a/spectral_cube/tests/data/nomask.image/logtable/table.dat b/spectral_cube/tests/data/nomask.image/logtable/table.dat new file mode 100644 index 0000000000000000000000000000000000000000..26a18b65dd799e9e028c16a518db1e76d2fa9844 GIT binary patch literal 1392 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 literal 0 HcmV?d00001 diff --git a/spectral_cube/tests/data/nomask.image/table.f0 b/spectral_cube/tests/data/nomask.image/table.f0 new file mode 100644 index 0000000000000000000000000000000000000000..fb7f0dbd96da47e0dfd8a7057dbe11608b8d58b5 GIT binary patch literal 293 zcmdnDZ{I!!21Z2&1_r*6%$(E|=hU2>;1b`&JfH|85NiT4r)NNZab`(oK1`4WD98%L zAetG7nSl5n5OaZzfN2Mbf&s`J5M~Er=G?>rupmS?BTNpY