def test_bound_crs__example(): proj_crs = ProjectedCRS( conversion=TransverseMercatorConversion( latitude_natural_origin=0, longitude_natural_origin=15, false_easting=2520000, false_northing=0, scale_factor_natural_origin=0.9996, ), geodetic_crs=GeographicCRS( datum=CustomDatum(ellipsoid="International 1909 (Hayford)") ), ) bound_crs = BoundCRS( source_crs=proj_crs, target_crs="WGS 84", transformation=ToWGS84Transformation( proj_crs.geodetic_crs, -122.74, -34.27, -22.83, -1.884, -3.4, -3.03, -15.62 ), ) with pytest.warns(UserWarning): assert bound_crs.to_dict() == { "ellps": "intl", "k": 0.9996, "lat_0": 0, "lon_0": 15, "no_defs": None, "proj": "tmerc", "towgs84": [-122.74, -34.27, -22.83, -1.884, -3.4, -3.03, -15.62], "type": "crs", "units": "m", "x_0": 2520000, "y_0": 0, }
def test_bound_crs_crs__from_methods(): crs_str = "+proj=latlon +towgs84=0,0,0" with pytest.raises(CRSError, match="Invalid type"): BoundCRS.from_epsg(4326) assert_maker_inheritance_valid(BoundCRS.from_string(crs_str), BoundCRS) assert_maker_inheritance_valid(BoundCRS.from_proj4(crs_str), BoundCRS) assert_maker_inheritance_valid( BoundCRS.from_user_input(BoundCRS.from_string(crs_str)), BoundCRS) assert_maker_inheritance_valid(BoundCRS.from_json(CRS(crs_str).to_json()), BoundCRS) assert_maker_inheritance_valid( BoundCRS.from_json_dict(CRS(crs_str).to_json_dict()), BoundCRS)
def test_bound_crs(): proj_crs = ProjectedCRS(conversion=UTMConversion(12)) bound_crs = BoundCRS( source_crs=proj_crs, target_crs="WGS 84", transformation=ToWGS84Transformation( proj_crs.geodetic_crs, 1, 2, 3, 4, 5, 6, 7 ), ) assert bound_crs.type_name == "Bound CRS" assert bound_crs.source_crs.coordinate_operation.name == "UTM zone 12N" assert bound_crs.coordinate_operation.towgs84 == [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0] assert bound_crs.target_crs.name == "WGS 84"