
    rbib                     ~    d Z ddlmZ ddlmZmZmZ  G d de          Z G d de          Z G d d	e          Z	d
S )zD
This module is for building datums to be used when
building a CRS.
    )Any)Datum	EllipsoidPrimeMeridianc                   .    e Zd ZdZ	 	 	 d
dededefdZd	S )CustomDatumzg
    .. versionadded:: 2.5.0

    Class to build a datum based on an ellipsoid and prime meridian.
    	undefinedWGS 84	Greenwichname	ellipsoidprime_meridianc                     dd|t          j        |                                          t          j        |                                          d}|                     |          S )a  
        Parameters
        ----------
        name: str, default="undefined"
            Name of the datum.
        ellipsoid: Any, default="WGS 84"
            Anything accepted by :meth:`pyproj.crs.Ellipsoid.from_user_input`
            or a :class:`pyproj.crs.datum.CustomEllipsoid`.
        prime_meridian: Any, default="Greenwich"
            Anything accepted by :meth:`pyproj.crs.PrimeMeridian.from_user_input`.
        2https://proj.org/schemas/v0.2/projjson.schema.jsonGeodeticReferenceFrame)$schematyper   r   r   )r   from_user_inputto_json_dictr   from_json_dict)clsr   r   r   
datum_jsons        `/var/www/html/mdtn/previsions/meteo_cartes/venv/lib/python3.11/site-packages/pyproj/crs/datum.py__new__zCustomDatum.__new__   sf    $ L,"29==JJLL+; lnn
 

 !!*---    N)r	   r
   r   )__name__
__module____qualname____doc__strr   r    r   r   r   r      s^           !)	. .. . 	. . . . . .r   r   c                   R    e Zd ZdZ	 	 	 	 	 d
dededz  dedz  dedz  dedz  f
d	ZdS )CustomEllipsoidzI
    .. versionadded:: 2.5.0

    Class to build a custom ellipsoid.
    r	   Nr   semi_major_axisinverse_flatteningsemi_minor_axisradiusc                 p    dd|d}|||d<   |||d<   |||d<   |||d<   |                      |          S )	a  
        Parameters
        ----------
        name: str, default="undefined"
            Name of the ellipsoid.
        semi_major_axis: float, optional
            The semi major axis in meters. Required if missing radius.
        inverse_flattening: float, optional
            The inverse flattening in meters.
            Required if missing semi_minor_axis and radius.
        semi_minor_axis: float, optional
            The semi minor axis in meters.
            Required if missing inverse_flattening and radius.
        radius: float, optional
            The radius in meters. Can only be used alone.
            Cannot be mixed with other parameters.
        r   r   )r   r   r   Nr$   r%   r&   r'   r   )r   r   r$   r%   r&   r'   ellipsoid_jsons          r   r   zCustomEllipsoid.__new__6   ss    4 L2
 2

 &0?N,-)3EN/0&0?N,-'-N8$!!.111r   )r	   NNNN)r   r   r   r   r    floatr   r!   r   r   r#   r#   /   s           (,+/(,#&2 &2&2 &2 "DL	&2
 &2 &2 &2 &2 &2 &2 &2r   r#   c                   $    e Zd ZdZddedefdZdS )CustomPrimeMeridianz\
    .. versionadded:: 2.5.0

    Class to build a prime meridian based on a longitude.
    r	   	longituder   c                 :    dd||d}|                      |          S )z
        Parameters
        ----------
        longitude: float
            Longitude of prime meridian.
        name: str, optional
            Name of the prime meridian.
        r   r   )r   r   r   r.   r)   )r   r.   r   r   s       r   r   zCustomPrimeMeridian.__new__f   s3     L#"	
 

 !!*---r   N)r	   )r   r   r   r   r+   r    r   r!   r   r   r-   r-   _   sE         . . .S . . . . . .r   r-   N)
r   typingr   pyproj._crsr   r   r   r   r#   r-   r!   r   r   <module>r2      s    
       7 7 7 7 7 7 7 7 7 7!. !. !. !. !.% !. !. !.H-2 -2 -2 -2 -2i -2 -2 -2`. . . . .- . . . . .r   