def test_365_calendar(self): f = mock.MagicMock(lbtim=SplittableInt(4, { 'ia': 2, 'ib': 1, 'ic': 0 }), lbyr=2013, lbmon=1, lbdat=1, lbhr=12, lbmin=0, lbsec=0, t1=cftime.datetime(2013, 1, 1, 12, 0, 0), t2=cftime.datetime(2013, 1, 2, 12, 0, 0), spec=PPField3) f.time_unit = six.create_bound_method(PPField3.time_unit, f) f.calendar = cf_units.CALENDAR_365_DAY (factories, references, standard_name, long_name, units, attributes, cell_methods, dim_coords_and_dims, aux_coords_and_dims) = convert(f) def is_t_coord(coord_and_dims): coord, dims = coord_and_dims return coord.standard_name == 'time' coords_and_dims = list(filter(is_t_coord, aux_coords_and_dims)) self.assertEqual(len(coords_and_dims), 1) coord, dims = coords_and_dims[0] self.assertEqual(guess_coord_axis(coord), 'T') self.assertEqual(coord.units.calendar, '365_day')
def test_fc_cf_air_temp(self): lbuser = [1, 0, 0, 0, 0, 0, 0] lbfc = 16 stash = STASH(lbuser[6], lbuser[3] // 1000, lbuser[3] % 1000) field = _mock_field(lbuser=lbuser, lbfc=lbfc, stash=stash) (factories, references, standard_name, long_name, units, attributes, cell_methods, dim_coords_and_dims, aux_coords_and_dims) = convert(field) self.assertEqual(standard_name, 'air_temperature') self.assertEqual(units, 'K')
def test_no_std_name(self): lbuser = [1, 0, 0, 0, 0, 0, 0] lbfc = 0 stash = STASH(lbuser[6], lbuser[3] // 1000, lbuser[3] % 1000) field = _mock_field(lbuser=lbuser, lbfc=lbfc, stash=stash) (factories, references, standard_name, long_name, units, attributes, cell_methods, dim_coords_and_dims, aux_coords_and_dims) = convert(field) self.assertIsNone(standard_name) self.assertIsNone(units)
def test_fc_cf_air_temp(self): lbuser = [1, 0, 0, 0, 0, 0, 0] lbfc = 16 stash = STASH(lbuser[6], lbuser[3] // 1000, lbuser[3] % 1000) field = mock.MagicMock(lbuser=lbuser, lbfc=lbfc, stash=stash) (factories, references, standard_name, long_name, units, attributes, cell_methods, dim_coords_and_dims, aux_coords_and_dims) = convert(field) self.assertEqual(standard_name, 'air_temperature') self.assertEqual(units, 'K')
def test_no_std_name(self): lbuser = [1, 0, 0, 0, 0, 0, 0] lbfc = 0 stash = STASH(lbuser[6], lbuser[3] // 1000, lbuser[3] % 1000) field = mock.MagicMock(lbuser=lbuser, lbfc=lbfc, stash=stash) (factories, references, standard_name, long_name, units, attributes, cell_methods, dim_coords_and_dims, aux_coords_and_dims) = convert(field) self.assertIsNone(standard_name) self.assertIsNone(units)
def check_um_source_attrs(self, lbsrce, source_str=None, um_version_str=None): field = _mock_field(lbsrce=lbsrce) (factories, references, standard_name, long_name, units, attributes, cell_methods, dim_coords_and_dims, aux_coords_and_dims) = convert(field) if source_str is not None: self.assertEqual(attributes['source'], source_str) else: self.assertNotIn('source', attributes) if um_version_str is not None: self.assertEqual(attributes['um_version'], um_version_str) else: self.assertNotIn('um_version', attributes)
def check_um_source_attrs(self, lbsrce, source_str=None, um_version_str=None): field = mock.MagicMock(lbsrce=lbsrce) (factories, references, standard_name, long_name, units, attributes, cell_methods, dim_coords_and_dims, aux_coords_and_dims) = convert(field) if source_str is not None: self.assertEqual(attributes['source'], source_str) else: self.assertNotIn('source', attributes) if um_version_str is not None: self.assertEqual(attributes['um_version'], um_version_str) else: self.assertNotIn('um_version', attributes)
def test_365_calendar(self): f = mock.MagicMock( lbtim=SplittableInt(4, { "ia": 2, "ib": 1, "ic": 0 }), lbyr=2013, lbmon=1, lbdat=1, lbhr=12, lbmin=0, lbsec=0, t1=cftime.datetime(2013, 1, 1, 12, 0, 0), t2=cftime.datetime(2013, 1, 2, 12, 0, 0), spec=PPField3, ) f.time_unit = MethodType(PPField3.time_unit, f) f.calendar = cf_units.CALENDAR_365_DAY ( factories, references, standard_name, long_name, units, attributes, cell_methods, dim_coords_and_dims, aux_coords_and_dims, ) = convert(f) def is_t_coord(coord_and_dims): coord, dims = coord_and_dims return coord.standard_name == "time" coords_and_dims = list(filter(is_t_coord, aux_coords_and_dims)) self.assertEqual(len(coords_and_dims), 1) coord, dims = coords_and_dims[0] self.assertEqual(guess_coord_axis(coord), "T") self.assertEqual(coord.units.calendar, "365_day")
def test_365_calendar(self): f = mock.MagicMock(lbtim=SplittableInt(4, {'ia': 2, 'ib': 1, 'ic': 0}), lbyr=2013, lbmon=1, lbdat=1, lbhr=12, lbmin=0, lbsec=0, t1=netcdftime.datetime(2013, 1, 1, 12, 0, 0), t2=netcdftime.datetime(2013, 1, 2, 12, 0, 0), spec=PPField3) f.time_unit = six.create_bound_method(PPField3.time_unit, f) f.calendar = cf_units.CALENDAR_365_DAY (factories, references, standard_name, long_name, units, attributes, cell_methods, dim_coords_and_dims, aux_coords_and_dims) = convert(f) def is_t_coord(coord_and_dims): coord, dims = coord_and_dims return coord.standard_name == 'time' coords_and_dims = list(filter(is_t_coord, aux_coords_and_dims)) self.assertEqual(len(coords_and_dims), 1) coord, dims = coords_and_dims[0] self.assertEqual(guess_coord_axis(coord), 'T') self.assertEqual(coord.units.calendar, '365_day')