def _check(self, lblev=37.0,
            blev=9596.3, brlev=9500.0, brsvd1=9800.0,
            bhlev=0.35, bhrlev=0.31, brsvd2=0.39,
            dim=None):
     lbvc = 65
     lbcode = _lbcode(0)  # unused
     stash = STASH(1, 1, 1)  # unused
     coords_and_dims, factories = _convert_vertical_coords(
         lbcode=lbcode, lbvc=lbvc, blev=blev, lblev=lblev, stash=stash,
         bhlev=bhlev, bhrlev=bhrlev, brsvd1=brsvd1, brsvd2=brsvd2,
         brlev=brlev, dim=dim)
     expect_coords_and_dims = [
         (DimCoord(lblev,
                   standard_name='model_level_number',
                   attributes={'positive': 'up'}), dim)]
     brlev = np.atleast_1d(brlev)
     brsvd1 = np.atleast_1d(brsvd1)
     expect_coords_and_dims.append(
         (DimCoord(blev,
                   long_name='level_height', units='m',
                   bounds=np.vstack((brlev, brsvd1)).T,
                   attributes={'positive': 'up'}), dim))
     bhrlev = np.atleast_1d(bhrlev)
     brsvd2 = np.atleast_1d(brsvd2)
     expect_coords_and_dims.append(
         (AuxCoord(bhlev,
                   long_name='sigma',
                   bounds=np.vstack((bhrlev, brsvd2)).T), dim))
     expect_factories = [(HybridHeightFactory,
                          [{'long_name': 'level_height'},
                           {'long_name': 'sigma'},
                           Reference('orography')])]
     self.assertCoordsAndDimsListsMatch(coords_and_dims,
                                        expect_coords_and_dims)
     self.assertEqual(factories, expect_factories)
Пример #2
0
    def _check(self,
               lblev=37.0,
               bhlev=850.1,
               bhrlev=810.0,
               brsvd2=875.0,
               blev=0.15,
               brlev=0.11,
               brsvd1=0.19,
               expect_match=True,
               dim=None):
        lbvc = 9
        lbcode = _lbcode(0)  # unused
        stash = STASH(1, 1, 1)  # unused
        coords_and_dims, factories = _convert_vertical_coords(lbcode=lbcode,
                                                              lbvc=lbvc,
                                                              blev=blev,
                                                              lblev=lblev,
                                                              stash=stash,
                                                              bhlev=bhlev,
                                                              bhrlev=bhrlev,
                                                              brsvd1=brsvd1,
                                                              brsvd2=brsvd2,
                                                              brlev=brlev,
                                                              dim=dim)
        expect_coords_and_dims = [(DimCoord(lblev,
                                            standard_name='model_level_number',
                                            attributes={'positive':
                                                        'up'}), dim)]

        bhrlev = np.atleast_1d(bhrlev)
        brsvd2 = np.atleast_1d(brsvd2)
        expect_coords_and_dims.append((DimCoord(bhlev,
                                                long_name='level_pressure',
                                                units='Pa',
                                                bounds=np.vstack(
                                                    (bhrlev, brsvd2)).T), dim))
        brlev = np.atleast_1d(brlev)
        brsvd1 = np.atleast_1d(brsvd1)
        expect_coords_and_dims.append((AuxCoord(blev,
                                                long_name='sigma',
                                                bounds=np.vstack(
                                                    (brlev, brsvd1)).T), dim))
        expect_factories = [(HybridPressureFactory,
                             [{
                                 'long_name': 'level_pressure'
                             }, {
                                 'long_name': 'sigma'
                             },
                              Reference('surface_air_pressure')])]
        self.assertCoordsAndDimsListsMatch(coords_and_dims,
                                           expect_coords_and_dims)
        self.assertEqual(factories, expect_factories)
Пример #3
0
 def _check(
     self,
     lblev=37.0,
     blev=9596.3,
     brlev=9500.0,
     brsvd1=9800.0,
     bhlev=0.35,
     bhrlev=0.31,
     brsvd2=0.39,
     dim=None,
 ):
     lbvc = 65
     lbcode = _lbcode(0)  # unused
     stash = STASH(1, 1, 1)  # unused
     coords_and_dims, factories = _convert_vertical_coords(
         lbcode=lbcode,
         lbvc=lbvc,
         blev=blev,
         lblev=lblev,
         stash=stash,
         bhlev=bhlev,
         bhrlev=bhrlev,
         brsvd1=brsvd1,
         brsvd2=brsvd2,
         brlev=brlev,
         dim=dim,
     )
     expect_coords_and_dims = [(
         DimCoord(
             lblev,
             standard_name="model_level_number",
             attributes={"positive": "up"},
         ),
         dim,
     )]
     brlev = np.atleast_1d(brlev)
     brsvd1 = np.atleast_1d(brsvd1)
     expect_coords_and_dims.append((
         DimCoord(
             blev,
             long_name="level_height",
             units="m",
             bounds=np.vstack((brlev, brsvd1)).T,
             attributes={"positive": "up"},
         ),
         dim,
     ))
     bhrlev = np.atleast_1d(bhrlev)
     brsvd2 = np.atleast_1d(brsvd2)
     expect_coords_and_dims.append((
         AuxCoord(
             bhlev,
             long_name="sigma",
             bounds=np.vstack((bhrlev, brsvd2)).T,
         ),
         dim,
     ))
     expect_factories = [(
         HybridHeightFactory,
         [
             {
                 "long_name": "level_height"
             },
             {
                 "long_name": "sigma"
             },
             Reference("orography"),
         ],
     )]
     self.assertCoordsAndDimsListsMatch(coords_and_dims,
                                        expect_coords_and_dims)
     self.assertEqual(factories, expect_factories)
Пример #4
0
    def _check(
        self,
        lblev=37.0,
        bhlev=850.1,
        bhrlev=810.0,
        brsvd2=875.0,
        blev=0.15,
        brlev=0.11,
        brsvd1=0.19,
        expect_match=True,
        dim=None,
    ):
        lbvc = 9
        lbcode = _lbcode(0)  # unused
        stash = STASH(1, 1, 1)  # unused
        coords_and_dims, factories = _convert_vertical_coords(
            lbcode=lbcode,
            lbvc=lbvc,
            blev=blev,
            lblev=lblev,
            stash=stash,
            bhlev=bhlev,
            bhrlev=bhrlev,
            brsvd1=brsvd1,
            brsvd2=brsvd2,
            brlev=brlev,
            dim=dim,
        )
        expect_coords_and_dims = [(
            DimCoord(
                lblev,
                standard_name="model_level_number",
                attributes={"positive": "up"},
            ),
            dim,
        )]

        bhrlev = np.atleast_1d(bhrlev)
        brsvd2 = np.atleast_1d(brsvd2)
        expect_coords_and_dims.append((
            DimCoord(
                bhlev,
                long_name="level_pressure",
                units="Pa",
                bounds=np.vstack((bhrlev, brsvd2)).T,
            ),
            dim,
        ))
        brlev = np.atleast_1d(brlev)
        brsvd1 = np.atleast_1d(brsvd1)
        expect_coords_and_dims.append((
            AuxCoord(
                blev,
                long_name="sigma",
                bounds=np.vstack((brlev, brsvd1)).T,
            ),
            dim,
        ))
        expect_factories = [(
            HybridPressureFactory,
            [
                {
                    "long_name": "level_pressure"
                },
                {
                    "long_name": "sigma"
                },
                Reference("surface_air_pressure"),
            ],
        )]
        self.assertCoordsAndDimsListsMatch(coords_and_dims,
                                           expect_coords_and_dims)
        self.assertEqual(factories, expect_factories)