1616# You should have received a copy of the GNU General Public License along with
1717# pygac-fdr. If not, see <http://www.gnu.org/licenses/>.
1818
19+ import numpy as np
1920import unittest
20- from pygac_fdr .writer import NetcdfWriter
21+ from pygac_fdr .writer import NetcdfWriter , DEFAULT_ENCODING
2122
2223
2324class NetcdfWriterTest (unittest .TestCase ):
@@ -27,3 +28,22 @@ def test_get_integer_version(self):
2728 self .assertEqual (writer ._get_integer_version ('1.2.3' ), 123 )
2829 self .assertEqual (writer ._get_integer_version ('12.3.4' ), 1234 )
2930 self .assertRaises (ValueError , writer ._get_integer_version , '1.10.1' )
31+
32+ def test_default_encoding (self ):
33+ bt_range = np .arange (170 , 330 , 1 , dtype = 'f8' )
34+ refl_range = np .arange (0 , 1.5 , 0.1 , dtype = 'f8' )
35+ test_data = {
36+ 'reflectance_channel_1' : refl_range ,
37+ 'reflectance_channel_2' : refl_range ,
38+ 'brightness_temperature_channel_3' : bt_range ,
39+ 'reflectance_channel_3a' : refl_range ,
40+ 'brightness_temperature_channel_3b' : bt_range ,
41+ 'brightness_temperature_channel_4' : bt_range ,
42+ 'brightness_temperature_channel_5' : bt_range
43+ }
44+ for ch , data in test_data .items ():
45+ enc = DEFAULT_ENCODING [ch ]
46+ data_enc = ((data - enc ['add_offset' ]) / enc ['scale_factor' ]).astype (
47+ enc ['dtype' ])
48+ data_dec = data_enc * enc ['scale_factor' ] + enc ['add_offset' ]
49+ np .testing .assert_allclose (data_dec , data , rtol = 0.1 )
0 commit comments