Esempio n. 1
0
    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,
            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")
Esempio n. 2
0
    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,
                           spec=PPField3)
        f.time_unit = types.MethodType(PPField3.time_unit, f)
        f.calendar = iris.unit.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 = 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')
Esempio n. 3
0
 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')
Esempio n. 4
0
 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 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)
Esempio n. 7
0
 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 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)
Esempio n. 9
0
    def test_soil_levels(self):
        field = mock.MagicMock(lbvc=6, blev=1234)
        (factories, references, standard_name, long_name, units, attributes,
         cell_methods, dim_coords_and_dims,
         aux_coords_and_dims) = convert(field)

        def is_model_level_coord(coord_and_dims):
            coord, dims = coord_and_dims
            return coord.standard_name == 'model_level_number'

        coords_and_dims = filter(is_model_level_coord, aux_coords_and_dims)
        self.assertEqual(len(coords_and_dims), 1)
        coord, dims = coords_and_dims[0]
        self.assertEqual(coord.points, 1234)
        self.assertIsNone(coord.bounds)
Esempio n. 10
0
    def test_soil_levels(self):
        field = mock.MagicMock(lbvc=6, blev=1234)
        (factories, references, standard_name, long_name, units,
         attributes, cell_methods, dim_coords_and_dims,
         aux_coords_and_dims) = convert(field)

        def is_model_level_coord(coord_and_dims):
            coord, dims = coord_and_dims
            return coord.standard_name == 'model_level_number'

        coords_and_dims = filter(is_model_level_coord, aux_coords_and_dims)
        self.assertEqual(len(coords_and_dims), 1)
        coord, dims = coords_and_dims[0]
        self.assertEqual(coord.points, 1234)
        self.assertIsNone(coord.bounds)
        self.assertEqual(guess_coord_axis(coord), 'Z')
Esempio n. 11
0
    def test_potential_temperature_levels(self):
        potm_value = 27.32
        field = mock.MagicMock(lbvc=19, blev=potm_value)
        (factories, references, standard_name, long_name, units,
         attributes, cell_methods, dim_coords_and_dims,
         aux_coords_and_dims) = convert(field)

        def is_potm_level_coord(coord_and_dims):
            coord, dims = coord_and_dims
            return coord.standard_name == 'air_potential_temperature'

        coords_and_dims = filter(is_potm_level_coord, aux_coords_and_dims)
        self.assertEqual(len(coords_and_dims), 1)
        coord, dims = coords_and_dims[0]
        self.assertArrayEqual(coord.points, [potm_value])
        self.assertIsNone(coord.bounds)
        self.assertEqual(guess_coord_axis(coord), 'Z')
Esempio n. 12
0
    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,
                           spec=PPField3)
        f.time_unit = types.MethodType(PPField3.time_unit, f)
        f.calendar = iris.unit.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 = 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')