def __init__( self, name: str = "undefined", datum: Any = "urn:ogc:def:datum:EPSG::6326", ellipsoidal_cs: Any = None, ) -> None: """ Parameters ---------- name: str, optional Name of the CRS. Default is undefined. datum: Any, optional Anything accepted by :meth:`pyproj.crs.Datum.from_user_input` or a :class:`pyproj.crs.datum.CustomDatum`. ellipsoidal_cs: Any, optional Input to create an Ellipsoidal Coordinate System. Anything accepted by :meth:`pyproj.crs.CoordinateSystem.from_user_input` or an Ellipsoidal Coordinate System created from :ref:`coordinate_system`. """ geographic_crs_json = { "$schema": "https://proj.org/schemas/v0.2/projjson.schema.json", "type": "GeographicCRS", "name": name, "datum": Datum.from_user_input(datum).to_json_dict(), "coordinate_system": CoordinateSystem.from_user_input( ellipsoidal_cs or Ellipsoidal2DCS()).to_json_dict(), } super().__init__(geographic_crs_json)
def __init__( self, base_crs, conversion, ellipsoidal_cs=Ellipsoidal2DCS(), name="undefined", ): """ Parameters ---------- base_crs: Any Input to create the Geodetic CRS, a :class:`GeographicCRS` or anything accepted by :meth:`pyproj.crs.CRS.from_user_input`. conversion: Any Anything accepted by :meth:`pyproj.crs.CoordinateSystem.from_user_input` or a conversion from :ref:`coordinate_operation`. ellipsoidal_cs: Any, optional Input to create an Ellipsoidal Coordinate System. Anything accepted by :meth:`pyproj.crs.CoordinateSystem.from_user_input` or an Ellipsoidal Coordinate System created from :ref:`coordinate_system`. name: str, optional Name of the CRS. Default is undefined. """ derived_geographic_crs_json = { "$schema": "https://proj.org/schemas/v0.2/projjson.schema.json", "type": "DerivedGeographicCRS", "name": name, "base_crs": CRS.from_user_input(base_crs).to_json_dict(), "conversion": CoordinateOperation.from_user_input( conversion ).to_json_dict(), "coordinate_system": CoordinateSystem.from_user_input( ellipsoidal_cs ).to_json_dict(), } super().__init__(derived_geographic_crs_json)
def test_ellipsoidal_2d_cs(axis, name_0, direction_0, name_1, direction_1): vcs = Ellipsoidal2DCS(axis=axis) assert len(vcs.axis_list) == 2 assert vcs.axis_list[0].direction == direction_0 assert vcs.axis_list[0].name == name_0 assert vcs.axis_list[0].unit_name == "degree" assert vcs.axis_list[1].direction == direction_1 assert vcs.axis_list[1].name == name_1 assert vcs.axis_list[1].unit_name == "degree"
def test_ellipsoidal2dcs_to_cf(): ecs = Ellipsoidal2DCS(axis=Ellipsoidal2DCSAxis.LATITUDE_LONGITUDE) assert ecs.to_cf() == [ { "standard_name": "latitude", "long_name": "latitude coordinate", "units": "degrees_north", "axis": "Y", }, { "standard_name": "longitude", "long_name": "longitude coordinate", "units": "degrees_east", "axis": "X", }, ]