Ejemplo n.º 1
0
 def test_with_bounds(self):
     self.delta.guess_bounds(0)
     self.sigma.guess_bounds(0.5)
     # Determine expected coord by manually broadcasting coord points
     # and bounds based on the dimension mapping.
     delta_pts = self.delta.points[..., np.newaxis, np.newaxis]
     sigma_pts = self.sigma.points[..., np.newaxis, np.newaxis]
     surf_pts = self.surface_air_pressure.points[np.newaxis, ...]
     expected_points = delta_pts + sigma_pts * surf_pts
     delta_vals = self.delta.bounds.reshape(3, 1, 1, 2)
     sigma_vals = self.sigma.bounds.reshape(3, 1, 1, 2)
     surf_vals = self.surface_air_pressure.points.reshape(1, 2, 2, 1)
     expected_bounds = delta_vals + sigma_vals * surf_vals
     expected_coord = iris.coords.AuxCoord(
         expected_points,
         standard_name="air_pressure",
         units="Pa",
         bounds=expected_bounds,
     )
     factory = HybridPressureFactory(
         delta=self.delta,
         sigma=self.sigma,
         surface_air_pressure=self.surface_air_pressure,
     )
     derived_coord = factory.make_coord(self.coords_dims_func)
     self.assertEqual(expected_coord, derived_coord)
Ejemplo n.º 2
0
 def test_none_surface_air_pressure(self):
     # Note absence of broadcasting as multidimensional coord
     # is not present.
     expected_points = self.delta.points
     expected_coord = iris.coords.AuxCoord(expected_points,
                                           standard_name='air_pressure',
                                           units='Pa')
     factory = HybridPressureFactory(delta=self.delta, sigma=self.sigma)
     derived_coord = factory.make_coord(self.coords_dims_func)
     self.assertEqual(expected_coord, derived_coord)
Ejemplo n.º 3
0
 def test_none_surface_air_pressure(self):
     # Note absence of broadcasting as multidimensional coord
     # is not present.
     expected_points = self.delta.points
     expected_coord = iris.coords.AuxCoord(expected_points,
                                           standard_name='air_pressure',
                                           units='Pa')
     factory = HybridPressureFactory(delta=self.delta, sigma=self.sigma)
     derived_coord = factory.make_coord(self.coords_dims_func)
     self.assertEqual(expected_coord, derived_coord)
Ejemplo n.º 4
0
 def test_none_sigma(self):
     delta_pts = self.delta.points[..., np.newaxis, np.newaxis]
     sigma_pts = 0
     surf_pts = self.surface_air_pressure.points[np.newaxis, ...]
     expected_points = delta_pts + sigma_pts * surf_pts
     expected_coord = iris.coords.AuxCoord(expected_points,
                                           standard_name='air_pressure',
                                           units='Pa')
     factory = HybridPressureFactory(
         delta=self.delta, surface_air_pressure=self.surface_air_pressure)
     derived_coord = factory.make_coord(self.coords_dims_func)
     self.assertEqual(expected_coord, derived_coord)
Ejemplo n.º 5
0
 def test_none_sigma(self):
     delta_pts = self.delta.points[..., np.newaxis, np.newaxis]
     sigma_pts = 0
     surf_pts = self.surface_air_pressure.points[np.newaxis, ...]
     expected_points = delta_pts + sigma_pts * surf_pts
     expected_coord = iris.coords.AuxCoord(expected_points,
                                           standard_name='air_pressure',
                                           units='Pa')
     factory = HybridPressureFactory(
         delta=self.delta, surface_air_pressure=self.surface_air_pressure)
     derived_coord = factory.make_coord(self.coords_dims_func)
     self.assertEqual(expected_coord, derived_coord)
Ejemplo n.º 6
0
 def test_points_only(self):
     # Determine expected coord by manually broadcasting coord points
     # knowing the dimension mapping.
     delta_pts = self.delta.points[..., np.newaxis, np.newaxis]
     sigma_pts = self.sigma.points[..., np.newaxis, np.newaxis]
     surf_pts = self.surface_air_pressure.points[np.newaxis, ...]
     expected_points = delta_pts + sigma_pts * surf_pts
     expected_coord = iris.coords.AuxCoord(expected_points,
                                           standard_name='air_pressure',
                                           units='Pa')
     factory = HybridPressureFactory(
         delta=self.delta, sigma=self.sigma,
         surface_air_pressure=self.surface_air_pressure)
     derived_coord = factory.make_coord(self.coords_dims_func)
     self.assertEqual(expected_coord, derived_coord)
Ejemplo n.º 7
0
 def test_with_bounds(self):
     self.delta.guess_bounds(0)
     self.sigma.guess_bounds(0.5)
     # Determine expected coord by manually broadcasting coord points
     # and bounds based on the dimension mapping.
     delta_pts = self.delta.points[..., np.newaxis, np.newaxis]
     sigma_pts = self.sigma.points[..., np.newaxis, np.newaxis]
     surf_pts = self.surface_air_pressure.points[np.newaxis, ...]
     expected_points = delta_pts + sigma_pts * surf_pts
     delta_vals = self.delta.bounds.reshape(3, 1, 1, 2)
     sigma_vals = self.sigma.bounds.reshape(3, 1, 1, 2)
     surf_vals = self.surface_air_pressure.points.reshape(1, 2, 2, 1)
     expected_bounds = delta_vals + sigma_vals * surf_vals
     expected_coord = iris.coords.AuxCoord(expected_points,
                                           standard_name='air_pressure',
                                           units='Pa',
                                           bounds=expected_bounds)
     factory = HybridPressureFactory(
         delta=self.delta, sigma=self.sigma,
         surface_air_pressure=self.surface_air_pressure)
     derived_coord = factory.make_coord(self.coords_dims_func)
     self.assertEqual(expected_coord, derived_coord)