def test_mercator_a_operation__defaults(): aeaop = MercatorAConversion() assert aeaop.name == "unknown" assert aeaop.method_name == "Mercator (variant A)" assert _to_dict(aeaop) == { "Latitude of natural origin": 0.0, "Longitude of natural origin": 0.0, "False easting": 0.0, "False northing": 0.0, "Scale factor at natural origin": 1.0, }
def test_mercator_a_operation(): aeaop = MercatorAConversion( latitude_natural_origin=1, longitude_natural_origin=2, false_easting=3, false_northing=4, scale_factor_natural_origin=0.5, ) assert aeaop.name == "unknown" assert aeaop.method_name == "Mercator (variant A)" assert _to_dict(aeaop) == { "Latitude of natural origin": 1.0, "Longitude of natural origin": 2.0, "False easting": 3.0, "False northing": 4.0, "Scale factor at natural origin": 0.5, }
def _mercator(cf_params): """ http://cfconventions.org/cf-conventions/cf-conventions.html#_mercator """ if "scale_factor_at_projection_origin" in cf_params: return MercatorAConversion( latitude_natural_origin=cf_params.get("standard_parallel", 0.0), longitude_natural_origin=cf_params.get( "longitude_of_projection_origin", 0.0 ), false_easting=cf_params.get("false_easting", 0.0), false_northing=cf_params.get("false_northing", 0.0), scale_factor_natural_origin=cf_params["scale_factor_at_projection_origin"], ) return MercatorBConversion( latitude_first_parallel=cf_params.get("standard_parallel", 0.0), longitude_natural_origin=cf_params.get("longitude_of_projection_origin", 0.0), false_easting=cf_params.get("false_easting", 0.0), false_northing=cf_params.get("false_northing", 0.0), )
def test_mercator_a(): crs = ProjectedCRS(conversion=MercatorAConversion(1, 2, 3, 4)) expected_cf = { "semi_major_axis": 6378137.0, "semi_minor_axis": crs.ellipsoid.semi_minor_metre, "inverse_flattening": crs.ellipsoid.inverse_flattening, "reference_ellipsoid_name": "WGS 84", "longitude_of_prime_meridian": 0.0, "prime_meridian_name": "Greenwich", "horizontal_datum_name": "World Geodetic System 1984", "grid_mapping_name": "mercator", "standard_parallel": 1.0, "longitude_of_projection_origin": 2.0, "false_easting": 3.0, "false_northing": 4.0, "scale_factor_at_projection_origin": 1.0, } cf_dict = crs.to_cf() assert cf_dict.pop("crs_wkt").startswith("PROJCRS[") assert cf_dict == expected_cf # test roundtrip _test_roundtrip(expected_cf, "PROJCRS[")