def setUp(self, new_fh_init): """Setup the hrit file handler for testing.""" blob = '$HALFTONE:=10\r\n_NAME:=albedo\r\n_UNIT:=percent\r\n0:=0.0\r\n1023:=100.0\r\n'.encode() mda = {'projection_parameters': {'SSP_longitude': -123.0}, 'spectral_channel_id': 1, 'image_data_function': blob} HRITGOESFileHandler.filename = 'filename' HRITGOESFileHandler.mda = mda self.prologue = mock.MagicMock() self.prologue.prologue = test_pro self.reader = HRITGOESFileHandler('filename', {}, {}, self.prologue)
class TestHRITGOESFileHandler(unittest.TestCase): """Test the HRITFileHandler.""" @mock.patch('satpy.readers.goes_imager_hrit.HRITFileHandler.__init__') def setUp(self, new_fh_init): """Set up the hrit file handler for testing.""" blob = '$HALFTONE:=10\r\n_NAME:=albedo\r\n_UNIT:=percent\r\n0:=0.0\r\n1023:=100.0\r\n'.encode( ) mda = { 'projection_parameters': { 'SSP_longitude': -123.0 }, 'spectral_channel_id': 1, 'image_data_function': blob } HRITGOESFileHandler.filename = 'filename' HRITGOESFileHandler.mda = mda self.prologue = mock.MagicMock() self.prologue.prologue = test_pro self.reader = HRITGOESFileHandler('filename', {}, {}, self.prologue) def test_init(self): """Test the init.""" blob = '$HALFTONE:=10\r\n_NAME:=albedo\r\n_UNIT:=percent\r\n0:=0.0\r\n1023:=100.0\r\n'.encode( ) mda = { 'spectral_channel_id': 1, 'projection_parameters': { 'SSP_longitude': 100.1640625 }, 'image_data_function': blob } self.assertEqual(self.reader.mda, mda) @mock.patch('satpy.readers.goes_imager_hrit.HRITFileHandler.get_dataset') def test_get_dataset(self, base_get_dataset): """Test get_dataset.""" key = make_dataid(name="CH1", calibration='reflectance') base_get_dataset.return_value = DataArray(np.arange(25).reshape(5, 5)) res = self.reader.get_dataset(key, {}) expected = np.array( [[np.nan, 0.097752, 0.195503, 0.293255, 0.391007], [0.488759, 0.58651, 0.684262, 0.782014, 0.879765], [0.977517, 1.075269, 1.173021, 1.270772, 1.368524], [1.466276, 1.564027, 1.661779, 1.759531, 1.857283], [1.955034, 2.052786, 2.150538, 2.248289, 2.346041]]) self.assertTrue(np.allclose(res.values, expected, equal_nan=True)) self.assertEqual(res.attrs['units'], '%') self.assertDictEqual( res.attrs['orbital_parameters'], { 'projection_longitude': self.reader.mda['projection_parameters']['SSP_longitude'], 'projection_latitude': 0.0, 'projection_altitude': ALTITUDE })
class TestHRITGOESFileHandler(unittest.TestCase): """Test the HRITFileHandler.""" @mock.patch('satpy.readers.goes_imager_hrit.HRITFileHandler.__init__') def setUp(self, new_fh_init): """Set up the hrit file handler for testing.""" blob = '$HALFTONE:=10\r\n_NAME:=albedo\r\n_UNIT:=percent\r\n0:=0.0\r\n1023:=100.0\r\n'.encode( ) mda = { 'projection_parameters': { 'SSP_longitude': -123.0 }, 'spectral_channel_id': 1, 'image_data_function': blob } HRITGOESFileHandler.filename = 'filename' HRITGOESFileHandler.mda = mda self.prologue = mock.MagicMock() self.prologue.prologue = test_pro self.reader = HRITGOESFileHandler('filename', {}, {}, self.prologue) def test_init(self): """Test the init.""" blob = '$HALFTONE:=10\r\n_NAME:=albedo\r\n_UNIT:=percent\r\n0:=0.0\r\n1023:=100.0\r\n'.encode( ) mda = { 'spectral_channel_id': 1, 'projection_parameters': { 'SSP_longitude': 100.1640625 }, 'image_data_function': blob } self.assertEqual(self.reader.mda, mda) @mock.patch('satpy.readers.goes_imager_hrit.HRITFileHandler.get_dataset') def test_get_dataset(self, base_get_dataset): """Test get_dataset.""" key = make_dataid(name="CH1", calibration='reflectance') base_get_dataset.return_value = DataArray(np.arange(25).reshape(5, 5)) res = self.reader.get_dataset(key, {}) expected = np.array( [[np.nan, 0.097752, 0.195503, 0.293255, 0.391007], [0.488759, 0.58651, 0.684262, 0.782014, 0.879765], [0.977517, 1.075269, 1.173021, 1.270772, 1.368524], [1.466276, 1.564027, 1.661779, 1.759531, 1.857283], [1.955034, 2.052786, 2.150538, 2.248289, 2.346041]]) self.assertTrue(np.allclose(res.values, expected, equal_nan=True)) self.assertEqual(res.attrs['units'], '%') self.assertDictEqual( res.attrs['orbital_parameters'], { 'projection_longitude': self.reader.mda['projection_parameters']['SSP_longitude'], 'projection_latitude': 0.0, 'projection_altitude': ALTITUDE }) def test_get_area_def(self): """Test getting the area definition.""" self.reader.mda.update({ 'cfac': 10216334, 'lfac': 10216334, 'coff': 1408.0, 'loff': 944.0, 'number_of_lines': 464, 'number_of_columns': 2816 }) dsid = make_dataid(name="CH1", calibration='reflectance', resolution=3000) area = self.reader.get_area_def(dsid) a, b = proj4_radius_parameters(area.proj_dict) assert a == EQUATOR_RADIUS assert b == POLE_RADIUS assert area.proj_dict['h'] == ALTITUDE assert area.proj_dict['lon_0'] == 100.1640625 assert area.proj_dict['proj'] == 'geos' assert area.proj_dict['units'] == 'm' assert area.width == 2816 assert area.height == 464 assert area.area_id == 'goes-15_goes_imager_fd_3km' area_extent_exp = (-5639254.900260435, 1925159.4881528523, 5643261.475678028, 3784210.48191544) np.testing.assert_allclose(area.area_extent, area_extent_exp)