def test_aggregate_categorical_season_membership(self): test_cube_a = common._generate_extended_cube() test_cube_a = ch.aggregate_categorical(test_cube_a, 'season_membership') self.assertIsNotNone(test_cube_a) self.assertEqual( test_cube_a.coord('season_membership').points[0], True)
def test_extract_categorical_month_number(self): test_cube_a = common._generate_extended_cube() constraint = iris.Constraint(month_number=12) test_cube_a = ch.extract_categorical(test_cube_a, 'month_number', constraint=constraint) self.assertIsNotNone(test_cube_a) self.assertEqual(test_cube_a.coord('month_number').points[0], 12) self.assertEqual(test_cube_a.coord('time').points[0], 3636.5)
def test_extract_categorical_weekday_number(self): test_cube_a = common._generate_extended_cube() constraint = iris.Constraint(weekday_number=5) test_cube_a = ch.extract_categorical(test_cube_a, 'weekday_number', constraint=constraint) self.assertIsNotNone(test_cube_a) self.assertEqual(test_cube_a.coord('weekday_number').points[0], 5) self.assertEqual(test_cube_a.coord('time').points[0], 3498.5)
def test_extract_categorical_day_of_year(self): test_cube_a = common._generate_extended_cube() constraint = iris.Constraint(day_of_year=134) test_cube_a = ch.extract_categorical(test_cube_a, 'day_of_year', constraint=constraint) self.assertIsNotNone(test_cube_a) self.assertEqual(test_cube_a.coord('day_of_year').points[0], 134) self.assertEqual(test_cube_a.coord('time').points[0], 3420.0)
def test_extract_categorical_season(self): test_cube_a = common._generate_extended_cube() constraint = iris.Constraint(season='son') test_cube_a = ch.extract_categorical(test_cube_a, 'season', constraint=constraint) self.assertIsNotNone(test_cube_a) self.assertEqual(test_cube_a.coord('season').points[0], 'son') self.assertEqual(test_cube_a.coord('time').points[0], 3575.5)
def test_extract_categorical_weekday_fullname(self): test_cube_a = common._generate_extended_cube() constraint = iris.Constraint(weekday_fullname='Saturday') test_cube_a = ch.extract_categorical(test_cube_a, 'weekday_fullname', constraint=constraint) self.assertIsNotNone(test_cube_a) self.assertEqual( test_cube_a.coord('weekday_fullname').points[0], 'Saturday') self.assertEqual(test_cube_a.coord('time').points[0], 3498.5)
def test_aggregate_categorical_compounds(self): test_cube_a = common._generate_extended_cube() test_cube_a = ch.aggregate_categorical(test_cube_a, 'annual_seasonal_mean') self.assertIsNotNone(test_cube_a) self.assertEqual(test_cube_a.coord('time').bounds[0][0], 0) self.assertEqual(test_cube_a.coord('time').bounds[0][1], 58.0) self.assertEqual(test_cube_a.coord('time').points[0], 29.0) self.assertEqual(test_cube_a.coord('clim_season').points[0], 'djf') self.assertEqual(test_cube_a.coord('season_year').points[0], 1970)
def test_extract_categorical_year(self): test_cube_a = common._generate_extended_cube() const = iris.Constraint(year=lambda cell: cell > 1970 and cell < 1976) test_cube_a = ch.extract_categorical(test_cube_a, 'year', constraint=const) self.assertIsNotNone(test_cube_a) self.assertEqual(test_cube_a.coord('year').points[0], 1971) self.assertEqual(test_cube_a.coord('year').points[4], 1975) self.assertEqual(test_cube_a.coord('time').points[0], 547.0) self.assertEqual(test_cube_a.coord('time').points[4], 2008.0)
def test_aggregate_categorical_day_of_year(self): test_cube_a = common._generate_extended_cube() test_cube_a = ch.aggregate_categorical(test_cube_a, 'day_of_year') self.assertEqual(test_cube_a.coord('day_of_year').points[0], 1) self.assertEqual(test_cube_a.coord('day_of_year').points[47], 48) self.assertEqual(test_cube_a.coord('day_of_year').points[133], 134) self.assertEqual(test_cube_a.coord('day_of_year').points[260], 261) self.assertEqual(test_cube_a.coord('time').points[0], 3470.0) self.assertEqual(test_cube_a.coord('time').points[47], 3517.0) self.assertEqual(test_cube_a.coord('time').points[133], 3420.0) self.assertEqual(test_cube_a.coord('time').points[260], 3547.0)
def test_aggregate_categorical_weekday(self): test_cube_a = common._generate_extended_cube() test_cube_a = ch.aggregate_categorical(test_cube_a, 'weekday') self.assertIsNotNone(test_cube_a) self.assertEqual(test_cube_a.coord('weekday').points[0], 'Thu') self.assertEqual(test_cube_a.coord('weekday').points[2], 'Sat') self.assertEqual(test_cube_a.coord('weekday').points[4], 'Mon') self.assertEqual(test_cube_a.coord('weekday').points[6], 'Wed') self.assertEqual(test_cube_a.coord('time').points[0], 3496.5) self.assertEqual(test_cube_a.coord('time').points[2], 3498.5) self.assertEqual(test_cube_a.coord('time').points[4], 3500.5) self.assertEqual(test_cube_a.coord('time').points[6], 3502.5)
def test_aggregate_categorical_season(self): test_cube_a = common._generate_extended_cube() test_cube_a = ch.aggregate_categorical(test_cube_a, 'season') self.assertIsNotNone(test_cube_a) self.assertEqual(test_cube_a.coord('season').points[0], 'djf') self.assertEqual(test_cube_a.coord('season').points[1], 'mam') self.assertEqual(test_cube_a.coord('season').points[2], 'jja') self.assertEqual(test_cube_a.coord('season').points[3], 'son') self.assertEqual(test_cube_a.coord('time').points[0], 3499.0) self.assertEqual(test_cube_a.coord('time').points[1], 3529.0) self.assertEqual(test_cube_a.coord('time').points[2], 3484.0) self.assertEqual(test_cube_a.coord('time').points[3], 3575.5)
def test_aggregate_categorical_season_year(self): test_cube_a = common._generate_extended_cube() test_cube_a = ch.aggregate_categorical(test_cube_a, 'season_year') self.assertIsNotNone(test_cube_a) self.assertEqual(test_cube_a.coord('season_year').points[0], 1970) self.assertEqual(test_cube_a.coord('season_year').points[4], 1974) self.assertEqual(test_cube_a.coord('season_year').points[9], 1979) self.assertEqual(test_cube_a.coord('season_year').points[14], 1984) self.assertEqual(test_cube_a.coord('time').points[0], 166.5) self.assertEqual(test_cube_a.coord('time').points[4], 1612.0) self.assertEqual(test_cube_a.coord('time').points[9], 3438.0) self.assertEqual(test_cube_a.coord('time').points[14], 5264.5)
def test_aggregate_categorical_year(self): test_cube_a = common._generate_extended_cube() test_cube_a = ch.aggregate_categorical(test_cube_a, 'year') self.assertIsNotNone(test_cube_a) self.assertEqual(test_cube_a.coord('year').points[0], 1970) self.assertEqual(test_cube_a.coord('year').points[4], 1974) self.assertEqual(test_cube_a.coord('year').points[9], 1979) self.assertEqual(test_cube_a.coord('year').points[14], 1984) self.assertEqual(test_cube_a.coord('time').points[0], 182.0) self.assertEqual(test_cube_a.coord('time').points[4], 1643.0) self.assertEqual(test_cube_a.coord('time').points[9], 3469.0) self.assertEqual(test_cube_a.coord('time').points[14], 5295.5)
def test_aggregate_categorical_month_number(self): test_cube_a = common._generate_extended_cube() test_cube_a = ch.aggregate_categorical(test_cube_a, 'month_number') self.assertIsNotNone(test_cube_a) self.assertEqual(test_cube_a.coord('month_number').points[0], 1) self.assertEqual(test_cube_a.coord('month_number').points[4], 5) self.assertEqual(test_cube_a.coord('month_number').points[9], 10) self.assertEqual(test_cube_a.coord('month_number').points[11], 12) self.assertEqual(test_cube_a.coord('time').points[0], 3485.0) self.assertEqual(test_cube_a.coord('time').points[4], 3422.5) self.assertEqual(test_cube_a.coord('time').points[9], 3575.5) self.assertEqual(test_cube_a.coord('time').points[11], 3636.5)
def test_aggregate_categorical_month(self): test_cube_a = common._generate_extended_cube() test_cube_a = ch.aggregate_categorical(test_cube_a, 'month') self.assertIsNotNone(test_cube_a) self.assertEqual(test_cube_a.coord('month').points[0], 'Jan') self.assertEqual(test_cube_a.coord('month').points[4], 'May') self.assertEqual(test_cube_a.coord('month').points[9], 'Oct') self.assertEqual(test_cube_a.coord('month').points[11], 'Dec') self.assertEqual(test_cube_a.coord('time').points[0], 3485.0) self.assertEqual(test_cube_a.coord('time').points[4], 3422.5) self.assertEqual(test_cube_a.coord('time').points[9], 3575.5) self.assertEqual(test_cube_a.coord('time').points[11], 3636.5)
def test_aggregate_categorical_weekday_number(self): test_cube_a = common._generate_extended_cube() test_cube_a = ch.aggregate_categorical(test_cube_a, 'weekday_number') self.assertIsNotNone(test_cube_a) self.assertEqual(test_cube_a.coord('weekday_number').points[0], 3) self.assertEqual(test_cube_a.coord('weekday_number').points[2], 5) self.assertEqual(test_cube_a.coord('weekday_number').points[4], 0) self.assertEqual(test_cube_a.coord('weekday_number').points[6], 2) self.assertEqual(test_cube_a.coord('time').points[0], 3496.5) self.assertEqual(test_cube_a.coord('time').points[2], 3498.5) self.assertEqual(test_cube_a.coord('time').points[4], 3500.5) self.assertEqual(test_cube_a.coord('time').points[6], 3502.5)
def test_extract(self): test_cube = common._generate_extended_cube() test_cube_bounds = common._generate_extended_cube() test_cube_bounds.coord('time').guess_bounds() lambda_constraint = iris.Constraint( time=lambda cell: cell.point.month == 2) constraint = iris.Constraint(time=iris.time.PartialDateTime(month=2)) extracted_cube = ch.extract(test_cube, constraint) extracted_cube_bounds = ch.extract(test_cube_bounds, constraint) test_cube_coord = test_cube.extract(lambda_constraint).coord('time') extracted_cube_coord = extracted_cube.coord('time') tc_bounds_coord = test_cube_bounds.extract(lambda_constraint).coord( 'time') ex_cube_bounds_coord = extracted_cube_bounds.coord('time') self.assertEqual(test_cube_coord.points[5], extracted_cube_coord.points[5]) self.assertEqual(test_cube_coord.points[15], extracted_cube_coord.points[15]) self.assertEqual(tc_bounds_coord.points[5], ex_cube_bounds_coord.points[5]) self.assertEqual(tc_bounds_coord.points[15], ex_cube_bounds_coord.points[15])
def test_aggregate_categorical_day_of_month(self): test_cube_a = common._generate_extended_cube() test_cube_a = ch.aggregate_categorical(test_cube_a, 'day_of_month') self.assertEqual(test_cube_a.coord('day_of_month').points[0], 1) self.assertEqual(test_cube_a.coord('day_of_month').points[5], 6) self.assertEqual(test_cube_a.coord('day_of_month').points[10], 11) self.assertEqual(test_cube_a.coord('day_of_month').points[15], 16) self.assertEqual(test_cube_a.coord('day_of_month').points[20], 21) self.assertEqual(test_cube_a.coord('day_of_month').points[25], 26) self.assertEqual(test_cube_a.coord('time').points[0], 3499.5) self.assertEqual(test_cube_a.coord('time').points[5], 3490.5) self.assertEqual(test_cube_a.coord('time').points[10], 3495.5) self.assertEqual(test_cube_a.coord('time').points[15], 3500.5)
def test_extract_categorical_compounds(self): test_cube_a = common._generate_extended_cube() constraint = iris.Constraint( clim_season='djf', season_year=lambda cell: cell >= 1970 and cell <= 1980) test_cube_a = ch.extract_categorical(test_cube_a, 'annual_seasonal_mean', constraint=constraint) self.assertIsNotNone(test_cube_a) self.assertEqual(test_cube_a.coord('time').bounds[0][0], 0) self.assertEqual(test_cube_a.coord('time').bounds[0][1], 58.0) self.assertEqual(test_cube_a.coord('time').points[0], 29.0) self.assertEqual(test_cube_a.coord('clim_season').points[0], 'djf') self.assertEqual(test_cube_a.coord('season_year').points[0], 1970)
def test_extract_categorical_day_of_month(self): test_cube_a = common._generate_extended_cube() constraint = iris.Constraint( day_of_month=lambda cell: cell > 0 and cell < 17) test_cube_a = ch.extract_categorical(test_cube_a, 'day_of_month', constraint=constraint) self.assertEqual(test_cube_a.coord('day_of_month').points[0], 1) self.assertEqual(test_cube_a.coord('day_of_month').points[5], 6) self.assertEqual(test_cube_a.coord('day_of_month').points[10], 11) self.assertEqual(test_cube_a.coord('day_of_month').points[15], 16) self.assertEqual(test_cube_a.coord('time').points[0], 3499.5) self.assertEqual(test_cube_a.coord('time').points[5], 3490.5) self.assertEqual(test_cube_a.coord('time').points[10], 3495.5) self.assertEqual(test_cube_a.coord('time').points[15], 3500.5)