o
    Dfl'                     @   s  d Z ddlmZ ddlmZ ddlmZmZmZm	Z	 dZ
dZddd	d
Zdddd
ZejdddeddddedgejdddeddddedgiZG dd deZejdddeddddedddde
dgejdddeddddedddde
dgiZG dd deZejddde
dddde
dgejddde
dddde
dgejdddeddd dedgejdd deddddedgejdddeddd dedgejdd deddddedgejddd!e
dddd!e
dgejddde
dddde
dgejdd d"e
dddd!e
dgi	ZG d#d$ d$eZ e	j!d%d&de
de	j"d%d&dede	j#d%d&dede	j$d'd(d)e
de	j%d'd(d)ede	j&d'd(d)ede	j'dd&de
de	j(dd&dede	j)dd&dedi	Z*G d*d+ d+eZ+d,S )-zP
This module is for building coordinate systems to be used when
building a CRS.
    )Union)CoordinateSystem)Cartesian2DCSAxisEllipsoidal2DCSAxisEllipsoidal3DCSAxisVerticalCSAxismetredegree
LinearUnitfootgׁ?)typenameconversion_factorzUS survey footg8pjځ?	Longitudeloneast)r   abbreviation	directionunitLatitudelatnorthc                   @   ,   e Zd ZdZejfdeeef fddZdS )Ellipsoidal2DCSzY
    .. versionadded:: 2.5.0

    This generates an Ellipsoidal 2D Coordinate System
    axisc                 C      |  ddtt| dS )a  
        Parameters
        ----------
        axis: :class:`pyproj.crs.enums.Ellipsoidal2DCSAxis` or str, optional
            This is the axis order of the coordinate system. Default is
            :attr:`pyproj.crs.enums.Ellipsoidal2DCSAxis.LONGITUDE_LATITUDE`.
        r   ellipsoidalr   subtyper   )from_json_dict_ELLIPSOIDAL_2D_AXIS_MAPr   createclsr    r$   U/home/ubuntu/webapp/venv/lib/python3.10/site-packages/pyproj/crs/coordinate_system.py__new__@   s   zEllipsoidal2DCS.__new__N)	__name__
__module____qualname____doc__r   LONGITUDE_LATITUDEr   strr&   r$   r$   r$   r%   r   9   s    
r   zEllipsoidal heighthupc                   @   r   )Ellipsoidal3DCSzY
    .. versionadded:: 2.5.0

    This generates an Ellipsoidal 3D Coordinate System
    r   c                 C   r   )a  
        Parameters
        ----------
        axis: :class:`pyproj.crs.enums.Ellipsoidal3DCSAxis` or str, optional
            This is the axis order of the coordinate system. Default is
            :attr:`pyproj.crs.enums.Ellipsoidal3DCSAxis.LONGITUDE_LATITUDE_HEIGHT`.
        r   r   r   )r   _ELLIPSOIDAL_3D_AXIS_MAPr   r!   r"   r$   r$   r%   r&      s   zEllipsoidal3DCS.__new__N)	r'   r(   r)   r*   r   LONGITUDE_LATITUDE_HEIGHTr   r,   r&   r$   r$   r$   r%   r/      s    
r/   EastingENorthingNXYsouthwestc                   @   r   )Cartesian2DCSzW
    .. versionadded:: 2.5.0

    This generates an Cartesian 2D Coordinate System
    r   c                 C   r   )a  
        Parameters
        ----------
        axis: :class:`pyproj.crs.enums.Cartesian2DCSAxis` or str, optional
            This is the axis order of the coordinate system.
            Default is :attr:`pyproj.crs.enums.Cartesian2DCSAxis.EASTING_NORTHING`.
        r   	Cartesianr   )r   _CARTESIAN_2D_AXIS_MAPr   r!   r"   r$   r$   r%   r&     s   
zCartesian2DCS.__new__N)	r'   r(   r)   r*   r   EASTING_NORTHINGr   r,   r&   r$   r$   r$   r%   r:     s    
r:   zGravity-related heightHDepthDdownc                   @   r   )
VerticalCSzS
    .. versionadded:: 2.5.0

    This generates an Vertical Coordinate System
    r   c                 C   s   |  ddtt| gdS )a  
        Parameters
        ----------
        axis: :class:`pyproj.crs.enums.VerticalCSAxis` or str, optional
            This is the axis direction of the coordinate system.
            Default is :attr:`pyproj.crs.enums.VerticalCSAxis.GRAVITY_HEIGHT`.
        r   verticalr   )r   _VERTICAL_AXIS_MAPr   r!   r"   r$   r$   r%   r&   p  s   zVerticalCS.__new__N)	r'   r(   r)   r*   r   GRAVITY_HEIGHTr   r,   r&   r$   r$   r$   r%   rB   i  s     rB   N),r*   typingr   pyproj._crsr   pyproj.crs.enumsr   r   r   r   
UNIT_METREUNIT_DEGREEUNIT_FT
UNIT_US_FTr+   LATITUDE_LONGITUDEr    r   r1   LATITUDE_LONGITUDE_HEIGHTr0   r/   r=   NORTHING_EASTINGEASTING_NORTHING_FTNORTHING_EASTING_FTEASTING_NORTHING_US_FTNORTHING_EASTING_US_FT'NORTH_POLE_EASTING_SOUTH_NORTHING_SOUTH'SOUTH_POLE_EASTING_NORTH_NORTHING_NORTHWESTING_SOUTHINGr<   r:   rE   GRAVITY_HEIGHT_US_FTGRAVITY_HEIGHT_FTDEPTHDEPTH_US_FTDEPTH_FTUPUP_FTUP_US_FTrD   rB   r$   r$   r$   r%   <module>   s    ,		x: