def test__shape_of_earth_spherical(self): cs = GeogCS(semi_major_axis=1.23) test_cube = self._make_test_cube(cs=cs) grid_definition_template_4(test_cube, self.mock_grib) self._check_key('shapeOfTheEarth', 1) self._check_key('scaleFactorOfRadiusOfSphericalEarth', 0) self._check_key('scaledValueOfRadiusOfSphericalEarth', 1.23)
def test__shape_of_earth_flattened(self): cs = GeogCS(semi_major_axis=1.456, semi_minor_axis=1.123) test_cube = self._make_test_cube(cs=cs) grid_definition_template_4(test_cube, self.mock_grib) self._check_key('shapeOfTheEarth', 7) self._check_key('scaleFactorOfEarthMajorAxis', 0) self._check_key('scaledValueOfEarthMajorAxis', 1.456) self._check_key('scaleFactorOfEarthMinorAxis', 0) self._check_key('scaledValueOfEarthMinorAxis', 1.123)
def test__grid_points(self): x_floats = np.array([11.0, 12.0, 167.0]) # TODO: reduce Y to 2 points, when gribapi nx=ny limitation is gone. y_floats = np.array([20.0, 21.0, 22.0]) test_cube = self._make_test_cube(x_points=x_floats, y_points=y_floats) grid_definition_template_4(test_cube, self.mock_grib) x_longs = np.array(np.round(1e6 * x_floats), dtype=int) y_longs = np.array(np.round(1e6 * y_floats), dtype=int) self._check_key("longitudes", x_longs) self._check_key("latitudes", y_longs)
def test__scanmode_reverse(self): test_cube = self._make_test_cube(x_points=np.arange(7, 0, -1)) grid_definition_template_4(test_cube, self.mock_grib) self._check_key('iScansPositively', 0) self._check_key('jScansPositively', 1)
def test__scanmode(self): grid_definition_template_4(self.test_cube, self.mock_grib) self._check_key('iScansPositively', 1) self._check_key('jScansPositively', 1)
def test__grid_shape(self): test_cube = self._make_test_cube(x_points=np.arange(13), y_points=np.arange(6)) grid_definition_template_4(test_cube, self.mock_grib) self._check_key('Ni', 13) self._check_key('Nj', 6)
def test__template_number(self): grid_definition_template_4(self.test_cube, self.mock_grib) self._check_key('gridDefinitionTemplateNumber', 4)