def test_properties(self): config = CubeConfig() self.assertEqual(-180, config.easting) self.assertEqual(90, config.northing) self.assertEqual(((-180, -90), (180, 90)), config.geo_bounds) config = CubeConfig(grid_x0=430, grid_y0=28, grid_width=100, grid_height=100, spatial_res=0.5) self.assertEqual(35.0, config.easting) self.assertEqual(76.0, config.northing) self.assertEqual(((35.0, 26.0), (85.0, 76.0)), config.geo_bounds)
def test_get_images(self): provider = AerosolsProvider(CubeConfig(end_time=datetime(2003, 1, 1)), dir=SOURCE_DIR) provider.prepare() images = provider.compute_variable_images(datetime(2002, 7, 27), datetime(2002, 8, 4)) self.assertIsNotNone(images) self.assertTrue('aerosol_optical_thickness_1610' in images) image = images['aerosol_optical_thickness_1610'] self.assertEqual((720, 1440), image.shape) self.assertTrue('aerosol_optical_thickness_550' in images) image = images['aerosol_optical_thickness_550'] self.assertEqual((720, 1440), image.shape) self.assertTrue('aerosol_optical_thickness_555' in images) image = images['aerosol_optical_thickness_555'] self.assertEqual((720, 1440), image.shape) self.assertTrue('aerosol_optical_thickness_659' in images) image = images['aerosol_optical_thickness_659'] self.assertEqual((720, 1440), image.shape) self.assertTrue('aerosol_optical_thickness_865' in images) image = images['aerosol_optical_thickness_865'] self.assertEqual((720, 1440), image.shape)
def test_temporal_coverage(self): provider = AerosolsProvider(CubeConfig(end_time=datetime(2003, 1, 1)), dir=SOURCE_DIR) provider.prepare() self.assertEqual( (datetime(2002, 7, 24, 0, 0), datetime(2003, 1, 2, 0, 0)), provider.temporal_coverage)
def test_source_time_ranges(self): provider = AerosolsProvider(CubeConfig(end_time=datetime(2003, 1, 1)), dir=SOURCE_DIR) provider.prepare() source_time_ranges = provider.source_time_ranges self.assertEqual(97, len(source_time_ranges)) self.assert_source_time_ranges( source_time_ranges[0], datetime(2002, 7, 24, 0, 0), datetime(2002, 7, 25, 0, 0), self.get_source_dir_list(SOURCE_DIR) + [ '2002', '20020724-ESACCI-L3C_AEROSOL-AOD-AATSR_ENVISAT-SU_DAILY-fv4.1.nc' ], 0) self.assert_source_time_ranges( source_time_ranges[6], datetime(2002, 8, 6, 0, 0), datetime(2002, 8, 7, 0, 0), self.get_source_dir_list(SOURCE_DIR) + [ '2002', '20020806-ESACCI-L3C_AEROSOL-AOD-AATSR_ENVISAT-SU_DAILY-fv4.1.nc' ], 0) self.assert_source_time_ranges( source_time_ranges[96], datetime(2003, 1, 1, 0, 0), datetime(2003, 1, 2, 0, 0), self.get_source_dir_list(SOURCE_DIR) + [ '2003', '20030101-ESACCI-L3C_AEROSOL-AOD-AATSR_ENVISAT-SU_DAILY-fv4.1.nc' ], 0)
def test_temporal_coverage(self): provider = GlobVapourProvider(CubeConfig(), dir=SOURCE_DIR) provider.prepare() temporal_coverage = provider.temporal_coverage self.assertEqual( (datetime(1996, 1, 1, 0, 0), datetime(2009, 1, 1, 0, 0)), temporal_coverage)
def test_source_time_ranges(self): provider = BurntAreaProvider(CubeConfig(), dir=SOURCE_DIR) provider.prepare() source_time_ranges = provider.source_time_ranges self.assertEqual(225, len(source_time_ranges)) self.assert_source_time_ranges(source_time_ranges[0], datetime(1995, 1, 6, 0, 0), datetime(1995, 2, 6, 0, 0), self.get_source_dir_list(SOURCE_DIR) + ['BurntArea.GFED4.1995.nc.gz'], 0) self.assert_source_time_ranges(source_time_ranges[1], datetime(1995, 2, 6, 0, 0), datetime(1995, 3, 6, 0, 0), self.get_source_dir_list(SOURCE_DIR) + ['BurntArea.GFED4.1995.nc.gz'], 1) self.assert_source_time_ranges(source_time_ranges[6], datetime(1995, 7, 6, 0, 0), datetime(1995, 8, 6, 0, 0), self.get_source_dir_list(SOURCE_DIR) + ['BurntArea.GFED4.1995.nc.gz'], 6) self.assert_source_time_ranges(source_time_ranges[224], datetime(2014, 2, 1, 0, 0), datetime(2014, 3, 1, 0, 0), self.get_source_dir_list(SOURCE_DIR) + ['BurntArea.GFED4.2014.nc.gz'], 1)
def test_source_time_ranges(self): provider = SnowAreaExtentProvider(CubeConfig(), dir=SOURCE_DIR, resampling_order="space_first") provider.prepare() source_time_ranges = provider.source_time_ranges self.assertEqual(120, len(source_time_ranges)) self.assert_source_time_ranges(source_time_ranges[0], datetime(2003, 1, 1, 0, 0, 0, 33), datetime(2003, 2, 1, 0, 0, 0, 33), self.get_source_dir_list(SOURCE_DIR) + ['MFSC.36000.18000.2003.nc'], 0) self.assert_source_time_ranges(source_time_ranges[1], datetime(2003, 2, 1, 0, 0, 0, 33), datetime(2003, 3, 1, 0, 0, 0, 33), self.get_source_dir_list(SOURCE_DIR) + ['MFSC.36000.18000.2003.nc'], 1) self.assert_source_time_ranges(source_time_ranges[6], datetime(2003, 7, 1, 0, 0, 0, 33), datetime(2003, 8, 1, 0, 0, 0, 33), self.get_source_dir_list(SOURCE_DIR) + ['MFSC.36000.18000.2003.nc'], 6) self.assert_source_time_ranges(source_time_ranges[119], datetime(2012, 12, 1, 0, 0, 0, 33), datetime(2013, 1, 1, 0, 0, 0, 33), self.get_source_dir_list(SOURCE_DIR) + ['MFSC.36000.18000.2012.nc'], 11)
def test_temporal_coverage(self): provider = BurntAreaProvider(CubeConfig(), dir=SOURCE_DIR) provider.prepare() temporal_coverage = provider.temporal_coverage self.assertEqual((datetime(1995, 1, 6, 0, 0), datetime(2014, 3, 1, 0, 0)), temporal_coverage)
def test_temporal_coverage(self): provider = SnowWaterEquivalentProvider(CubeConfig(), dir=SOURCE_DIR) provider.prepare() temporal_coverage = provider.temporal_coverage self.assertEqual( (datetime(1980, 1, 1, 0, 0), datetime(2013, 1, 1, 0, 0)), temporal_coverage)
def test_temporal_coverage(self): provider = SnowAreaExtentProvider(CubeConfig(), dir=SOURCE_DIR, resampling_order="space_first") provider.prepare() temporal_coverage = provider.temporal_coverage self.assertEqual((datetime(2003, 1, 1, 0, 0, 0, 33), datetime(2013, 1, 1, 0, 0, 0, 33)), temporal_coverage)
def test_temporal_coverage(self): provider = CountryMaskProvider( CubeConfig(end_time=datetime(2003, 1, 1)), dir=SOURCE_DIR) provider.prepare() self.assertEqual( (datetime(2001, 1, 1, 0, 0), datetime(2003, 1, 1, 0, 0)), provider.temporal_coverage)
def test_get_high_res_images(self): provider = AerosolsProvider(CubeConfig(grid_width=4320, grid_height=2160, spatial_res=1 / 12, end_time=datetime(2003, 1, 1)), dir=SOURCE_DIR) provider.prepare() images = provider.compute_variable_images(datetime(2002, 7, 27), datetime(2002, 8, 4)) self.assertIsNotNone(images) self.assertTrue('aerosol_optical_thickness_1610' in images) image = images['aerosol_optical_thickness_1610'] self.assertEqual((2160, 4320), image.shape) self.assertTrue('aerosol_optical_thickness_550' in images) image = images['aerosol_optical_thickness_550'] self.assertEqual((2160, 4320), image.shape) self.assertTrue('aerosol_optical_thickness_555' in images) image = images['aerosol_optical_thickness_555'] self.assertEqual((2160, 4320), image.shape) self.assertTrue('aerosol_optical_thickness_659' in images) image = images['aerosol_optical_thickness_659'] self.assertEqual((2160, 4320), image.shape) self.assertTrue('aerosol_optical_thickness_865' in images) image = images['aerosol_optical_thickness_865'] self.assertEqual((2160, 4320), image.shape)
def test_source_time_ranges(self): provider = LandSurfTemperatureProvider(CubeConfig( start_time=datetime(2003, 1, 1, 0, 0), end_time=datetime(2003, 12, 31, 23, 0)), dir=SOURCE_DIR) provider.prepare() source_time_ranges = provider.source_time_ranges self.assertEqual(320, len(source_time_ranges)) self.assert_source_time_ranges( source_time_ranges[0], datetime(2003, 1, 2, 0, 0), datetime(2003, 1, 3, 0, 0), self.get_source_dir_list(SOURCE_DIR) + [ 'GT_SSD-L3-AATSR_LST_3-20030102_H1.0V1.0-H36.0V18.0-CUOL-0.05X0.05-V1.0.nc' ], 0) self.assert_source_time_ranges( source_time_ranges[10], datetime(2003, 1, 13, 0, 0), datetime(2003, 1, 14, 0, 0), self.get_source_dir_list(SOURCE_DIR) + [ 'GT_SSD-L3-AATSR_LST_3-20030113_H1.0V1.0-H36.0V18.0-CUOL-0.05X0.05-V1.0.nc' ], 0) self.assert_source_time_ranges( source_time_ranges[20], datetime(2003, 1, 24, 0, 0), datetime(2003, 1, 25, 0, 0), self.get_source_dir_list(SOURCE_DIR) + [ 'GT_SSD-L3-AATSR_LST_3-20030124_H1.0V1.0-H36.0V18.0-CUOL-0.05X0.05-V1.0.nc' ], 0)
def test_properties(self): cube_config = CubeConfig() provider = MyStaticCubeSourceProvider(cube_config) self.assertEqual(provider.name, 'test_static') self.assertIs(provider.cube_config, cube_config) self.assertEqual(provider.temporal_coverage, (datetime(2001, 1, 1), datetime(2012, 1, 1))) self.assertEqual(provider.spatial_coverage, (0, 0, 1440, 720))
def test_get_high_res_images(self): provider = CEmissionsProvider(CubeConfig(grid_width=4320, grid_height=2160, spatial_res=1 / 12), dir=SOURCE_DIR) provider.prepare() images = provider.compute_variable_images(datetime(2001, 1, 1), datetime(2001, 1, 9)) self.assertIsNotNone(images) self.assertTrue('c_emissions' in images) image = images['c_emissions'] self.assertEqual((2160, 4320), image.shape)
def test_get_images(self): provider = CEmissionsProvider(CubeConfig(), dir=SOURCE_DIR) provider.prepare() images = provider.compute_variable_images(datetime(2001, 1, 1), datetime(2001, 1, 9)) self.assertIsNotNone(images) self.assertTrue('c_emissions' in images) image = images['c_emissions'] self.assertEqual((720, 1440), image.shape)
def test_get_images(self): provider = BurntAreaProvider(CubeConfig(), dir=SOURCE_DIR) provider.prepare() images = provider.compute_variable_images(datetime(1996, 1, 1), datetime(1996, 1, 9)) self.assertIsNotNone(images) self.assertTrue('burnt_area' in images) image = images['burnt_area'] self.assertEqual((720, 1440), image.shape)
def test_get_images_from_single_time_period(self): provider = SnowAreaExtentProvider(CubeConfig(), dir=SOURCE_DIR, resampling_order="space_first") provider.prepare() images = provider.compute_variable_images(datetime(2003, 1, 1), datetime(2003, 1, 31)) self.assertIsNotNone(images) self.assertTrue('fractional_snow_cover' in images) image = images['fractional_snow_cover'] self.assertEqual((720, 1440), image.shape)
def test_get_images(self): provider = AirTemperatureProvider(CubeConfig(end_time=datetime(2001, 6, 1, 0, 0)), dir=SOURCE_DIR, resampling_order="space_first") provider.prepare() images = provider.compute_variable_images(datetime(2001, 1, 1), datetime(2001, 1, 9)) self.assertIsNotNone(images) self.assertTrue('air_temperature_2m' in images) image = images['air_temperature_2m'] self.assertEqual((720, 1440), image.shape)
def test_temporal_coverage(self): provider = GleamProvider( CubeConfig(end_time=datetime(2001, 12, 31, 23, 0)), dir=SOURCE_DIR, var="S") provider.prepare() self.assertEqual( (datetime(2001, 1, 1, 0, 0), datetime(2002, 1, 1, 0, 0)), provider.temporal_coverage)
def test_get_high_res_images(self): provider = AirTemperatureProvider(CubeConfig(grid_width=4320, grid_height=2160, spatial_res=1 / 12, end_time=datetime(2001, 6, 1, 0, 0)), dir=SOURCE_DIR) provider.prepare() images = provider.compute_variable_images(datetime(2001, 1, 1), datetime(2001, 1, 9)) self.assertIsNotNone(images) self.assertTrue('air_temperature_2m' in images) image = images['air_temperature_2m'] self.assertEqual((2160, 4320), image.shape)
def test_get_images(self): provider = GlobVapourProvider(CubeConfig(), dir=SOURCE_DIR) provider.prepare() images = provider.compute_variable_images(datetime(2007, 1, 1), datetime(2007, 1, 9)) self.assertIsNotNone(images) self.assertTrue('water_vapour' in images) image = images['water_vapour'] self.assertEqual((720, 1440), image.shape)
def test_temporal_coverage(self): provider = LandSurfTemperatureProvider(CubeConfig( start_time=datetime(2003, 1, 1, 0, 0), end_time=datetime(2003, 12, 31, 23, 0)), dir=SOURCE_DIR) provider.prepare() self.assertEqual( (datetime(2003, 1, 2, 0, 0), datetime(2004, 1, 1, 0, 0)), provider.temporal_coverage)
def test_get_images(self): provider = SnowWaterEquivalentProvider(CubeConfig(), dir=SOURCE_DIR) provider.prepare() images = provider.compute_variable_images(datetime(2010, 1, 1), datetime(2010, 12, 31)) self.assertIsNotNone(images) self.assertTrue('snow_water_equivalent' in images) image = images['snow_water_equivalent'] self.assertEqual((720, 1440), image.shape) self.assertEqual(0, np.isnan(image).sum())
def test_get_images(self): provider = WaterMaskProvider(CubeConfig(end_time=datetime(2003, 1, 1)), dir=SOURCE_DIR) provider.prepare() images = provider.compute_variable_images(datetime(2002, 7, 27), datetime(2002, 8, 4)) self.assertIsNotNone(images) self.assertTrue('water_mask' in images) image = images['water_mask'] self.assertEqual((720, 1440), image.shape)
def test_get_images_outside_time_range(self): provider = CountryMaskProvider( CubeConfig(end_time=datetime(2002, 1, 1)), dir=SOURCE_DIR) provider.prepare() images = provider.compute_variable_images(datetime(2016, 7, 27), datetime(2016, 8, 4)) self.assertIsNotNone(images) self.assertTrue('country_mask' in images) image = images['country_mask'] self.assertEqual((720, 1440), image.shape)
def test_get_images(self): provider = GleamProvider( CubeConfig(end_time=datetime(2001, 12, 31, 23, 0)), dir=SOURCE_DIR, var="S") provider.prepare() images = provider.compute_variable_images(datetime(2001, 1, 1), datetime(2001, 1, 9)) self.assertIsNotNone(images) self.assertTrue('evaporative_stress' in images) image = images['evaporative_stress'] self.assertEqual((720, 1440), image.shape)
def test_get_images(self): provider = MPIBGCProvider( CubeConfig(end_time=datetime(2001, 12, 31, 23, 0)), dir=SOURCE_DIR + "/GPP", var="GPPall") provider.prepare() images = provider.compute_variable_images(datetime(2001, 1, 1), datetime(2001, 1, 9)) self.assertIsNotNone(images) self.assertTrue('gross_primary_productivity' in images) image = images['gross_primary_productivity'] self.assertEqual((720, 1440), image.shape)
def test_get_images(self): provider = MyCubeSourceProvider( CubeConfig(), [(datetime(2010, 1, 1), datetime(2010, 1, 5)), (datetime(2010, 1, 5), datetime(2010, 1, 9)), (datetime(2010, 1, 9), datetime(2010, 1, 13))]) provider.prepare() temporal_coverage = provider.temporal_coverage self.assertEqual((datetime(2010, 1, 1), datetime(2010, 1, 13)), temporal_coverage) # Requested range is exactly within all source ranges provider.compute_variable_images(datetime(2010, 1, 1), datetime(2010, 1, 13)) self.assertEqual([{0: 1.0, 1: 1.0, 2: 1.0}], provider.trace) # Requested range overlaps all source ranges provider.trace = [] provider.compute_variable_images(datetime(2009, 12, 30), datetime(2010, 1, 14)) self.assertEqual([{0: 1.0, 1: 1.0, 2: 1.0}], provider.trace) # Requested range is equal to first source range provider.trace = [] provider.compute_variable_images(datetime(2010, 1, 1), datetime(2010, 1, 5)) self.assertEqual([{0: 1.0}], provider.trace) # Requested range is within first source range and within last source range provider.trace = [] provider.compute_variable_images(datetime(2010, 1, 2), datetime(2010, 1, 10)) self.assertEqual([{0: 0.375, 1: 1.0, 2: 0.125}], provider.trace) # Requested range is sub-range of first source range provider.trace = [] provider.compute_variable_images(datetime(2010, 1, 1, 12), datetime(2010, 1, 4, 12)) self.assertEqual([{0: 1.0}], provider.trace) # Requested range is below first source range provider.trace = [] provider.compute_variable_images(datetime(2009, 1, 2), datetime(2009, 1, 10)) self.assertEqual([], provider.trace) # Requested range is after last source range provider.trace = [] provider.compute_variable_images(datetime(2012, 1, 2), datetime(2012, 1, 10)) self.assertEqual([], provider.trace)
def test_get_high_res_images(self): provider = SnowWaterEquivalentProvider(CubeConfig(grid_width=4320, grid_height=2160, spatial_res=1 / 12), dir=SOURCE_DIR) provider.prepare() images = provider.compute_variable_images(datetime(2010, 1, 1), datetime(2010, 12, 31)) self.assertIsNotNone(images) self.assertTrue('snow_water_equivalent' in images) image = images['snow_water_equivalent'] self.assertEqual((2160, 4320), image.shape) self.assertEqual(0, np.isnan(image).sum())