def setUp(self, fromfile): """Setup the hrit file handler for testing.""" m = mock.mock_open() fromfile.return_value = np.array([(1, 2)], dtype=[('total_header_length', int), ('hdr_id', int)]) with mock.patch('satpy.readers.hrit_base.open', m, create=True) as newopen: newopen.return_value.__enter__.return_value.tell.return_value = 1 self.reader = HRITFileHandler('filename', {'platform_shortname': 'MSG3', 'start_time': datetime(2016, 3, 3, 0, 0)}, {'filetype': 'info'}, [mock.MagicMock(), mock.MagicMock(), mock.MagicMock()]) ncols = 3712 nlines = 464 nbits = 10 self.reader.mda['number_of_bits_per_pixel'] = nbits self.reader.mda['number_of_lines'] = nlines self.reader.mda['number_of_columns'] = ncols self.reader.mda['data_field_length'] = nlines * ncols * nbits self.reader.mda['cfac'] = 5 self.reader.mda['lfac'] = 5 self.reader.mda['coff'] = 10 self.reader.mda['loff'] = 10 self.reader.mda['projection_parameters'] = {} self.reader.mda['projection_parameters']['a'] = 6378169.0 self.reader.mda['projection_parameters']['b'] = 6356583.8 self.reader.mda['projection_parameters']['h'] = 35785831.0 self.reader.mda['projection_parameters']['SSP_longitude'] = 44
def setUp(self, fromfile): """Setup the hrit file handler for testing.""" m = mock.mock_open() fromfile.return_value = np.array([(1, 2)], dtype=[('total_header_length', int), ('hdr_id', int)]) with mock.patch('satpy.readers.hrit_base.open', m, create=True) as newopen: newopen.return_value.__enter__.return_value.tell.return_value = 1 self.reader = HRITFileHandler('filename', {'platform_shortname': 'MSG3', 'start_time': datetime(2016, 3, 3, 0, 0)}, {'filetype': 'info'}, [mock.MagicMock(), mock.MagicMock(), mock.MagicMock()])
class TestHRITFileHandler(unittest.TestCase): """Test the HRITFileHandler.""" @mock.patch('satpy.readers.hrit_base.np.fromfile') def setUp(self, fromfile): """Setup the hrit file handler for testing.""" m = mock.mock_open() fromfile.return_value = np.array([(1, 2)], dtype=[('total_header_length', int), ('hdr_id', int)]) with mock.patch('satpy.readers.hrit_base.open', m, create=True) as newopen: newopen.return_value.__enter__.return_value.tell.return_value = 1 self.reader = HRITFileHandler( 'filename', { 'platform_shortname': 'MSG3', 'start_time': datetime(2016, 3, 3, 0, 0) }, {'filetype': 'info'}, [mock.MagicMock(), mock.MagicMock(), mock.MagicMock()]) def test_get_xy_from_linecol(self): """Test get_xy_from_linecol.""" x__, y__ = self.reader.get_xy_from_linecol(0, 0, (10, 10), (5, 5)) self.assertEqual(-131072, x__) self.assertEqual(-131072, y__) x__, y__ = self.reader.get_xy_from_linecol(10, 10, (10, 10), (5, 5)) self.assertEqual(0, x__) self.assertEqual(0, y__) x__, y__ = self.reader.get_xy_from_linecol(20, 20, (10, 10), (5, 5)) self.assertEqual(131072, x__) self.assertEqual(131072, y__) def test_get_area_extent(self): res = self.reader.get_area_extent((20, 20), (10, 10), (5, 5), 33) exp = (-71717.44995740513, -71717.44995740513, 79266.655216079365, 79266.655216079365) self.assertTupleEqual(res, exp)
class TestHRITFileHandler(unittest.TestCase): """Test the HRITFileHandler.""" @mock.patch('satpy.readers.hrit_base.np.fromfile') def setUp(self, fromfile): """Setup the hrit file handler for testing.""" m = mock.mock_open() fromfile.return_value = np.array([(1, 2)], dtype=[('total_header_length', int), ('hdr_id', int)]) with mock.patch('satpy.readers.hrit_base.open', m, create=True) as newopen: newopen.return_value.__enter__.return_value.tell.return_value = 1 self.reader = HRITFileHandler('filename', {'platform_shortname': 'MSG3', 'start_time': datetime(2016, 3, 3, 0, 0)}, {'filetype': 'info'}, [mock.MagicMock(), mock.MagicMock(), mock.MagicMock()]) ncols = 3712 nlines = 464 nbits = 10 self.reader.mda['number_of_bits_per_pixel'] = nbits self.reader.mda['number_of_lines'] = nlines self.reader.mda['number_of_columns'] = ncols self.reader.mda['data_field_length'] = nlines * ncols * nbits self.reader.mda['cfac'] = 5 self.reader.mda['lfac'] = 5 self.reader.mda['coff'] = 10 self.reader.mda['loff'] = 10 self.reader.mda['projection_parameters'] = {} self.reader.mda['projection_parameters']['a'] = 6378169.0 self.reader.mda['projection_parameters']['b'] = 6356583.8 self.reader.mda['projection_parameters']['h'] = 35785831.0 self.reader.mda['projection_parameters']['SSP_longitude'] = 44 def test_get_xy_from_linecol(self): """Test get_xy_from_linecol.""" x__, y__ = self.reader.get_xy_from_linecol(0, 0, (10, 10), (5, 5)) self.assertEqual(-131072, x__) self.assertEqual(-131072, y__) x__, y__ = self.reader.get_xy_from_linecol(10, 10, (10, 10), (5, 5)) self.assertEqual(0, x__) self.assertEqual(0, y__) x__, y__ = self.reader.get_xy_from_linecol(20, 20, (10, 10), (5, 5)) self.assertEqual(131072, x__) self.assertEqual(131072, y__) def test_get_area_extent(self): res = self.reader.get_area_extent((20, 20), (10, 10), (5, 5), 33) exp = (-71717.44995740513, -71717.44995740513, 79266.655216079365, 79266.655216079365) self.assertTupleEqual(res, exp) def test_get_area_def(self): area = self.reader.get_area_def('VIS06') self.assertEqual(area.proj_dict, {'a': 6378169.0, 'b': 6356583.8, 'h': 35785831.0, 'lon_0': 44.0, 'proj': 'geos', 'units': 'm'}) self.assertEqual(area.area_extent, (-77771774058.38356, -77771774058.38356, 30310525626438.438, 3720765401003.719)) @mock.patch('satpy.readers.hrit_base.np.memmap') def test_read_band(self, memmap): nbits = self.reader.mda['number_of_bits_per_pixel'] memmap.return_value = np.random.randint(0, 256, size=int((464 * 3712 * nbits) / 8), dtype=np.uint8) res = self.reader.read_band('VIS006', None) self.assertEqual(res.compute().shape, (464, 3712))
class TestHRITFileHandler(unittest.TestCase): """Test the HRITFileHandler.""" @mock.patch('satpy.readers.hrit_base.np.fromfile') def setUp(self, fromfile): """Set up the hrit file handler for testing.""" m = mock.mock_open() fromfile.return_value = np.array([(1, 2)], dtype=[('total_header_length', int), ('hdr_id', int)]) with mock.patch('satpy.readers.hrit_base.open', m, create=True) as newopen, \ mock.patch('satpy.readers.utils.open', m, create=True) as utilopen, \ mock.patch.object(HRITFileHandler, '_get_hd', new=new_get_hd): newopen.return_value.__enter__.return_value.tell.return_value = 1 FAKE_DATA_LARGE_ENOUGH_FOR_TESTING = bytes([0] * 8192) utilopen.return_value.__enter__.return_value.read.return_value = FAKE_DATA_LARGE_ENOUGH_FOR_TESTING self.reader = HRITFileHandler( 'filename', { 'platform_shortname': 'MSG3', 'start_time': datetime(2016, 3, 3, 0, 0) }, {'filetype': 'info'}, [mock.MagicMock(), mock.MagicMock(), mock.MagicMock()]) ncols = 3712 nlines = 464 nbits = 10 self.reader.mda['number_of_bits_per_pixel'] = nbits self.reader.mda['number_of_lines'] = nlines self.reader.mda['number_of_columns'] = ncols self.reader.mda['data_field_length'] = nlines * ncols * nbits self.reader.mda['cfac'] = 5 self.reader.mda['lfac'] = 5 self.reader.mda['coff'] = 10 self.reader.mda['loff'] = 10 self.reader.mda['projection_parameters'] = {} self.reader.mda['projection_parameters']['a'] = 6378169.0 self.reader.mda['projection_parameters']['b'] = 6356583.8 self.reader.mda['projection_parameters']['h'] = 35785831.0 self.reader.mda['projection_parameters']['SSP_longitude'] = 44 def test_get_xy_from_linecol(self): """Test get_xy_from_linecol.""" x__, y__ = self.reader.get_xy_from_linecol(0, 0, (10, 10), (5, 5)) self.assertEqual(-131072, x__) self.assertEqual(-131072, y__) x__, y__ = self.reader.get_xy_from_linecol(10, 10, (10, 10), (5, 5)) self.assertEqual(0, x__) self.assertEqual(0, y__) x__, y__ = self.reader.get_xy_from_linecol(20, 20, (10, 10), (5, 5)) self.assertEqual(131072, x__) self.assertEqual(131072, y__) def test_get_area_extent(self): """Test getting the area extent.""" res = self.reader.get_area_extent((20, 20), (10, 10), (5, 5), 33) exp = (-71717.44995740513, -71717.44995740513, 79266.655216079365, 79266.655216079365) self.assertTupleEqual(res, exp) def test_get_area_def(self): """Test getting an area definition.""" from pyresample.utils import proj4_radius_parameters area = self.reader.get_area_def('VIS06') proj_dict = area.proj_dict a, b = proj4_radius_parameters(proj_dict) self.assertEqual(a, 6378169.0) self.assertEqual(b, 6356583.8) self.assertEqual(proj_dict['h'], 35785831.0) self.assertEqual(proj_dict['lon_0'], 44.0) self.assertEqual(proj_dict['proj'], 'geos') self.assertEqual(proj_dict['units'], 'm') self.assertEqual(area.area_extent, (-77771774058.38356, -77771774058.38356, 30310525626438.438, 3720765401003.719)) @mock.patch('satpy.readers.hrit_base.np.memmap') def test_read_band(self, memmap): """Test reading a single band.""" nbits = self.reader.mda['number_of_bits_per_pixel'] memmap.return_value = np.random.randint(0, 256, size=int( (464 * 3712 * nbits) / 8), dtype=np.uint8) res = self.reader.read_band('VIS006', None) self.assertEqual(res.compute().shape, (464, 3712))