def test_as_cartopy_projection(self): latitude_of_projection_origin = -90.0 longitude_of_projection_origin = -45.0 false_easting = 100.0 false_northing = 200.0 ellipsoid = GeogCS(6377563.396, 6356256.909) st = Stereographic( central_lat=latitude_of_projection_origin, central_lon=longitude_of_projection_origin, false_easting=false_easting, false_northing=false_northing, ellipsoid=ellipsoid, ) expected = ccrs.Stereographic( central_latitude=latitude_of_projection_origin, central_longitude=longitude_of_projection_origin, false_easting=false_easting, false_northing=false_northing, globe=ccrs.Globe( semimajor_axis=6377563.396, semiminor_axis=6356256.909, ellipse=None, ), ) res = st.as_cartopy_projection() self.assertEqual(res, expected)
def test_optional_args_None(self): # Check expected defaults with optional args=None. crs = Stereographic(0, 0, false_easting=None, false_northing=None, true_scale_lat=None) self._check_crs_defaults(crs)
def stereo(): return Stereographic( central_lat=-90, central_lon=-45, false_easting=100, false_northing=200, ellipsoid=GeogCS(6377563.396, 6356256.909), )
def test_set_optional_args(self): # Check that setting the optional (non-ellipse) args works. crs = Stereographic(0, 0, false_easting=100, false_northing=-203.7, true_scale_lat=77) self.assertEqualAndKind(crs.false_easting, 100.0) self.assertEqualAndKind(crs.false_northing, -203.7) self.assertEqualAndKind(crs.true_scale_lat, 77.0)
def _stereo_cube(self, ellipsoid=None): data = np.arange(12).reshape(3, 4) cube = Cube(data, 'air_pressure_anomaly') stereo = Stereographic(-10.0, 20.0, 500000.0, -200000.0, None, ellipsoid) coord = DimCoord(np.arange(3), 'projection_y_coordinate', units='m', coord_system=stereo) cube.add_dim_coord(coord, 0) coord = DimCoord(np.arange(4), 'projection_x_coordinate', units='m', coord_system=stereo) cube.add_dim_coord(coord, 1) return cube
def test_as_cartopy_projection(self): latitude_of_projection_origin=-90.0 longitude_of_projection_origin=-45.0 false_easting=100.0 false_northing=200.0 ellipsoid=GeogCS(6377563.396, 6356256.909) st = Stereographic(central_lat=latitude_of_projection_origin, central_lon=longitude_of_projection_origin, false_easting=false_easting, false_northing=false_northing, ellipsoid=ellipsoid) expected = ccrs.Stereographic( central_latitude=latitude_of_projection_origin, central_longitude=longitude_of_projection_origin, false_easting=false_easting, false_northing=false_northing, globe=ccrs.Globe(semimajor_axis=6377563.396, semiminor_axis=6356256.909, ellipse=None)) res = st.as_cartopy_projection() self.assertEqual(res, expected)
def test_valid(self): cf_grid_var = mock.Mock(spec=[], latitude_of_projection_origin=0, longitude_of_projection_origin=0, false_easting=-100, false_northing=200, scale_factor_at_projection_origin=1, semi_major_axis=6377563.396, semi_minor_axis=6356256.909) cs = build_stereographic_coordinate_system(None, cf_grid_var) expected = Stereographic( central_lat=cf_grid_var.latitude_of_projection_origin, central_lon=cf_grid_var.longitude_of_projection_origin, false_easting=cf_grid_var.false_easting, false_northing=cf_grid_var.false_northing, ellipsoid=iris.coord_systems.GeogCS(cf_grid_var.semi_major_axis, cf_grid_var.semi_minor_axis)) self.assertEqual(cs, expected)
def _stereo_cube(self, ellipsoid=None): data = self.array_lib.arange(12).reshape(3, 4) cube = Cube(data, "air_pressure_anomaly") stereo = Stereographic(-10.0, 20.0, 500000.0, -200000.0, None, ellipsoid) coord = DimCoord( np.arange(3), "projection_y_coordinate", units="m", coord_system=stereo, ) cube.add_dim_coord(coord, 0) coord = DimCoord( np.arange(4), "projection_x_coordinate", units="m", coord_system=stereo, ) cube.add_dim_coord(coord, 1) return cube
def _test(self, inverse_flattening=False, no_offsets=False): test_easting = -100 test_northing = 200 gridvar_props = dict( latitude_of_projection_origin=0, longitude_of_projection_origin=0, false_easting=test_easting, false_northing=test_northing, scale_factor_at_projection_origin=1, semi_major_axis=6377563.396, ) if inverse_flattening: gridvar_props["inverse_flattening"] = 299.3249646 expected_ellipsoid = iris.coord_systems.GeogCS( 6377563.396, inverse_flattening=299.3249646) else: gridvar_props["semi_minor_axis"] = 6356256.909 expected_ellipsoid = iris.coord_systems.GeogCS( 6377563.396, 6356256.909) if no_offsets: del gridvar_props["false_easting"] del gridvar_props["false_northing"] test_easting = 0 test_northing = 0 cf_grid_var = mock.Mock(spec=[], **gridvar_props) cs = build_stereographic_coordinate_system(None, cf_grid_var) expected = Stereographic( central_lat=cf_grid_var.latitude_of_projection_origin, central_lon=cf_grid_var.longitude_of_projection_origin, false_easting=test_easting, false_northing=test_northing, ellipsoid=expected_ellipsoid, ) self.assertEqual(cs, expected)
def test_no_optional_args(self): # Check expected defaults with no optional args. crs = Stereographic(0, 0) self._check_crs_defaults(crs)