Пример #1
0
 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)
Пример #2
0
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)
Пример #3
0
 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)
Пример #4
0
 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)
Пример #5
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)
Пример #6
0
 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)
Пример #7
0
 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)
Пример #8
0
         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
Пример #9
0
 def test_no_optional_args(self):
     # Check expected defaults with no optional args.
     crs = LambertAzimuthalEqualArea()
     self._check_crs_defaults(crs)