Ë
    xìqjGk  ã                   ó  — d Z ddlZddlmZmZmZ ddlmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ ddlmZmZmZ ddlmZ d„ Z d„ Z!d	„ Z"d
„ Z#d„ Z$d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z*d„ Z+d„ Z,d„ Z-d„ Z.d„ Z/d„ Z0d„ Z1e#e$e%e&e'e(e)e*e+e,e-e.e/e0dœZ2de1iZ3d„ Z4d„ Z5d„ Z6d„ Z7d„ Z8d „ Z9d!„ Z:d"„ Z;d#„ Z<d$„ Z=d%„ Z>d&„ Z?d'„ Z@d(„ ZAd)„ ZBd*„ ZCd+„ ZDi d,e5“d-e6“d.e6“d/e7“d0e7“d1e8“d2e9“d3e9“d4e:“d5e;“d6e;“d7e<“d8e=“d9e>“d:e>“d;e?“d<e@“eAeBd=œ¥ZEeCeCeCeCeDd>œZFy)?z¶
This module contains mappings necessary to convert from
a CRS to a CF-1.8 compliant projection.

http://cfconventions.org/cf-conventions/cf-conventions.html#appendix-grid-mappings

é    N)ÚDatumÚ	EllipsoidÚPrimeMeridian)ÚAlbersEqualAreaConversionÚAzimuthalEquidistantConversionÚ GeostationarySatelliteConversionÚ HotineObliqueMercatorBConversionÚ#LambertAzimuthalEqualAreaConversionÚ"LambertConformalConic1SPConversionÚ"LambertConformalConic2SPConversionÚ%LambertCylindricalEqualAreaConversionÚ*LambertCylindricalEqualAreaScaleConversionÚMercatorAConversionÚMercatorBConversionÚOrthographicConversionÚPolarStereographicAConversionÚPolarStereographicBConversionÚPoleRotationNetCDFCFConversionÚSinusoidalConversionÚStereographicConversionÚTransverseMercatorConversionÚVerticalPerspectiveConversion)ÚCustomDatumÚCustomEllipsoidÚCustomPrimeMeridian)ÚCRSErrorc           	      óx  — | j                  d«      }|r|dvr	 t        j                  |«      S d }| j                  d«      }	 t	        |xs d| j                  d«      | j                  d«      | j                  d«      | j                  d«      ¬	«      }d }| j                  d
«      }	 t        |xs d| d   ¬«      }|s|rt        |xs d|xs d|xs d¬«      S y # t        $ r Y Œ¶w xY w# t        $ r |r|dvrt        j                  |«      }Y Œ|w xY w# t        $ r |r|dvrt        j                  |«      }Y Œ~w xY w)NÚhorizontal_datum_name)Ú	undefinedÚunknownÚreference_ellipsoid_namer   Úsemi_major_axisÚsemi_minor_axisÚinverse_flatteningÚearth_radius)Únamer"   r#   r$   ÚradiusÚprime_meridian_nameÚlongitude_of_prime_meridian)r&   Ú	longitudezWGS 84Ú	Greenwich)r&   Ú	ellipsoidÚprime_meridian)
Úgetr   Ú	from_namer   r   r   r   ÚKeyErrorr   r   )Ú	cf_paramsÚ
datum_namer,   Úellipsoid_namer-   r(   s         úM/var/www/html/truck-me/venv/lib/python3.12/site-packages/pyproj/crs/_cf1x8.pyÚ_horizontal_datum_from_paramsr5   %   sj  € Ø—‘Ð6Ó7€JÙ�jÐ(@Ñ@ð	Ü—?‘? :Ó.Ð.ð €IØ—]‘]Ð#=Ó>€Nð
<Ü#ØÒ. ;Ø%ŸM™MÐ*;Ó<Ø%ŸM™MÐ*;Ó<Ø(Ÿ}™}Ð-AÓBØ—=‘= Ó0ô
ˆ	ð €NØ#Ÿ-™-Ð(=Ó>ÐðJÜ,Ø$Ò3¨ØÐ =Ñ>ô
ˆñ ‘NÜØÒ*˜{ØÒ+ 8Ø)Ò8¨[ô
ð 	
ð
 øôI ò 	Ùð	ûô ò <Ù˜nÐ4LÑLÜ!×+Ñ+¨NÓ;ˆIùð<ûô ò JÙÐ#6Ð>VÑ#VÜ*×4Ñ4Ð5HÓIˆNùðJús6   ™C ÁAC( Â&D Ã	C%Ã$C%Ã($DÄDÄ$D9Ä8D9c                 óÀ   — t        | t        «      s| S | j                  d«      }t        |«      dkD  r'|D �cg c]  }t	        |j                  «       «      ‘Œ c}S | S c c}w )z=
    Attempt to convert string to list if it is a string
    ú,é   )Ú
isinstanceÚstrÚsplitÚlenÚfloatÚstrip)Ú	input_strÚ	val_splitÚsvals      r4   Ú_try_list_if_stringrB   Q   sU   € ô �i¤Ô%ØÐØ—‘ Ó$€IÜ
ˆ9ƒ~˜ÒØ09Ö:¨”�d—j‘j“lÕ#Ò:Ð:ØÐùò ;s   ¶ Ac                 ój   — t        | «      } 	 t        | «      }d }||fS # t        $ r | \  }}Y ||fS w xY w)N)rB   r=   Ú	TypeError)Ústandard_parallelÚfirst_parallelÚsecond_parallels      r4   Ú_get_standard_parallelsrH   ]   sV   € Ü+Ð,=Ó>Ðð<ÜÐ0Ó1ˆØˆð ˜?Ð*Ð*øô ò <Ø*;Ñ'ˆ™Ø˜?Ð*Ð*ð<ús   � ž2±2c                 óÎ   — t        | d   «      \  }}t        ||xs d| j                  dd«      | j                  dd«      | j                  dd«      | j                  dd«      ¬«      S )zX
    http://cfconventions.org/cf-conventions/cf-conventions.html#_albers_equal_area
    rE   ç        Úlatitude_of_projection_originÚlongitude_of_central_meridianÚfalse_eastingÚfalse_northing©Úlatitude_first_parallelÚlatitude_second_parallelÚlatitude_false_originÚlongitude_false_originÚeasting_false_originÚnorthing_false_origin)rH   r   r.   ©r1   rF   rG   s      r4   Ú_albers_conical_equal_arearW   g   sq   € ô '>ØÐ%Ñ&ó'Ñ#€N�Oô %Ø .Ø!0Ò!7°CØ'Ÿm™mÐ,KÈSÓQØ(Ÿ}™}Ð-LÈcÓRØ&Ÿ]™]¨?¸CÓ@Ø'Ÿm™mÐ,<¸cÓBôð ó    c           	      ó    — t        | j                  dd«      | j                  dd«      | j                  dd«      | j                  dd«      ¬«      S )ú[
    http://cfconventions.org/cf-conventions/cf-conventions.html#azimuthal-equidistant
    rK   rJ   Úlongitude_of_projection_originrM   rN   ©Úlatitude_natural_originÚlongitude_natural_originrM   rN   )r   r.   ©r1   s    r4   Ú_azimuthal_equidistantr`   x   sM   € ô *Ø )§¡Ð.MÈsÓ SØ!*§¡Ð/OÐQTÓ!UØ—m‘m O°SÓ9Ø —}‘}Ð%5°sÓ;ô	ð rX   c                 ó  — 	 | d   }t        || d   | j                  dd«      | j                  d	d«      | j                  d
d«      | j                  dd«      ¬«      S # t         $ r dddœ| d   j                  «          }Y Œxw xY w)ú_
    http://cfconventions.org/cf-conventions/cf-conventions.html#_geostationary_projection
    Úsweep_angle_axisÚyÚx)re   rd   Úfixed_angle_axisÚperspective_point_heightrK   rJ   r[   rM   rN   )rc   Úsatellite_heightr]   r^   rM   rN   )r0   Úlowerr   r.   )r1   rc   s     r4   Ú_geostationaryrj   „   s�   € ðWØ$Ð%7Ñ8Ðô ,Ø)Ø"Ð#=Ñ>Ø )§¡Ð.MÈsÓ SØ!*§¡Ð/OÐQTÓ!UØ—m‘m O°SÓ9Ø —}‘}Ð%5°sÓ;ôð øô ò WØ!$¨3Ñ/°	Ð:LÑ0M×0SÑ0SÓ0UÑVÒðWús   ‚A Á"B Á?B c           	      ó    — t        | j                  dd«      | j                  dd«      | j                  dd«      | j                  dd«      ¬«      S )úb
    http://cfconventions.org/cf-conventions/cf-conventions.html#lambert-azimuthal-equal-area
    rK   rJ   r[   rM   rN   r\   )r
   r.   r_   s    r4   Ú_lambert_azimuthal_equal_arearm   –   sM   € ô /Ø )§¡Ð.MÈsÓ SØ!*§¡Ð/OÐQTÓ!UØ—m‘m O°SÓ9Ø —}‘}Ð%5°sÓ;ô	ð rX   c                 óH  — t        | d   «      \  }}|�Qt        ||| j                  dd«      | j                  dd«      | j                  dd«      | j                  dd«      ¬«      S t        || j                  dd«      | j                  dd«      | j                  dd«      ¬«      S )	úX
    http://cfconventions.org/cf-conventions/cf-conventions.html#_lambert_conformal
    rE   rK   rJ   rL   rM   rN   rO   r\   )rH   r   r.   r   rV   s      r4   Ú_lambert_conformal_conicrp   ¢   s³   € ô '>ØÐ%Ñ&ó'Ñ#€N�Oð Ð"Ü1Ø$2Ø%4Ø"+§-¡-Ð0OÐQTÓ"UØ#,§=¡=Ð1PÐRUÓ#VØ!*§¡¨ÀÓ!DØ"+§-¡-Ð0@À#Ó"Fô
ð 	
ô .Ø .Ø!*§¡Ð/NÐPSÓ!TØ—m‘m O°SÓ9Ø —}‘}Ð%5°sÓ;ô	ð rX   c           	      ó,  — d| v rBt        | d   | j                  dd«      | j                  dd«      | j                  dd«      ¬«      S t        | j                  dd«      | j                  dd«      | j                  dd«      | j                  dd«      ¬«      S )	úe
    http://cfconventions.org/cf-conventions/cf-conventions.html#_lambert_cylindrical_equal_area
    Ú!scale_factor_at_projection_originrL   rJ   rM   rN   )Úscale_factor_natural_originr^   rM   rN   rE   ©rP   r^   rM   rN   )r   r.   r   r_   s    r4   Ú_lambert_cylindrical_equal_arearv   º   s�   € ð +¨iÑ7Ü9Ø(1Ð2UÑ(VØ%.§]¡]Ø/°ó&ð $Ÿ-™-¨¸Ó=Ø$Ÿ=™=Ð)9¸3Ó?ô
ð 	
ô 1Ø )§¡Ð.AÀ3Ó GØ!*§¡Ð/NÐPSÓ!TØ—m‘m O°SÓ9Ø —}‘}Ð%5°sÓ;ô	ð rX   c           	      óN  — d| v rSt        | j                  dd«      | j                  dd«      | j                  dd«      | j                  dd«      | d   ¬«      S t        | j                  dd«      | j                  dd«      | j                  dd«      | j                  dd«      ¬«      S )	úO
    http://cfconventions.org/cf-conventions/cf-conventions.html#_mercator
    rs   rE   rJ   r[   rM   rN   ©r]   r^   rM   rN   rt   ru   )r   r.   r   r_   s    r4   Ú	_mercatorrz   Ï   s¬   € ð +¨iÑ7Ü"Ø$-§M¡MÐ2EÀsÓ$KØ%.§]¡]Ø0°#ó&ð $Ÿ-™-¨¸Ó=Ø$Ÿ=™=Ð)9¸3Ó?Ø(1Ð2UÑ(Vô
ð 	
ô Ø )§¡Ð.AÀ3Ó GØ!*§¡Ð/OÐQTÓ!UØ—m‘m O°SÓ9Ø —}‘}Ð%5°sÓ;ô	ð rX   c                 ó˜   — t        | d   | d   | d   d| j                  dd«      | j                  dd«      | j                  dd«      ¬	«      S )
úW
    http://cfconventions.org/cf-conventions/cf-conventions.html#_oblique_mercator
    rK   r[   Úazimuth_of_central_linerJ   rs   ç      ð?rM   rN   )Úlatitude_projection_centreÚlongitude_projection_centreÚazimuth_projection_centreÚ!angle_from_rectified_to_skew_gridÚscale_factor_projection_centreÚeasting_projection_centreÚnorthing_projection_centre)r	   r.   r_   s    r4   Ú_oblique_mercatorr†   å   s_   € ô ,Ø#,Ð-LÑ#MØ$-Ð.NÑ$OØ"+Ð,EÑ"FØ*-Ø'0§}¡}Ø/°ó(
ð #,§-¡-°ÀÓ"EØ#,§=¡=Ð1AÀ3Ó#Gô
ð 
rX   c           	      ó    — t        | j                  dd«      | j                  dd«      | j                  dd«      | j                  dd«      ¬«      S )úS
    http://cfconventions.org/cf-conventions/cf-conventions.html#_orthographic
    rK   rJ   r[   rM   rN   r\   )r   r.   r_   s    r4   Ú_orthographicr‰   ö   sM   € ô "Ø )§¡Ð.MÈsÓ SØ!*§¡Ð/OÐQTÓ!UØ—m‘m O°SÓ9Ø —}‘}Ð%5°sÓ;ô	ð rX   c           
      ó   — d| v r5t        | d   | d   | j                  dd«      | j                  dd«      ¬«      S t        | d   | d   | j                  dd«      | j                  dd«      | j                  dd	«      ¬
«      S )úY
    http://cfconventions.org/cf-conventions/cf-conventions.html#polar-stereographic
    rE   Ú%straight_vertical_longitude_from_polerM   rJ   rN   )Úlatitude_standard_parallelÚlongitude_originrM   rN   rK   rs   r~   ry   )r   r.   r   r_   s    r4   Ú_polar_stereographicr�     s—   € ð ˜iÑ'Ü,Ø'0Ð1DÑ'EØ&Ð'NÑOØ#Ÿ-™-¨¸Ó=Ø$Ÿ=™=Ð)9¸3Ó?ô	
ð 	
ô )Ø )Ð*IÑ JØ!*Ð+RÑ!SØ—m‘m O°SÓ9Ø —}‘}Ð%5°sÓ;Ø$-§M¡MØ/°ó%
ôð rX   c                 ó~   — t        | j                  dd«      | j                  dd«      | j                  dd«      ¬«      S )úQ
    http://cfconventions.org/cf-conventions/cf-conventions.html#_sinusoidal
    r[   rJ   rM   rN   )r^   rM   rN   )r   r.   r_   s    r4   Ú_sinusoidalr’     s>   € ô  Ø!*§¡Ð/OÐQTÓ!UØ—m‘m O°SÓ9Ø —}‘}Ð%5°sÓ;ôð rX   c           
      óÂ   — t        | j                  dd«      | j                  dd«      | j                  dd«      | j                  dd«      | j                  dd«      ¬«      S )	úT
    http://cfconventions.org/cf-conventions/cf-conventions.html#_stereographic
    rK   rJ   r[   rM   rN   rs   r~   ry   )r   r.   r_   s    r4   Ú_stereographicr•   #  s^   € ô #Ø )§¡Ð.MÈsÓ SØ!*§¡Ð/OÐQTÓ!UØ—m‘m O°SÓ9Ø —}‘}Ð%5°sÓ;Ø$-§M¡MØ/°ó%
ôð rX   c           
      óÂ   — t        | j                  dd«      | j                  dd«      | j                  dd«      | j                  dd«      | j                  dd«      ¬«      S )	úZ
    http://cfconventions.org/cf-conventions/cf-conventions.html#_transverse_mercator
    rK   rJ   rL   rM   rN   Ú scale_factor_at_central_meridianr~   ry   )r   r.   r_   s    r4   Ú_transverse_mercatorr™   2  s^   € ô (Ø )§¡Ð.MÈsÓ SØ!*§¡Ð/NÐPSÓ!TØ—m‘m O°SÓ9Ø —}‘}Ð%5°sÓ;Ø$-§M¡MØ.°ó%
ôð rX   c           
      ó¨   — t        | d   | j                  dd«      | j                  dd«      | j                  dd«      | j                  dd«      ¬«      S )úZ
    http://cfconventions.org/cf-conventions/cf-conventions.html#vertical-perspective
    rg   rK   rJ   r[   rM   rN   )Úviewpoint_heightÚlatitude_topocentric_originÚlongitude_topocentric_originrM   rN   )r   r.   r_   s    r4   Ú_vertical_perspectiverŸ   A  sZ   € ô )Ø"Ð#=Ñ>Ø$-§M¡MÐ2QÐSVÓ$WØ%.§]¡]Ø,¨có&
ð  —m‘m O°SÓ9Ø —}‘}Ð%5°sÓ;ôð rX   c                 óJ   — t        | d   | d   | j                  dd«      ¬«      S )úS
    http://cfconventions.org/cf-conventions/cf-conventions.html#_rotated_pole
    Úgrid_north_pole_latitudeÚgrid_north_pole_longitudeÚnorth_pole_grid_longituderJ   )r¢   r£   r¤   )r   r.   r_   s    r4   Ú_rotated_latitude_longituder¥   P  s2   € ô *Ø!*Ð+EÑ!FØ"+Ð,GÑ"HØ"+§-¡-Ð0KÈSÓ"Qôð rX   )Úalbers_conical_equal_areaÚazimuthal_equidistantÚgeostationaryÚlambert_azimuthal_equal_areaÚlambert_conformal_conicÚlambert_cylindrical_equal_areaÚmercatorÚoblique_mercatorÚorthographicÚpolar_stereographicÚ
sinusoidalÚstereographicÚtransverse_mercatorÚvertical_perspectiveÚrotated_latitude_longitudec                 óš   — i }| j                   D ]9  }|j                  ||j                  j                  «       j	                  dd«      <   Œ; |S )Nú Ú_)ÚparamsÚvaluer&   ri   Úreplace)Ú	operationÚ
param_dictÚparams      r4   Ú_to_dictr¾   q  sL   € Ø€JØ×!Ñ!ò GˆØ;@¿;¹;ˆ
�5—:‘:×#Ñ#Ó%×-Ñ-¨c°3Ó7Ò8ðGàÐrX   c                 óR   — t        | «      }d|d   |d   f|d   |d   |d   |d   dœS )	zY
    http://cfconventions.org/cf-conventions/cf-conventions.html#_albers_equal_area

    r¦   Ú!latitude_of_1st_standard_parallelÚ!latitude_of_2nd_standard_parallelÚlatitude_of_false_originÚlongitude_of_false_originÚeasting_at_false_originÚnorthing_at_false_origin©Úgrid_mapping_namerE   rK   rL   rM   rN   ©r¾   ©Ú
conversionr¸   s     r4   Ú!_albers_conical_equal_area__to_cfrË   x  sX   € ô
 �jÓ!€Fà8àÐ6Ñ7ØÐ6Ñ7ð
ð *0Ð0JÑ)KØ)/Ð0KÑ)LØÐ 9Ñ:Ø Ð!;Ñ<ñ
ð 
rX   c                 ó@   — t        | «      }d|d   |d   |d   |d   dœS )rZ   r§   Úlatitude_of_natural_originÚlongitude_of_natural_originrM   rN   ©rÇ   rK   r[   rM   rN   rÈ   rÉ   s     r4   Ú_azimuthal_equidistant__to_cfrÐ   ‹  s>   € ô �jÓ!€Fà4Ø)/Ð0LÑ)MØ*0Ð1NÑ*OØ Ñ0Ø Ð!1Ñ2ñð rX   c                 óÞ   — t        | «      }d}| j                  j                  «       j                  dd«      j	                  d«      rd}d||d   |j                  dd	«      |d
   |d   |d   dœS )rb   rd   r¶   r·   z	(sweep_x)re   r¨   rh   rÍ   rJ   rÎ   rM   rN   )rÇ   rc   rg   rK   r[   rM   rN   )r¾   Úmethod_nameri   rº   Úendswithr.   )rÊ   r¸   rc   s      r4   Ú_geostationary__to_cfrÔ   ™  s‰   € ô �jÓ!€FØÐØ×Ñ×#Ñ#Ó%×-Ñ-¨c°3Ó7×@Ñ@ÀÔMØÐà,Ø,Ø$*Ð+=Ñ$>ð *0¯©Ð4PÐRUÓ)VØ*0Ð1NÑ*OØ Ñ0Ø Ð!1Ñ2ñ
ð 
rX   c                 ó@   — t        | «      }d|d   |d   |d   |d   dœS )rl   r©   rÍ   rÎ   rM   rN   rÏ   rÈ   rÉ   s     r4   Ú$_lambert_azimuthal_equal_area__to_cfrÖ   ®  s>   € ô �jÓ!€Fà;Ø)/Ð0LÑ)MØ*0Ð1NÑ*OØ Ñ0Ø Ð!1Ñ2ñð rX   c                 óÌ   — t        | «      }| j                  j                  «       j                  d«      rd|d   |d   f|d   |d   |d   |d   d	œS d|d
   |d   |d   |d   dœS )ro   z(2sp)rª   rÀ   rÁ   rÂ   rÃ   rÄ   rÅ   rÆ   rÍ   rÎ   rM   rN   ©rÇ   rE   rL   rM   rN   ©r¾   rÒ   ri   rÓ   rÉ   s     r4   Ú_lambert_conformal_conic__to_cfrÚ   ¼  s§   € ô �jÓ!€FØ×Ñ×#Ñ#Ó%×.Ñ.¨wÔ7à!:àÐ:Ñ;ØÐ:Ñ;ð"ð .4Ð4NÑ-OØ-3Ð4OÑ-PØ#Ð$=Ñ>Ø$Ð%?Ñ@ñ

ð 
	
ð 7Ø#Ð$@ÑAØ)/Ð0MÑ)NØ Ñ0Ø Ð!1Ñ2ñð rX   c                 ó@   — t        | «      }d|d   |d   |d   |d   dœS )rr   r«   rÀ   rÎ   rM   rN   rØ   rÈ   rÉ   s     r4   Ú&_lambert_cylindrical_equal_area__to_cfrÜ   Ö  s>   € ô �jÓ!€Fà=Ø#Ð$GÑHØ)/Ð0MÑ)NØ Ñ0Ø Ð!1Ñ2ñð rX   c                 óâ   — t        | «      }| j                  j                  «       j                  dd«      j	                  d«      rd|d   |d   |d   |d   |d	   d
œS d|d   |d   |d   |d   dœS )rx   r¶   r·   z(variant_a)r¬   rÍ   rÎ   rM   rN   Úscale_factor_at_natural_origin)rÇ   rE   r[   rM   rN   rs   rÀ   )rÇ   rE   r[   rM   rN   )r¾   rÒ   ri   rº   rÓ   rÉ   s     r4   Ú_mercator__to_cfrß   ä  s¥   € ô �jÓ!€FØ×Ñ×#Ñ#Ó%×-Ñ-¨c°3Ó7×@Ñ@ÀÔOà!+Ø!'Ð(DÑ!EØ.4Ð5RÑ.SØ# OÑ4Ø$Ð%5Ñ6Ø17Ø0ñ2ñ	
ð 		
ð (Ø#Ð$GÑHØ*0Ð1NÑ*OØ Ñ0Ø Ð!1Ñ2ñð rX   c                 óæ   — t        | «      }|d   dk7  rt        j                  d«       	 |d   }	 |d   }d|d	   |d
   |||d   |d   dœS # t        $ r |d   }Y Œ,w xY w# t        $ r |d   }Y Œ:w xY w)r|   r‚   r   zDangle from rectified to skew grid parameter lost in conversion to CFÚazimuth_of_initial_lineÚazimuth_at_projection_centreÚscale_factor_on_initial_lineÚ!scale_factor_at_projection_centrer­   Úlatitude_of_projection_centreÚlongitude_of_projection_centreÚeasting_at_projection_centreÚnorthing_at_projection_centre)rÇ   rK   r[   r}   rs   rM   rN   )r¾   ÚwarningsÚwarnr0   )rÊ   r¸   r}   rs   s       r4   Ú_oblique_mercator__to_cfrë   ý  sÅ   € ô �jÓ!€FØÐ1Ñ2°aÒ7Ü�‰ØRô	
ðIØ"(Ð)BÑ"CÐðXØ,2Ð3QÑ,RÐ)ð 0Ø)/Ð0OÑ)PØ*0Ð1QÑ*RØ#:Ø-NØÐ >Ñ?Ø Ð!@ÑAñð øô ò IØ"(Ð)GÑ"HÒðIûô ò XØ,2Ð3VÑ,WÒ)ðXús"   ªA °A ÁAÁAÁA0Á/A0c                 ó@   — t        | «      }d|d   |d   |d   |d   dœS )rˆ   r®   rÍ   rÎ   rM   rN   rÏ   rÈ   rÉ   s     r4   Ú_orthographic__to_cfrí     s>   € ô �jÓ!€Fà+Ø)/Ð0LÑ)MØ*0Ð1NÑ*OØ Ñ0Ø Ð!1Ñ2ñð rX   c                 óÂ   — t        | «      }| j                  j                  «       j                  d«      rd|d   |d   |d   |d   dœS d|d   |d	   |d   |d   |d
   dœS )r‹   z(variant b)r¯   Úlatitude_of_standard_parallelÚlongitude_of_originrM   rN   )rÇ   rE   rŒ   rM   rN   rÍ   rÎ   rÞ   )rÇ   rK   rŒ   rM   rN   rs   rÙ   rÉ   s     r4   Ú_polar_stereographic__to_cfrñ   '  s–   € ô �jÓ!€FØ×Ñ×#Ñ#Ó%×.Ñ.¨}Ô=à!6Ø!'Ð(GÑ!HØ5;Ð<QÑ5RØ# OÑ4Ø$Ð%5Ñ6ñ
ð 	
ð 3Ø)/Ð0LÑ)MØ17Ð8UÑ1VØ Ñ0Ø Ð!1Ñ2Ø-3Ð4TÑ-Uñð rX   c                 ó8   — t        | «      }d|d   |d   |d   dœS )r‘   r°   rÎ   rM   rN   )rÇ   r[   rM   rN   rÈ   rÉ   s     r4   Ú_sinusoidal__to_cfró   >  s5   € ô �jÓ!€Fà)Ø*0Ð1NÑ*OØ Ñ0Ø Ð!1Ñ2ñ	ð rX   c                 óH   — t        | «      }d|d   |d   |d   |d   |d   dœS )r”   r±   rÍ   rÎ   rM   rN   rÞ   )rÇ   rK   r[   rM   rN   rs   rÈ   rÉ   s     r4   Ú_stereographic__to_cfrõ   K  sG   € ô �jÓ!€Fà,Ø)/Ð0LÑ)MØ*0Ð1NÑ*OØ Ñ0Ø Ð!1Ñ2Ø-3Ð4TÑ-Uñð rX   c                 óH   — t        | «      }d|d   |d   |d   |d   |d   dœS )r—   r²   rÍ   rÎ   rM   rN   rÞ   )rÇ   rK   rL   rM   rN   r˜   rÈ   rÉ   s     r4   Ú_transverse_mercator__to_cfr÷   Z  sG   € ô �jÓ!€Fà2Ø)/Ð0LÑ)MØ)/Ð0MÑ)NØ Ñ0Ø Ð!1Ñ2Ø,2Ð3SÑ,Tñð rX   c                 óH   — t        | «      }d|d   |d   |d   |d   |d   dœS )r›   r³   rœ   Úlatitude_of_topocentric_originÚlongitude_of_topocentric_originrM   rN   )rÇ   rg   rK   r[   rM   rN   rÈ   rÉ   s     r4   Ú_vertical_perspective__to_cfrû   i  sG   € ô �jÓ!€Fà3Ø$*Ð+=Ñ$>Ø)/Ð0PÑ)QØ*0Ð1RÑ*SØ Ñ0Ø Ð!1Ñ2ñð rX   c                 ó>   — t        | «      }d|d   |d   dz
  |d   dœS )r¡   r´   Úo_lat_pÚlon_0é´   Úo_lon_p©rÇ   r¢   r£   r¤   rÈ   rÉ   s     r4   Ú"_rotated_latitude_longitude__to_cfr  x  s7   € ô �jÓ!€Fà9Ø$*¨9Ñ$5à%+¨G¡_°sÑ%:Ø%+¨IÑ%6ñð rX   c                 ó8   — t        | «      }d|d   |d   |d   dœS )z€
    http://cfconventions.org/cf-conventions/cf-conventions.html#_rotated_pole

    https://github.com/OSGeo/PROJ/pull/2835
    r´   z/grid_north_pole_latitude_(netcdf_cf_convention)z0grid_north_pole_longitude_(netcdf_cf_convention)z0north_pole_grid_longitude_(netcdf_cf_convention)r  rÈ   rÉ   s     r4   Ú_pole_rotation_netcdf__to_cfr  †  s@   € ô �jÓ!€Fà9Ø$*Ø=ñ%
ð &,Ø>ñ&
ð &,Ø>ñ&
ñð rX   Úalbers_equal_areaÚmodified_azimuthal_equidistantr§   z!geostationary_satellite_(sweep_x)z!geostationary_satellite_(sweep_y)r©   zlambert_conic_conformal_(2sp)zlambert_conic_conformal_(1sp)r«   zmercator_(variant_a)zmercator_(variant_b)z#hotine_oblique_mercator_(variant_b)r®   zpolar_stereographic_(variant_a)zpolar_stereographic_(variant_b)r°   r±   )r²   r³   )zproj ob_tran o_proj=longlatzproj ob_tran o_proj=lonlatzproj ob_tran o_proj=latlonzproj ob_tran o_proj=latlongz$pole rotation (netcdf cf convention))GÚ__doc__ré   Úpyproj._crsr   r   r   Úpyproj.crs.coordinate_operationr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Úpyproj.crs.datumr   r   r   Úpyproj.exceptionsr   r5   rB   rH   rW   r`   rj   rm   rp   rv   rz   r†   r‰   r�   r’   r•   r™   rŸ   r¥   Ú_GRID_MAPPING_NAME_MAPÚ!_GEOGRAPHIC_GRID_MAPPING_NAME_MAPr¾   rË   rÐ   rÔ   rÖ   rÚ   rÜ   rß   rë   rí   rñ   ró   rõ   r÷   rû   r  r  Ú_INVERSE_GRID_MAPPING_NAME_MAPÚ)_INVERSE_GEOGRAPHIC_GRID_MAPPING_NAME_MAP© rX   r4   ú<module>r     s;  ðñó ç 7Ñ 7÷÷ ÷ ÷ ÷ ñ ÷* OÑ NÝ &ò)òX	ò+òò"	òò$	òò0ò*ò,ò"	òò,òòòòð "<Ø3Ø#Ø$AØ7Ø&EØØ)Ø!Ø/ØØ#Ø/Ø1ñÐ ð$ !Ð"=ð%Ð !ò
òò&òò*òò4òò2ò8òò.
òòòòòð*"ØÐ:ð"à$Ð&Cð"ð Ð:ð"ð (Ð)>ð	"ð
 (Ð)>ð"ð #Ð$Hð"ð $Ð%Dð"ð $Ð%Dð"ð %Ð&Lð"ð Ð,ð"ð Ð,ð"ð *Ð+Cð"ð Ð(ð"ð &Ð'Bð"ð &Ð'Bð"ð  Ð$ð!"ð" Ð*ð#"ð$ 7Ø8ò'"Ð ð. $FØ"DØ"DØ#EØ,Hñ-Ñ )rX   