diff --git a/pygac_fdr/tests/test_writer.py b/pygac_fdr/tests/test_writer.py index 7e1df5d..0072e6f 100644 --- a/pygac_fdr/tests/test_writer.py +++ b/pygac_fdr/tests/test_writer.py @@ -16,8 +16,9 @@ # You should have received a copy of the GNU General Public License along with # pygac-fdr. If not, see . +import numpy as np import unittest -from pygac_fdr.writer import NetcdfWriter +from pygac_fdr.writer import NetcdfWriter, DEFAULT_ENCODING class NetcdfWriterTest(unittest.TestCase): @@ -27,3 +28,22 @@ def test_get_integer_version(self): self.assertEqual(writer._get_integer_version('1.2.3'), 123) self.assertEqual(writer._get_integer_version('12.3.4'), 1234) self.assertRaises(ValueError, writer._get_integer_version, '1.10.1') + + def test_default_encoding(self): + bt_range = np.arange(170, 330, 1, dtype='f8') + refl_range = np.arange(0, 1.5, 0.1, dtype='f8') + test_data = { + 'reflectance_channel_1': refl_range, + 'reflectance_channel_2': refl_range, + 'brightness_temperature_channel_3': bt_range, + 'reflectance_channel_3a': refl_range, + 'brightness_temperature_channel_3b': bt_range, + 'brightness_temperature_channel_4': bt_range, + 'brightness_temperature_channel_5': bt_range + } + for ch, data in test_data.items(): + enc = DEFAULT_ENCODING[ch] + data_enc = ((data - enc['add_offset']) / enc['scale_factor']).astype( + enc['dtype']) + data_dec = data_enc * enc['scale_factor'] + enc['add_offset'] + np.testing.assert_allclose(data_dec, data, rtol=0.1) diff --git a/pygac_fdr/writer.py b/pygac_fdr/writer.py index 34edea3..03633b5 100644 --- a/pygac_fdr/writer.py +++ b/pygac_fdr/writer.py @@ -65,12 +65,12 @@ '_FillValue': FILL_VALUE_INT16, 'zlib': True, 'complevel': 4}, - 'reflectance_channel_3': {'dtype': 'int16', - 'scale_factor': 0.01, - 'add_offset': 0, - '_FillValue': FILL_VALUE_INT16, - 'zlib': True, - 'complevel': 4}, + 'brightness_temperature_channel_3': {'dtype': 'int16', + 'scale_factor': 0.01, + 'add_offset': 273.15, + '_FillValue': FILL_VALUE_INT16, + 'zlib': True, + 'complevel': 4}, 'reflectance_channel_3a': {'dtype': 'int16', 'scale_factor': 0.01, 'add_offset': 0,