ó
    {ñ:iÅD  ã                   ó  • S SK rS SKrS SKJr  S SKJr  S SKJr	  S SK
Jr  S SKJr  S SKJr  S SKJrJrJrJr  S SKJrJrJr   " S S	\5      r " S
 S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      rg)é    N)Ú_api)ÚAxes©ÚCircle)ÚPath)Ú	FormatterÚNullLocatorÚFixedLocatorÚNullFormatter)ÚAffine2DÚBboxTransformToÚ	Transformc                   óò   ^ • \ rS rSrSr " S S\5      rSrS rU 4S jr	S r
S	 rS S
 jrS rS rS S jrS rS rS rS rS r\rS r\r\r\rS r\rS rS rS rS rS r S r!S r"S r#S r$S r%Sr&U =r'$ )!ÚGeoAxesé   z2An abstract base class for geographic projections.c                   ó,   • \ rS rSrSrSS jrSS jrSrg)	ÚGeoAxes.ThetaFormatteré   zs
Used to format the theta tick labels.  Converts the native
unit of radians into degrees and adds a degree symbol.
c                 ó   • Xl         g ©N©Ú	_round_to)ÚselfÚround_tos     Ú]/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/matplotlib/projections/geo.pyÚ__init__ÚGeoAxes.ThetaFormatter.__init__   s   € Ø%�Nó    Nc                 ó€   • [        [        R                  " U5      U R                  -  5      U R                  -  nUS S3$ )Nz0.0fô   Â°)ÚroundÚnpÚrad2degr   )r   ÚxÚposÚdegreess       r   Ú__call__ÚGeoAxes.ThetaFormatter.__call__   s5   € ÜœBŸJšJ q›M¨D¯N©NÑ:Ó;¸d¿n¹nÑLˆGØ˜d�^ ?Ð3Ð3r   r   )ç      ð?r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r'   Ú__static_attributes__© r   r   ÚThetaFormatterr      s   † ñ	ô	&÷	4r   r1   éK   c                 ó¼   • [         R                  " U SS9U l        [         R                  " U SS9U l        U R
                  S   R                  U R                  5        g )NF)ÚclearÚgeo)ÚmaxisÚXAxisÚxaxisÚYAxisÚyaxisÚspinesÚregister_axis©r   s    r   Ú
_init_axisÚGeoAxes._init_axis    sA   € Ü—[’[ ¨UÑ3ˆŒ
Ü—[’[ ¨UÑ3ˆŒ
Ø�‰�EÑ×(Ñ(¨¯©Õ4r   c                 óÖ  >• [         TU ]  5         U R                  S5        U R                  S5        U R	                  S5        U R
                  R                  [        5       5        U R                  R                  [        5       5        U R
                  R                  S5        U R                  R                  S5        U R                  R                  SS9  U R                  [        R                  S   5        [        R                  " U [         R"                  * [         R"                  5        [        R$                  " U [         R"                  * S-  [         R"                  S-  5        g )	Né   r   r2   ÚnoneT)Úlabel1Onz	axes.gridç       @)Úsuperr4   Úset_longitude_gridÚset_latitude_gridÚset_longitude_grid_endsr8   Úset_minor_locatorr	   r:   Úset_ticks_positionÚset_tick_paramsÚgridÚmplÚrcParamsr   Úset_xlimr"   ÚpiÚset_ylim©r   Ú	__class__s    €r   r4   ÚGeoAxes.clear%   sê   ø€ ä‰‰Œà×Ñ Ô#Ø×Ñ˜rÔ"Ø×$Ñ$ RÔ(Ø�
‰
×$Ñ$¤[£]Ô3Ø�
‰
×$Ñ$¤[£]Ô3Ø�
‰
×%Ñ% fÔ-Ø�
‰
×%Ñ% fÔ-Ø�
‰
×"Ñ"¨DÐ"Ñ1ð 	�	‰	”#—,‘,˜{Ñ+Ô,ä�Š�dœRŸU™U˜F¤B§E¡EÔ*Ü�Š�dœRŸU™U˜F S™L¬"¯%©%°#©+Õ6r   c                 ó®  • U R                  U R                  5      U l        U R                  5       U l        [        U R                  5      U l        U R                  U R                  -   U R                  -   U l        [        5       R                  SU R                  S-  5      R                  SU R                  * 5      U l        U R                  U R                  -   U l        [        5       R                  SS5      U R                  -   [        5       R                  SS5      -   U l        [        5       R                  SS5      U R                  -   [        5       R                  SS5      -   U l        [        5       R                  ["        R$                  S-  S5      R                  ["        R$                  * S5      n[        5       R                  SS5      nUU R                  -   U l        UU R                  -   UU R                  -   U R                  -   -   nU[        5       R                  SS5      -   U l        U[        5       R                  SS5      -   U l        g )	Né   é   r   é   éüÿÿÿgš™™™™™ñ?iøÿÿÿé   )Ú_get_core_transformÚ
RESOLUTIONÚtransProjectionÚ_get_affine_transformÚtransAffiner   ÚbboxÚ	transAxesÚ	transDatar   ÚscaleÚ_longitude_capÚ	translateÚ_xaxis_pretransformÚ_xaxis_transformÚ_xaxis_text1_transformÚ_xaxis_text2_transformr"   rP   Ú_yaxis_transformÚ_yaxis_text1_transformÚ_yaxis_text2_transform)r   Úyaxis_stretchÚyaxis_spaceÚyaxis_text_bases       r   Ú_set_lim_and_transformsÚGeoAxes._set_lim_and_transforms9   s  € à#×7Ñ7¸¿¹ÓHˆÔà×5Ñ5Ó7ˆÔä(¨¯©Ó3ˆŒð
 × Ñ Ø×Ññà�N‰Nñð 	Œô ‹Jß‰U�1�d×)Ñ)¨AÑ-Ó.ß‰Y�q˜4×.Ñ.Ð.Ó/ð 	Ô ð
 ×$Ñ$Ø�N‰Nñð 	Ôô ‹J×Ñ˜Q Ó"Ø�N‰Nñä‹J× Ñ   AÓ&ñ'ð 	Ô#ô
 ‹J×Ñ˜Q Ó"Ø�N‰Nñä‹J× Ñ   BÓ'ñ(ð 	Ô#ô !›
×(Ñ(¬¯©°©°AÓ6×@Ñ@Ä"Ç%Á%ÀÈÓKˆÜ“j×&Ñ& q¨#Ó.ˆàØ�N‰Nñð 	Ôð Ø× Ñ ñ!àØ×Ññà�^‰^ññð 	ð Ü‹J× Ñ   QÓ'ñ(ð 	Ô#ð Ü‹J× Ñ   AÓ&ñ'ð 	Õ#r   c                 ó  • U R                  S5      nUR                  [        R                  S45      u  p#UR                  S[        R                  S-  45      u  p4[	        5       R                  SU-  SU-  5      R                  SS5      $ )NrV   r   rW   ç      à?)r[   Ú	transformr"   rP   r   rc   re   )r   rt   ÚxscaleÚ_Úyscales        r   r^   ÚGeoAxes._get_affine_transforml   st   € Ø×,Ñ,¨QÓ/ˆ	Ø×'Ñ'¬¯©°¨
Ó3‰	ˆØ×'Ñ'¨¬B¯E©E°!©G¨Ó5‰	ˆÜ‹zß‰U�3˜‘<  v¡Ó.ß‰Y�s˜CÓ ð	!r   c                 óH   • [         R                  " / SQUS9  U R                  $ ©N)Útick1Útick2rL   )Úwhich)r   Úcheck_in_listrg   ©r   r}   s     r   Úget_xaxis_transformÚGeoAxes.get_xaxis_transformt   ó   € Ü×ÒÒ5¸UÒCØ×$Ñ$Ð$r   c                 ó    • U R                   SS4$ )NÚbottomÚcenter)rh   ©r   Úpads     r   Úget_xaxis_text1_transformÚ!GeoAxes.get_xaxis_text1_transformx   s   € Ø×*Ñ*¨H°hÐ>Ð>r   c                 ó    • U R                   SS4$ )NÚtopr…   )ri   r†   s     r   Úget_xaxis_text2_transformÚ!GeoAxes.get_xaxis_text2_transform{   s   € Ø×*Ñ*¨E°8Ð;Ð;r   c                 óH   • [         R                  " / SQUS9  U R                  $ rz   )r   r~   rj   r   s     r   Úget_yaxis_transformÚGeoAxes.get_yaxis_transform~   r‚   r   c                 ó    • U R                   SS4$ )Nr…   Úright)rk   r†   s     r   Úget_yaxis_text1_transformÚ!GeoAxes.get_yaxis_text1_transform‚   s   € Ø×*Ñ*¨H°gÐ=Ð=r   c                 ó    • U R                   SS4$ )Nr…   Úleft)rl   r†   s     r   Úget_yaxis_text2_transformÚ!GeoAxes.get_yaxis_text2_transform…   s   € Ø×*Ñ*¨H°fÐ<Ð<r   c                 ó   • [        SS5      $ )N©rs   rs   rs   r   r=   s    r   Ú_gen_axes_patchÚGeoAxes._gen_axes_patchˆ   s   € Ü�j #Ó&Ð&r   c                 óH   • S[         R                  R                  U SS5      0$ )Nr5   rš   rs   )ÚmspinesÚSpineÚcircular_spiner=   s    r   Ú_gen_axes_spinesÚGeoAxes._gen_axes_spines‹   s    € Ø”w—}‘}×3Ñ3°D¸*ÀcÓJÐKÐKr   c                 ó"   • US   S:w  a  [         eg )Nr   Úlinear)ÚNotImplementedError©r   ÚargsÚkwargss      r   Ú
set_yscaleÚGeoAxes.set_yscaleŽ   s   € Ø�‰7�hÓÜ%Ð%ð r   c                 ó   • [        S5      e©z-Not supported. Please consider using Cartopy.zaChanging axes limits of a geographic projection is not supported.  Please consider using Cartopy.©Ú	TypeErrorr¦   s      r   rO   ÚGeoAxes.set_xlim”   ó   € äð Ió Jð 	Jr   c                 ó   • [        S5      er¬   r­   r=   s    r   Úinvert_xaxisÚGeoAxes.invert_xaxis�   r°   r   c                 ó’   • [         R                  " X/5      u  pUS:¼  a  SOSnUS:¼  a  SOSnS[        U5      U[        U5      U4-  $ )z1Return a format string formatting the coordinate.ç        ÚNÚSÚEÚWu   %fÂ°%s, %fÂ°%s)r"   r#   Úabs)r   ÚlonÚlatÚnsÚews        r   Úformat_coordÚGeoAxes.format_coord¤   sO   € ä—:’:˜s˜jÓ)‰ˆØ˜3“J‰S CˆØ˜3“J‰S CˆØ:Ü�s“8˜R¤ S£¨2Ð.ñ/ð 	0r   c                 óþ   • [         R                  " SU-   SU5      nU R                  R                  [	        [         R
                  " U5      5      5        U R                  R                  U R                  U5      5        g)z8
Set the number of degrees between each longitude grid.
iLÿÿÿé´   N)r"   Úaranger8   Úset_major_locatorr
   Údeg2radÚset_major_formatterr1   ©r   r&   rL   s      r   rF   ÚGeoAxes.set_longitude_grid¬   sW   € ô
 �yŠy˜ ™¨¨gÓ6ˆØ�
‰
×$Ñ$¤\´"·*²*¸TÓ2BÓ%CÔDØ�
‰
×&Ñ& t×':Ñ':¸7Ó'CÕDr   c                 óþ   • [         R                  " SU-   SU5      nU R                  R                  [	        [         R
                  " U5      5      5        U R                  R                  U R                  U5      5        g)z7
Set the number of degrees between each latitude grid.
i¦ÿÿÿéZ   N)r"   rÃ   r:   rÄ   r
   rÅ   rÆ   r1   rÇ   s      r   rG   ÚGeoAxes.set_latitude_gridµ   sW   € ô
 �yŠy˜˜w™¨¨GÓ4ˆØ�
‰
×$Ñ$¤\´"·*²*¸TÓ2BÓ%CÔDØ�
‰
×&Ñ& t×':Ñ':¸7Ó'CÕDr   c                 óÞ   • [         R                  " U5      U l        U R                  R	                  5       R                  SU R                  S-  5      R                  SU R                  * 5        g)zC
Set the latitude(s) at which to stop drawing the longitude grids.
r)   rD   rµ   N)r"   rÅ   rd   rf   r4   rc   re   )r   r&   s     r   rH   ÚGeoAxes.set_longitude_grid_ends¾   sQ   € ô !Ÿjšj¨Ó1ˆÔØ× Ñ ß‰U‹Wß‰U�3˜×+Ñ+¨cÑ1Ó2ß‰Y�s˜T×0Ñ0Ð0Õ1r   c                 ó   • g)z+Return the aspect ratio of the data itself.r)   r0   r=   s    r   Úget_data_ratioÚGeoAxes.get_data_ratioÈ   s   € àr   c                 ó   • g)z
Return whether this Axes supports the zoom box button functionality.

This Axes object does not support interactive zoom box.
Fr0   r=   s    r   Úcan_zoomÚGeoAxes.can_zoomÎ   ó   € ð r   c                 ó   • g)z
Return whether this Axes supports the pan/zoom button functionality.

This Axes object does not support interactive pan/zoom.
Fr0   r=   s    r   Úcan_panÚGeoAxes.can_panÖ   rÔ   r   c                 ó   • g r   r0   )r   r$   ÚyÚbuttons       r   Ú	start_panÚGeoAxes.start_panÞ   ó   € Ør   c                 ó   • g r   r0   r=   s    r   Úend_panÚGeoAxes.end_paná   rÝ   r   c                 ó   • g r   r0   )r   rÚ   Úkeyr$   rÙ   s        r   Údrag_panÚGeoAxes.drag_panä   rÝ   r   )rd   rf   rh   ri   rg   rk   rl   rj   r_   ra   rb   r]   r8   r:   )rL   )(r*   r+   r,   r-   r.   r   r1   r\   r>   r4   rp   r^   r€   rˆ   rŒ   r�   r“   r—   r›   r¡   r©   Ú
set_xscalerO   rQ   Ú
set_xboundÚ
set_yboundr²   Úinvert_yaxisr¿   rF   rG   rH   rÏ   rÒ   rÖ   rÛ   rß   rã   r/   Ú__classcell__©rS   s   @r   r   r      sÀ   ø† Ù<ô
4˜ô 
4ð €Jò5õ
7ò(1'òf!ô%ò?ò<ô%ò>ò=ò'òLò&ð €JòJð
 €HØ€JØ€JòJð
  €Lò0òEòEò2òòòòò÷ð r   r   c                   ó<   ^ • \ rS rSrS=rrU 4S jrS rS rSr	U =r
$ )Ú_GeoTransforméè   rW   c                 ó.   >• [         TU ]  5         Xl        g)z¡
Create a new geographical transform.

Resolution is the number of steps to interpolate between each input
line segment to approximate its path in curved space.
N)rE   r   Ú_resolution)r   Ú
resolutionrS   s     €r   r   Ú_GeoTransform.__init__ì   s   ø€ ô 	‰ÑÔØ%Õr   c                 óL   • [        U 5      R                   SU R                   S3$ )NÚ(Ú))Útyper*   rï   r=   s    r   Ú__str__Ú_GeoTransform.__str__ö   s'   € Ü�t“*×%Ñ%Ð& a¨×(8Ñ(8Ð'9¸Ð;Ð;r   c                 ó–   • UR                  U R                  5      n[        U R                  UR                  5      UR
                  5      $ r   )Úinterpolatedrï   r   rt   ÚverticesÚcodes)r   ÚpathÚipaths      r   Útransform_path_non_affineÚ'_GeoTransform.transform_path_non_affineù   s6   € à×!Ñ! $×"2Ñ"2Ó3ˆÜ�D—N‘N 5§>¡>Ó2°E·K±KÓ@Ð@r   )rï   )r*   r+   r,   r-   Ú
input_dimsÚoutput_dimsr   rö   rþ   r/   ré   rê   s   @r   rì   rì   è   s#   ø† à Ð €J�õ&ò<÷Að Ar   rì   c                   ó^   ^ • \ rS rSrSr " S S\5      r " S S\5      rU 4S jrS r	S	r
U =r$ )
Ú
AitoffAxeséÿ   Úaitoffc                   ó$   • \ rS rSrSrS rS rSrg)ÚAitoffAxes.AitoffTransformi  zThe base Aitoff transform.c                 ó”  • UR                   u  p#US-  n[        R                  " U5      n[        R                  " U[        R                  " U5      -  5      n[        R                  " U[        R
                  -  5      nU[        R                  " U5      -  U-  n[        R                  " U5      U-  n	[        R                  " X‰/5      $ )NrD   )ÚTr"   ÚcosÚarccosÚsincrP   ÚsinÚcolumn_stack)
r   ÚvaluesÚ	longitudeÚlatitudeÚ	half_longÚcos_latitudeÚalphaÚ
sinc_alphar$   rÙ   s
             r   Útransform_non_affineÚ/AitoffAxes.AitoffTransform.transform_non_affine  s•   € à"(§(¡(ÑˆIð " C™ˆIÜŸ6š6 (Ó+ˆLä—I’I˜l¬R¯VªV°IÓ->Ñ>Ó?ˆEÜŸš ¬¯©¡Ó/ˆJà¤§¢ yÓ 1Ñ1°ZÑ?ˆAÜ—’�xÓ  :Ñ-ˆAÜ—?’? A 6Ó*Ð*r   c                 ó@   • [         R                  U R                  5      $ r   )r  ÚInvertedAitoffTransformrï   r=   s    r   ÚinvertedÚ#AitoffAxes.AitoffTransform.inverted  ó   € ä×5Ñ5°d×6FÑ6FÓGÐGr   r0   N©r*   r+   r,   r-   r.   r  r  r/   r0   r   r   ÚAitoffTransformr    s   † Ù(ò	+õ	Hr   r  c                   ó    • \ rS rSrS rS rSrg)Ú"AitoffAxes.InvertedAitoffTransformi  c                 óL   • [         R                  " U[         R                  5      $ r   )r"   Ú	full_likeÚnan)r   r  s     r   r  Ú7AitoffAxes.InvertedAitoffTransform.transform_non_affine  s   € ô —<’< ¬¯©Ó/Ð/r   c                 ó@   • [         R                  U R                  5      $ r   )r  r  rï   r=   s    r   r  Ú+AitoffAxes.InvertedAitoffTransform.inverted  ó   € ä×-Ñ-¨d×.>Ñ.>Ó?Ð?r   r0   N©r*   r+   r,   r-   r  r  r/   r0   r   r   r  r     s   † ò	0õ
	@r   r  c                 ó˜   >• [         R                  S-  U l        [        TU ]  " U0 UD6  U R                  SSSS9  U R                  5         g ©NrD   rs   ÚboxÚC©Ú
adjustableÚanchor©r"   rP   rd   rE   r   Ú
set_aspectr4   ©r   r§   r¨   rS   s      €r   r   ÚAitoffAxes.__init__#  ó@   ø€ Ü Ÿe™e c™kˆÔÜ‰Ò˜$Ð) &Ò)Ø�‰˜¨°cˆÑ:Ø�
‰
�r   c                 ó$   • U R                  U5      $ r   )r  ©r   rð   s     r   r[   ÚAitoffAxes._get_core_transform)  ó   € Ø×#Ñ# JÓ/Ð/r   ©rd   )r*   r+   r,   r-   Únamerì   r  r  r   r[   r/   ré   rê   s   @r   r  r  ÿ   s3   ø† Ø€DôH˜-ô Hô,	@ -ô 	@õ÷0ð 0r   r  c                   ó^   ^ • \ rS rSrSr " S S\5      r " S S\5      rU 4S jrS r	S	r
U =r$ )
Ú
HammerAxesi-  Úhammerc                   ó$   • \ rS rSrSrS rS rSrg)ÚHammerAxes.HammerTransformi0  zThe base Hammer transform.c                 óŠ  • UR                   u  p#US-  n[        R                  " U5      n[        R                  " S5      n[        R                  " SU[        R                  " U5      -  -   5      nSU-  U[        R                  " U5      -  -  U-  nU[        R                  " U5      -  U-  n	[        R
                  " X‰/5      $ )NrD   r)   )r	  r"   r
  Úsqrtr  r  )
r   r  r  r  r  r  Úsqrt2r  r$   rÙ   s
             r   r  Ú/HammerAxes.HammerTransform.transform_non_affine3  s�   € à"(§(¡(ÑˆIØ! C™ˆIÜŸ6š6 (Ó+ˆLÜ—G’G˜C“LˆEÜ—G’G˜C ,´·²¸	Ó1BÑ"BÑBÓCˆEØ�u‘ ´·²°yÓ0AÑ!AÑBÀUÑJˆAØœŸš Ó)Ñ)¨UÑ2ˆAÜ—?’? A 6Ó*Ð*r   c                 ó@   • [         R                  U R                  5      $ r   )r<  ÚInvertedHammerTransformrï   r=   s    r   r  Ú#HammerAxes.HammerTransform.inverted>  r  r   r0   Nr  r0   r   r   ÚHammerTransformr?  0  s   † Ù(ò		+õ	Hr   rG  c                   ó    • \ rS rSrS rS rSrg)Ú"HammerAxes.InvertedHammerTransformiB  c                 ó   • UR                   u  p#[        R                  " SUS-  S-  -
  US-  S-  -
  5      nS[        R                  " XB-  SSUS-  -  S-
  -  -  5      -  n[        R                  " X4-  5      n[        R
                  " XV/5      $ )NrV   rX   rW   )r	  r"   rA  ÚarctanÚarcsinr  )r   r  r$   rÙ   Úzr  r  s          r   r  Ú7HammerAxes.InvertedHammerTransform.transform_non_affineD  s�   € à—8‘8‰DˆAÜ—’˜˜Q ™U q™LÑ(¨A°©E°a©<Ñ7Ó8ˆAØœBŸIšI q¡u°°a¸!¸q¹&±jÀ1±nÑ1EÑ&FÓGÑGˆIÜ—y’y ¡“~ˆHÜ—?’? IÐ#8Ó9Ð9r   c                 ó@   • [         R                  U R                  5      $ r   )r<  rG  rï   r=   s    r   r  Ú+HammerAxes.InvertedHammerTransform.invertedL  r'  r   r0   Nr(  r0   r   r   rE  rI  B  s   † ò	:õ	@r   rE  c                 ó˜   >• [         R                  S-  U l        [        TU ]  " U0 UD6  U R                  SSSS9  U R                  5         g r*  r0  r2  s      €r   r   ÚHammerAxes.__init__P  r4  r   c                 ó$   • U R                  U5      $ r   )rG  r6  s     r   r[   ÚHammerAxes._get_core_transformV  r8  r   r9  )r*   r+   r,   r-   r:  rì   rG  rE  r   r[   r/   ré   rê   s   @r   r<  r<  -  s3   ø† Ø€DôH˜-ô Hô$@ -ô @õ÷0ð 0r   r<  c                   ó^   ^ • \ rS rSrSr " S S\5      r " S S\5      rU 4S jrS r	S	r
U =r$ )
ÚMollweideAxesiZ  Ú	mollweidec                   ó$   • \ rS rSrSrS rS rSrg)Ú MollweideAxes.MollweideTransformi]  zThe base Mollweide transform.c                 ó<  ^• U4S jnUR                   u  p4[        R                  S-  [        R                  " U5      -
  nUS:  nU) n[        R                  " UR
                  [        S9nUR                  5       (       a‘  [        R                  [        R                  " XG   5      -  mSXG   -  n	U" U	5      u  p«[        R                  " U5      (       a5  X›==   X«   -  ss'   U" U	5      u  p«[        R                  " U5      (       a  M5  U	S-  X‡'   UR                  5       (       aT  XV   nSS[        R                  -  US-  -  S-  -  n[        R                  S-  U-
  [        R                  " XF   5      -  X†'   [        R                  " UR
                  [        S9nS[        R                  " S5      -  [        R                  -  U-  [        R                  " U5      -  US S 2S	4'   [        R                  " S5      [        R                  " U5      -  US S 2S
4'   U$ )Nc                 ó¨   >• U [         R                  " U 5      -   T-
  * S[         R                  " U 5      -   -  nU[         R                  " U5      S:„  4$ )NrV   gü©ñÒMbP?)r"   r  r
  rº   )ÚthetaÚdeltaÚpi_sin_ls     €r   ÚdÚ@MollweideAxes.MollweideTransform.transform_non_affine.<locals>.db  sJ   ø€ Ø ¤2§6¢6¨%£=Ñ0°8Ñ;Ð<Ø¤§¢ u£Ñ-ñ/�àœbŸfšf U›m¨eÑ3Ð3Ð3r   rW   gƒÀÊ¡E¶?)ÚdtyperD   rs   é   gUUUUUUÕ?r   rV   )r	  r"   rP   rº   ÚemptyÚshapeÚfloatÚanyr  ÚsignrA  r
  )r   r  r_  r  r  ÚclatÚihighÚilowÚauxr\  r]  Úlarge_deltaÚeÚxyr^  s                 @r   r  Ú5MollweideAxes.MollweideTransform.transform_non_affine`  s   ø€ õ4ð
 #)§(¡(ÑˆIä—5‘5˜‘7œRŸVšV HÓ-Ñ-ˆDØ˜5‘LˆEØ�6ˆDÜ—(’(˜8Ÿ>™>´Ñ7ˆCà�x‰x�z‰zÜŸ5™5¤2§6¢6¨(©.Ó#9Ñ9�Ø˜h™nÑ,�Ù%& u£XÑ"�Ü—f’f˜[×)Ñ)ØÓ&¨%Ñ*<Ñ<Ó&Ù)*¨5«Ñ&�Eô —f’f˜[×)Ó)ð " A™I�‘	à�y‰y�{‰{Ø‘K�Ø˜1œrŸu™u™9 q¨!¡tÑ+°Ñ7Ñ7�Ü Ÿe™e A™g¨™k¬R¯WªW°X±_Ó-EÑE�‘
ä—’˜&Ÿ,™,¬eÑ4ˆBØœbŸgšg c›lÑ*¬R¯U©UÑ2°iÑ?Ä"Ç&Â&ÈÃ+ÑMˆBŠq�!ˆt‰HÜ—w’w˜s“|¤b§f¢f¨S£kÑ1ˆBŠq�!ˆt‰HàˆIr   c                 ó@   • [         R                  U R                  5      $ r   )rV  ÚInvertedMollweideTransformrï   r=   s    r   r  Ú)MollweideAxes.MollweideTransform.inverted‚  s   € ä ×;Ñ;¸D×<LÑ<LÓMÐMr   r0   Nr  r0   r   r   ÚMollweideTransformrY  ]  s   † Ù+ò 	õD	Nr   rs  c                   ó    • \ rS rSrS rS rSrg)Ú(MollweideAxes.InvertedMollweideTransformi†  c                 ó¶  • UR                   u  p#[        R                  " U[        R                  " S5      -  5      n[        R                  S[        R                  " S5      -  -  U-  [        R
                  " U5      -  n[        R                  " SU-  [        R                  " SU-  5      -   [        R                  -  5      n[        R                  " XV/5      $ )NrW   )r	  r"   rL  rA  rP   r
  r  r  )r   r  r$   rÙ   r\  r  r  s          r   r  Ú=MollweideAxes.InvertedMollweideTransform.transform_non_affineˆ  s”   € à—8‘8‰DˆAô —I’I˜a¤"§'¢'¨!£*™nÓ-ˆEÜŸ™ !¤b§g¢g¨a£j¡.Ñ1°QÑ6¼¿ºÀ»ÑFˆIÜ—y’y ! e¡)¬b¯fªf°Q¸±YÓ.?Ñ"?Ä2Ç5Á5Ñ!HÓIˆHÜ—?’? IÐ#8Ó9Ð9r   c                 ó@   • [         R                  U R                  5      $ r   )rV  rs  rï   r=   s    r   r  Ú1MollweideAxes.InvertedMollweideTransform.inverted’  s   € ä ×3Ñ3°D×4DÑ4DÓEÐEr   r0   Nr(  r0   r   r   rq  ru  †  s   † ò	:õ	Fr   rq  c                 ó˜   >• [         R                  S-  U l        [        TU ]  " U0 UD6  U R                  SSSS9  U R                  5         g r*  r0  r2  s      €r   r   ÚMollweideAxes.__init__–  r4  r   c                 ó$   • U R                  U5      $ r   )rs  r6  s     r   r[   Ú!MollweideAxes._get_core_transformœ  s   € Ø×&Ñ& zÓ2Ð2r   r9  )r*   r+   r,   r-   r:  rì   rs  rq  r   r[   r/   ré   rê   s   @r   rV  rV  Z  s4   ø† Ø€Dô'N˜]ô 'NôRF ]ô Fõ ÷3ð 3r   rV  c                   óz   ^ • \ rS rSrSr " S S\5      r " S S\5      rSSS.U 4S	 jjrU 4S
 jr	S r
S rSrU =r$ )ÚLambertAxesi   Úlambertc                   ó*   • \ rS rSrSrS rS rS rSrg)ÚLambertAxes.LambertTransformi£  zThe base Lambert transform.c                 óF   • [         R                  X5        Xl        X l        g)z¤
Create a new Lambert transform.  Resolution is the number of steps
to interpolate between each input line segment to approximate its
path in curved Lambert space.
N©rì   r   Ú_center_longitudeÚ_center_latitude©r   Úcenter_longitudeÚcenter_latituderð   s       r   r   Ú%LambertAxes.LambertTransform.__init__¦  s   € ô ×"Ñ" 4Ô4Ø%5Ô"Ø$3Õ!r   c                 ó~  • UR                   u  p#U R                  nU R                  n[        R                  " U5      n[        R
                  " U5      nX$-
  n[        R                  " U5      n	[        R                  " S[        R
                  " U5      U-  -   [        R                  " U5      U-  U	-  -   S5      n
[        R                  " SU
-  5      nX¶-  [        R
                  " U5      -  nU[        R                  " U5      U-  [        R
                  " U5      U-  U	-  -
  -  n[        R                  " XÍ/5      $ )NrV   gVçž¯Ò<rW   )	r	  r…  r†  r"   r
  r  ÚmaximumrA  r  )r   r  r  r  Úclongrh  Úcos_latÚsin_latÚ	diff_longÚcos_diff_longÚinner_kÚkr$   rÙ   s                 r   r  Ú1LambertAxes.LambertTransform.transform_non_affine°  sû   € à"(§(¡(ÑˆIØ×*Ñ*ˆEØ×(Ñ(ˆDÜ—f’f˜XÓ&ˆGÜ—f’f˜XÓ&ˆGØ!Ñ)ˆIÜŸFšF 9Ó-ˆMä—j’jØ”B—F’F˜4“L Ñ(Ñ(¬2¯6ª6°$«<¸Ñ+?ÀÑ+MÑMØóˆGô —’˜˜G™Ó$ˆAØ‘œBŸFšF 9Ó-Ñ-ˆAØ”R—V’V˜D“\ 'Ñ)¬B¯FªF°4«L¸Ñ,@ÀÑ,NÑNÑOˆAä—?’? A 6Ó*Ð*r   c                 ól   • [         R                  U R                  U R                  U R                  5      $ r   )r  ÚInvertedLambertTransformr…  r†  rï   r=   s    r   r  Ú%LambertAxes.LambertTransform.invertedÃ  s0   € ä×7Ñ7Ø×&Ñ&Ø×%Ñ%Ø× Ñ ó"ð "r   ©r†  r…  N)	r*   r+   r,   r-   r.   r   r  r  r/   r0   r   r   ÚLambertTransformr‚  £  s   † Ù)ò	4ò	+õ&	"r   r™  c                   ó&   • \ rS rSrS rS rS rSrg)Ú$LambertAxes.InvertedLambertTransformiÊ  c                 óF   • [         R                  X5        Xl        X l        g r   r„  r‡  s       r   r   Ú-LambertAxes.InvertedLambertTransform.__init__Ì  s   € Ü×"Ñ" 4Ô4Ø%5Ô"Ø$3Õ!r   c           	      ó¤  • UR                   u  p#U R                  nU R                  n[        R                  " [        R
                  " X#5      S5      nS[        R                  " SU-  5      -  n[        R                  " U5      n[        R                  " U5      n	[        R                  " U	[        R                  " U5      -  X8-  [        R                  " U5      -  U-  -   5      n
U[        R                  " X(-  U[        R                  " U5      -  U	-  U[        R                  " U5      -  U-  -
  -  5      -   n[        R                  " Xº/5      $ )Ng•Ö&è.>rW   rs   )r	  r…  r†  r"   rŒ  ÚhypotrL  r  r
  rK  r  )r   r  r$   rÙ   r�  rh  ÚpÚcÚsin_cÚcos_cr  r  s               r   r  Ú9LambertAxes.InvertedLambertTransform.transform_non_affineÑ  s  € à—8‘8‰DˆAØ×*Ñ*ˆEØ×(Ñ(ˆDÜ—
’
œ2Ÿ8š8 A›>¨4Ó0ˆAØ”B—I’I˜c A™gÓ&Ñ&ˆAÜ—F’F˜1“IˆEÜ—F’F˜1“IˆEä—y’y ¤r§v¢v¨d£|Ñ!3Ø#$¡7¬2¯6ª6°$«<Ñ#7¸1Ñ"<ñ">ó ?ˆHà¤§	¢	Ø‘˜QœrŸvšv d›|™^¨EÑ1°A´b·f²f¸T³l±NÀ5Ñ4HÑHÑIó!Kñ KˆIô —?’? IÐ#8Ó9Ð9r   c                 ól   • [         R                  U R                  U R                  U R                  5      $ r   )r  r™  r…  r†  rï   r=   s    r   r  Ú-LambertAxes.InvertedLambertTransform.invertedâ  s0   € ä×/Ñ/Ø×&Ñ&Ø×%Ñ%Ø× Ñ ó"ð "r   r˜  N)r*   r+   r,   r-   r   r  r  r/   r0   r   r   r–  r›  Ê  s   † ò	4ò
	:õ"	"r   r–  r   )rˆ  r‰  c                ó°   >• [         R                  S-  U l        Xl        X l        [
        TU ]  " U0 UD6  U R                  SSSS9  U R                  5         g )NrW   Úequalr+  r,  r-  )	r"   rP   rd   r…  r†  rE   r   r1  r4   )r   rˆ  r‰  r§   r¨   rS   s        €r   r   ÚLambertAxes.__init__é  sL   ø€ Ü Ÿe™e a™iˆÔØ!1ÔØ /ÔÜ‰Ò˜$Ð) &Ò)Ø�‰˜¨E¸#ˆÑ>Ø�
‰
�r   c                 óh   >• [         TU ]  5         U R                  R                  [	        5       5        g r   )rE   r4   r:   rÆ   r   rR   s    €r   r4   ÚLambertAxes.clearñ  s    ø€ ä‰‰ŒØ�
‰
×&Ñ&¤}£Õ7r   c                 óP   • U R                  U R                  U R                  U5      $ r   )r™  r…  r†  r6  s     r   r[   ÚLambertAxes._get_core_transformö  s*   € Ø×$Ñ$Ø×"Ñ"Ø×!Ñ!Øóð 	r   c                 óT   • [        5       R                  S5      R                  SS5      $ )Ng      Ð?rs   )r   rc   re   r=   s    r   r^   Ú!LambertAxes._get_affine_transformü  s!   € Ü‹zß‰U�4‹[ß‰Y�s˜CÓ ð	!r   )r†  r…  rd   )r*   r+   r,   r-   r:  rì   r™  r–  r   r4   r[   r^   r/   ré   rê   s   @r   r  r     sF   ø† Ø€Dô%"˜=ô %"ôN" =ô "ð> 01À!÷ ð õ8ò
÷!ð !r   r  ) Únumpyr"   Ú
matplotlibrM   r   Úmatplotlib.axesr   Úmatplotlib.axisÚaxisr6   Úmatplotlib.patchesr   Úmatplotlib.pathr   Úmatplotlib.spinesr;   rž   Úmatplotlib.tickerr   r	   r
   r   Úmatplotlib.transformsr   r   r   r   rì   r  r<  rV  r  r0   r   r   Ú<module>rº     s�   ðÛ ã Ý Ý  Ý Ý %Ý  Ý #÷9ó 9ç FÑ FôVˆdô VôrA�Iô Aô.+0�ô +0ô\*0�ô *0ôZC3�Gô C3ôL_!�'õ _!r   