def setUp(self): self.latitude_of_projection_origin = 0.0 self.longitude_of_projection_origin = 0.0 self.semi_major_axis = 6377563.396 self.semi_minor_axis = 6356256.909 self.false_easting = 0.0 self.false_northing = 0.0 self.ellipsoid = GeogCS(self.semi_major_axis, self.semi_minor_axis) self.laea_cs = LambertAzimuthalEqualArea( self.latitude_of_projection_origin, self.longitude_of_projection_origin, self.false_easting, self.false_northing, ellipsoid=self.ellipsoid)
class Test_as_cartopy_projection(tests.IrisTest): def setUp(self): self.latitude_of_projection_origin = 0.0 self.longitude_of_projection_origin = 0.0 self.semi_major_axis = 6377563.396 self.semi_minor_axis = 6356256.909 self.false_easting = 0.0 self.false_northing = 0.0 self.ellipsoid = GeogCS(self.semi_major_axis, self.semi_minor_axis) self.laea_cs = LambertAzimuthalEqualArea( self.latitude_of_projection_origin, self.longitude_of_projection_origin, self.false_easting, self.false_northing, ellipsoid=self.ellipsoid) def test_projection_creation(self): res = self.laea_cs.as_cartopy_projection() globe = ccrs.Globe(semimajor_axis=self.semi_major_axis, semiminor_axis=self.semi_minor_axis, ellipse=None) expected = ccrs.LambertAzimuthalEqualArea( self.latitude_of_projection_origin, self.longitude_of_projection_origin, self.false_easting, self.false_northing, globe=globe) self.assertEqual(res, expected)
def test_optional_args_None(self): # Check expected defaults with optional args=None. crs = LambertAzimuthalEqualArea( longitude_of_projection_origin=None, latitude_of_projection_origin=None, false_easting=None, false_northing=None, ) self._check_crs_defaults(crs)
def test_set_optional_args(self): # Check that setting the optional (non-ellipse) args works. crs = LambertAzimuthalEqualArea( longitude_of_projection_origin=123, latitude_of_projection_origin=-37, false_easting=100, false_northing=-200, ) self.assertEqualAndKind(crs.longitude_of_projection_origin, 123.0) self.assertEqualAndKind(crs.latitude_of_projection_origin, -37.0) self.assertEqualAndKind(crs.false_easting, 100.0) self.assertEqualAndKind(crs.false_northing, -200.0)
def _test(self, inverse_flattening=False, no_optionals=False): if no_optionals: # Most properties are optional for this system. gridvar_props = {} # Setup all the expected default values test_lat = 0 test_lon = 0 test_easting = 0 test_northing = 0 else: # Choose test values and setup corresponding named properties. test_lat = -35 test_lon = 175 test_easting = -100 test_northing = 200 gridvar_props = dict( latitude_of_projection_origin=test_lat, longitude_of_projection_origin=test_lon, false_easting=test_easting, false_northing=test_northing, ) # Add ellipsoid args. gridvar_props["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 ) cf_grid_var = mock.Mock(spec=[], **gridvar_props) cs = build_lambert_azimuthal_equal_area_coordinate_system( None, cf_grid_var ) expected = LambertAzimuthalEqualArea( latitude_of_projection_origin=test_lat, longitude_of_projection_origin=test_lon, false_easting=test_easting, false_northing=test_northing, ellipsoid=expected_ellipsoid, ) self.assertEqual(cs, expected)
def test_laea_cs(self): coord_system = LambertAzimuthalEqualArea( latitude_of_projection_origin=52, longitude_of_projection_origin=10, false_easting=100, false_northing=200, ellipsoid=GeogCS(6377563.396, 6356256.909)) expected = {'grid_mapping_name': b'lambert_azimuthal_equal_area', 'latitude_of_projection_origin': 52, 'longitude_of_projection_origin': 10, 'false_easting': 100, 'false_northing': 200, 'semi_major_axis': 6377563.396, 'semi_minor_axis': 6356256.909, 'longitude_of_prime_meridian': 0, } self._test(coord_system, expected)
def test_laea_cs(self): coord_system = LambertAzimuthalEqualArea( latitude_of_projection_origin=52, longitude_of_projection_origin=10, false_easting=100, false_northing=200, ellipsoid=GeogCS(6377563.396, 6356256.909), ) expected = { "grid_mapping_name": b"lambert_azimuthal_equal_area", "latitude_of_projection_origin": 52, "longitude_of_projection_origin": 10, "false_easting": 100, "false_northing": 200, "semi_major_axis": 6377563.396, "semi_minor_axis": 6356256.909, "longitude_of_prime_meridian": 0, } self._test(coord_system, expected)
0.97944502, 0.98252826, 0.98766701, 0.99486125 ], [ 1.0, 0.99280576, 0.98766701, 0.98458376, 0.98355601, 0.98458376, 0.98766701, 0.99280576, 1.0 ], [ 1.0, 1.0, 0.99486125, 0.99177801, 0.99075026, 0.99177801, 0.99486125, 1.0, 1.0 ]]) ELLIPSOID = GeogCS(semi_major_axis=6378137.0, semi_minor_axis=6356752.314140356) STANDARD_GRID_CCRS = LambertAzimuthalEqualArea( latitude_of_projection_origin=54.9, longitude_of_projection_origin=-2.5, false_easting=0.0, false_northing=0.0, ellipsoid=ELLIPSOID) def set_up_cube(zero_point_indices=((0, 0, 7, 7), ), num_time_points=1, num_grid_points=16, num_realization_points=1): """Set up a cube with equal intervals along the x and y axis.""" zero_point_indices = list(zero_point_indices) for index, indices in enumerate(zero_point_indices): if len(indices) == 3: indices = (0, ) + indices zero_point_indices[index] = indices
def test_no_optional_args(self): # Check expected defaults with no optional args. crs = LambertAzimuthalEqualArea() self._check_crs_defaults(crs)