Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
 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)
Ejemplo n.º 4
0
 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)
Ejemplo n.º 5
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)
Ejemplo n.º 6
0
 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)
Ejemplo n.º 7
0
 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)
Ejemplo n.º 8
0
 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)
Ejemplo n.º 9
0
 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)
Ejemplo n.º 10
0
 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)
Ejemplo n.º 11
0
 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)
Ejemplo n.º 12
0
    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)
Ejemplo n.º 14
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))
Ejemplo n.º 15
0
 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)
Ejemplo n.º 16
0
 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)
Ejemplo n.º 17
0
 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)
Ejemplo n.º 18
0
 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)
Ejemplo n.º 19
0
 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)
Ejemplo n.º 20
0
 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)
Ejemplo n.º 21
0
 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)
Ejemplo n.º 22
0
 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)
Ejemplo n.º 24
0
 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())
Ejemplo n.º 25
0
    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)
Ejemplo n.º 26
0
    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)
Ejemplo n.º 27
0
 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)
Ejemplo n.º 28
0
 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)
Ejemplo n.º 29
0
    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)
Ejemplo n.º 30
0
 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())