Ë
    íÍ:j3  ã                   ó2  — d dl Zd dlZd dlmZ d dlmZ d„ Zd„ Zd„ Z		 	 dd„Z
dd„Zdd	„Z G d
„ d«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ d«      Z G d„ de«      Z G d„ de«      Zy) é    N)ÚBbox)ÚExtremeFinderSimplec                 óT  — g d¢}g d¢}dgt        |«      z  }g d¢}g d¢}t        j                  |«      dz  }dgt        |«      z  }t        j                  |«      dz  }d	gt        |«      z  }	g |¢|¢|¢}
g |¢|¢|¢}g |	¢|¢|¢}t        j                  |
| «      }||   }||   }||fS )
N)
ç      ø?é   é   é   é   é(   éF   éx   i  i  )
é   é   é   é
   é   é   é-   éZ   é´   ih  ç      ð?)r   ç      @ç      @é   é   é   é   r   )r   r   r   r   r   r   r
   r   é<   ç      N@é  ç      ¬@©ÚlenÚnpÚarrayÚsearchsorted)ÚdvÚdegree_limits_Údegree_steps_Údegree_factorsÚminsec_limits_Úminsec_steps_Úminute_limits_Úminute_factorsÚsecond_limits_Úsecond_factorsÚdegree_limitsÚdegree_stepsÚnÚstepÚfactors                  úy/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/mpl_toolkits/axisartist/angle_helper.pyÚselect_step_degreer7      sØ   € â?€NÚ?€MØ�TœC Ó.Ñ.€Nâ7€NÚ7€Mä—X‘X˜nÓ-°Ñ2€NØ�UœS Ó0Ñ0€Nä—X‘X˜nÓ-°Ñ4€NØ�Wœs >Ó2Ñ2€NàG�nÐG ~ÐG¸ÐG€MØC�]ÐC ]ÐC°]ÐC€LØH�~ÐH¨ÐH¸ÐH€Nä
�‰˜ rÓ*€AØ˜‰?€DØ˜AÑ€Fà�ˆ<Ðó    c                 óT  — g d¢}g d¢}dgt        |«      z  }g d¢}g d¢}t        j                  |«      dz  }dgt        |«      z  }t        j                  |«      dz  }d	gt        |«      z  }	g |¢|¢|¢}
g |¢|¢|¢}g |	¢|¢|¢}t        j                  |
| «      }||   }||   }||fS )
N)	r   r   r   r   r   r   r   é   é$   )	r   r   r   é   é   r   é   r   é   r   )r   r   r   g      @g      @r   r   é   r   r   r   )r   r   r   r<   r   r=   r   r>   r   r
   r   r   r   r    r!   r"   )r'   Úhour_limits_Úhour_steps_Úhour_factorsr+   r,   r-   r.   r/   r0   Úhour_limitsÚ
hour_stepsr3   r4   r5   s                  r6   Úselect_step_hourrF   "   s×   € â8€LÚ8€KØ�4œ#˜kÓ*Ñ*€LâE€NÚE€Mä—X‘X˜nÓ-°Ñ2€NØ�UœS Ó0Ñ0€Nä—X‘X˜nÓ-°Ñ4€NØ�Wœs >Ó2Ñ2€NàC�NÐC ^ÐC°lÐC€KØ?�=Ð? =Ð?°;Ð?€JØD�^ÐD nÐD°|ÐD€Lä
�‰˜ RÓ(€AØ�a‰=€DØ˜!‰_€Fà�ˆ<Ðr8   c                 ó¾   — dt        t        j                  | «      «      dz
  z  }d|z  }d|z  | k\  rd}||fS d|z  | k\  rd}||fS d|z  | k\  rd}||fS d}d	|z  }||fS )
Ng      $@r   r   r   g      @r   g      @r   gš™™™™™¹?)ÚintÚmathÚlog10)r'   Útmpr5   r4   s       r6   Úselect_step_subrL   <   s›   € ð ””D—J‘J˜r“NÓ# BÑ&Ñ
'€Cà�‰V€Fà
ˆ3�w�"‚}Øˆð �ˆ<Ðð 
ˆC‰�2ŠØˆð �ˆ<Ðð 
ˆC‰�2ŠØˆð
 �ˆ<Ðð ˆØ�V‘ˆà�ˆ<Ðr8   c                 óp  — | |kD  r|| }} || z
  |z  }|r	t         }d}nt        }d}|d|z  kD  r ||«      \  }	}
nt        ||z  «      \  }	}
|
|z  }
t        j                  t        j
                  | |
z  |	z  «      t        j                  ||
z  |	z  «      dz   t        ¬«      |	z  }t        |«      }|
dk(  rm|d   |d   |z   k\  r_t        ||	z  «      }|r$|d   t        j                  d|dz   d«      |	z  z   }n |d   t        j                  d|d«      |	z  z   }t        |«      }t        j                  |«      ||
fS )	Ng      8@ç     €v@r   g      à?)Údtyper   éÿÿÿÿr   )
rF   r7   rL   r$   ÚarangeÚfloorÚceilrH   r#   r%   )Úv1Úv2ÚnvÚhourÚinclude_lastÚthreshold_factorr'   Ú_select_stepÚcycler4   r5   Úlevsr3   s                r6   Úselect_stepr]   P   sV  € ð 
ˆB‚wØ�RˆBˆà
ˆr‰'�R‰€BáÜ'ˆØ‰ä)ˆØˆð 
ˆAÐ Ñ Ò Ù# BÓ'‰ˆ‰fä& rÐ*:Ñ':Ó;‰ˆˆfàÐ*Ñ*ˆä�9‰9”R—X‘X˜b 6™k¨DÑ0Ó1Ü—W‘W˜R &™[¨4Ñ/Ó0°3Ñ6Üô à"&ñ'€Dô 	ˆD‹	€Að
 �‚|˜˜R™ D¨¡G¨e¡OÒ3Ü�˜‘ÓˆÙØ˜‘7œRŸY™Y q¨"¨Q©$°Ó2°TÑ9Ñ9‰Dà˜‘7œRŸY™Y q¨"¨aÓ0°4Ñ7Ñ7ˆDä�‹Iˆä�8‰8�D‹>˜1˜fÐ$Ð$r8   c                 óP   — | dz  |dz  }} t        | ||d||¬«      \  }}}|dz  ||fS )Nr   T©rW   rX   rY   ©r]   )rT   rU   rV   rX   rY   r\   r3   r5   s           r6   Úselect_step24ra   �   sE   € Ø�"‰W�b˜2‘gˆ€BÜ! " b¨"°4Ø/;Ø3CôE�O€Dˆ!ˆVð �"‰9�a˜ÐÐr8   c                 ó$   — t        | ||d||¬«      S )NFr_   r`   )rT   rU   rV   rX   rY   s        r6   Úselect_step360rc   ‰   s   € Ü�r˜2˜r¨Ø$0Ø(8ô:ð :r8   c                   ó   — e Zd Zdd„Zdd„Zy)ÚLocatorBasec                 ó    — || _         || _        y ©N)ÚnbinsÚ_include_last)Úselfrh   rX   s      r6   Ú__init__zLocatorBase.__init__�   s   € ØˆŒ
Ø)ˆÕr8   Nc                 ó*   — |�t        |«      | _        y y rg   )rH   rh   )rj   rh   s     r6   Ú
set_paramszLocatorBase.set_params”   s   € ØÐÜ˜U›ˆD�Jð r8   )Trg   )Ú__name__Ú
__module__Ú__qualname__rk   rm   © r8   r6   re   re   �   s   „ ó*ô$r8   re   c                   ó   — e Zd Zd„ Zy)Ú
LocatorHMSc                 óF   — t        ||| j                  | j                  «      S rg   ©ra   rh   ri   ©rj   rT   rU   s      r6   Ú__call__zLocatorHMS.__call__š   s   € Ü˜R  T§Z¡Z°×1CÑ1CÓDÐDr8   N©rn   ro   rp   rw   rq   r8   r6   rs   rs   ™   s   „ óEr8   rs   c                   ó   — e Zd Zd„ Zy)Ú	LocatorHMc                 óJ   — t        ||| j                  | j                  d¬«      S ©Nr   ©rY   ru   rv   s      r6   rw   zLocatorHM.__call__Ÿ   s$   € Ü˜R  T§Z¡Z°×1CÑ1CØ.0ô2ð 	2r8   Nrx   rq   r8   r6   rz   rz   ž   ó   „ ó2r8   rz   c                   ó   — e Zd Zd„ Zy)ÚLocatorHc                 óJ   — t        ||| j                  | j                  d¬«      S ©Nr   r}   ru   rv   s      r6   rw   zLocatorH.__call__¥   s$   € Ü˜R  T§Z¡Z°×1CÑ1CØ./ô1ð 	1r8   Nrx   rq   r8   r6   r€   r€   ¤   s   „ ó1r8   r€   c                   ó   — e Zd Zd„ Zy)Ú
LocatorDMSc                 óF   — t        ||| j                  | j                  «      S rg   ©rc   rh   ri   rv   s      r6   rw   zLocatorDMS.__call__«   s   € Ü˜b " d§j¡j°$×2DÑ2DÓEÐEr8   Nrx   rq   r8   r6   r„   r„   ª   s   „ óFr8   r„   c                   ó   — e Zd Zd„ Zy)Ú	LocatorDMc                 óJ   — t        ||| j                  | j                  d¬«      S r|   r†   rv   s      r6   rw   zLocatorDM.__call__°   s$   € Ü˜b " d§j¡j°$×2DÑ2DØ/1ô3ð 	3r8   Nrx   rq   r8   r6   rˆ   rˆ   ¯   s   „ ó3r8   rˆ   c                   ó   — e Zd Zd„ Zy)ÚLocatorDc                 óJ   — t        ||| j                  | j                  d¬«      S r‚   r†   rv   s      r6   rw   zLocatorD.__call__¶   s$   € Ü˜b " d§j¡j°$×2DÑ2DØ/0ô2ð 	2r8   Nrx   rq   r8   r6   r‹   r‹   µ   r~   r8   r‹   c                   ó¸   — e Zd ZdZdZdZdez   dz   Zdez   dz   Zdez   dz   ez   dz   Zdez   d	z   ez   dz   Z	dez   dz   ez   d
z   Z
dez   dz   Zdez   dz   Zd„ Zd„ Zy)ÚFormatterDMSz^{\circ}z	^{\prime}z^{\prime\prime}ú$%dú$ú$%d.%sú$%s%dú\,%02dú	\,%02d.%sú\,ú%02dú%02d.%sc                 óØ   — d }dD ]`  }||k  r ||fS ||z  }t        t        j                  t        j                  |«      «      «      }d|z  |k(  sŒL|dk7  sŒR|}|d|z  z  }||fc S  ||fS )N)r   r   r    r   r   )rH   r$   rR   rJ   )rj   r5   Únumber_fractionÚ	thresholdÚdÚ	int_log_ds         r6   Ú_get_number_fractionz!FormatterDMS._get_number_fractionË   s”   € àˆð 'ò 		/ˆIØ˜Ò"Øð �Ð&Ð&ð ˜)Ñ#ˆAÜœBŸH™H¤R§X¡X¨a£[Ó1Ó2ˆIØ�9‰} Ó! a¨1£fØ"+�Ø 2 y¡=Ñ0�Ø˜Ð.Ò.ð		/ð �Ð&Ð&r8   c                 ó”  — t        |«      dk(  rg S t        j                  |«      }|D �cg c]  }|dk  rdnd‘Œ }}| j                  |«      \  }}t        j                  |«      }|�+t        |d|z  «      \  }}d|fz  }	|D �
cg c]  }
|	|
fz  ‘Œ
 }}
|dk(  ry|€9t        ||«      D ��cg c]!  \  }}| j                  |t        |«      z  fz  ‘Œ# c}}S t        ||«      D ���
cg c]#  \  }}}
| j                  |t        |«      z  |
fz  ‘Œ% c}
}}S |dk(  r|t        |d«      \  }}|€3t        |||«      D ���cg c]  \  }}}| j                  |||fz  ‘Œ c}}}S t        |||«      D ����
cg c]  \  }}}}
| j                  ||||
fz  ‘Œ c}
}}}S |dk(  rè|d	   d	k(  rd
}|d d d	…   }|d d d	…   }nd}d}g }t        |d«      \  }}t        |d«      \  }}|€|D �cg c]  }| j                  |fz  ‘Œ }}n-t        |«      D ��
cg c]  \  }}
| j                  ||
fz  ‘Œ }}}
t        ||||«      D ]?  \  }}}}| j                  |||fz  }||k7  r|}||z   }nd|z   |z   }|j                  |«       ŒA |r|d d d	…   S |S ||z  D �cg c]  }d|z  ‘Œ	 c}S c c}w c c}
w c c}}w c c}
}}w c c}}}w c c}
}}}w c c}w c c}
}w c c}w )Nr   ú-Ú r   z%%0%ddr   r   r    rP   TFr�   z$%s^{\circ}$)r#   r$   Úsignr�   ÚabsÚdivmodÚzipÚfmt_drH   Úfmt_dsÚfmt_d_mÚfmt_d_msÚfmt_s_partialÚfmt_ss_partialÚfmt_d_m_partialÚappend)rj   Ú	directionr5   ÚvaluesÚssÚvÚsignsr™   Ú	frac_partÚfrac_fmtÚf1Úfrac_strÚsÚdeg_partÚmin_partÚs1Úd1Úm1Úinverse_orderÚl_hm_oldÚrÚ	min_part_Úsec_partÚsec_strÚl_hmÚls                             r6   rw   zFormatterDMS.__call__Ý   sh  € Üˆv‹;˜!ÒØˆIä�W‰W�V‹_ˆØ/5Ö6¨!˜˜Aš‘ 2Ñ%Ð6ˆÐ6à"&×";Ñ";¸FÓ"CÑˆ�ä—‘˜“ˆàÐ&Ü & v¨r°_Ñ/DÓ EÑˆF�IØ ?Ð"4Ñ4ˆHØ3<Ö=¨R˜ B 5Ó(Ð=ˆHÐ=à�QŠ;ØÐ&Ü?BÀ2Àv»×O±t°q¸!˜Ÿ
™
 a¬#¨a«&¡j ]Ó2ÓOÐOô ),¨B°¸Ó(A÷Cð CÙ$˜A˜q "ð Ÿ™ q¬3¨q«6¡z°2Ð&6Ó6ô Cð Cà�rŠ\Ü!'¨°Ó!3ÑˆH�hØÐ&ä*-¨e°X¸xÓ*H÷Jð JÙ&˜B  Bð Ÿ™¨¨B° |Ó3ô Jð Jô
 ˜u h°¸(ÓC÷Eñ EÙ)˜A˜r 2 rð Ÿ™¨¨B°°B¨Ó7õ Eð Eð �tŠ^Ø�"‰v˜Š|Ø $�Ø¡ " ™�Ø™d ˜d™‘à %�àˆHØˆAä"(¨°Ó"6ÑˆH�iÜ!'¨	°2Ó!6ÑˆH�hàÐ&Ø@HÖI¸"˜4×-Ñ-°°Ó5ÐI�ÑIô *-¨X°xÓ)@÷BÙ%˜r 2ð  ×.Ñ.°"°b°Ó9ð B�ñ Bô "% U¨H°hÀÓ!Hò ‘��2�r˜2Ø×+Ñ+¨q°"°b¨kÑ9�Ø˜8Ò#Ø#�HØ˜r™	‘Aà˜a™ "™�AØ—‘˜•ðñ Ø™˜2˜‘w�à�ð 24°F±Ö;¨A�O aÓ'Ò;Ð;ùò} 7ùò >ùó PùôCùô
JùõEùò& JùóBùò$ <s5   ªJÂJÂ(&JÃ#(J$Ä7J+Å,J2
ÇJ:ÈJ?ÊKN)rn   ro   rp   Údeg_markÚmin_markÚsec_markr¥   r¦   r§   r¨   r«   r©   rª   r�   rw   rq   r8   r6   rŽ   rŽ   »   s¥   „ Ø€HØ€HØ!€Hà�HÑ˜sÑ"€EØ˜Ñ! CÑ'€Fð ˜Ñ! IÑ-°Ñ8¸3Ñ>€GØ˜(Ñ" \Ñ1°HÑ<¸sÑB€Hà Ñ(¨9Ñ4°xÑ?À%ÑG€OØ˜XÑ%¨Ñ+€MØ Ñ)¨CÑ/€Nò'ó$C<r8   rŽ   c                   ó¾   ‡ — e Zd ZdZdZdZdez   dz   Zdez   dz   Zdez   dz   ez   dz   Zdez   d	z   ez   dz   Z	dez   dz   ez   d
z   Z
dez   dz   Zdez   dz   Zˆ fd„Zˆ xZS )ÚFormatterHMSz^\mathrm{h}z^\mathrm{m}z^\mathrm{s}r�   r�   r‘   r’   r“   r”   r•   r–   r—   c                 óR   •— t         ‰| �  ||t        j                  |«      dz  «      S )Nr   )Úsuperrw   r$   Úasarray)rj   r­   r5   r®   Ú	__class__s       €r6   rw   zFormatterHMS.__call__3  s%   ø€ Ü‰wÑ 	¨6´2·:±:¸fÓ3EÈÑ3JÓKÐKr8   )rn   ro   rp   rÄ   rÅ   rÆ   r¥   r¦   r§   r¨   r«   r©   rª   rw   Ú__classcell__)rÌ   s   @r6   rÈ   rÈ   #  s§   ø„ Ø€HØ€HØ€Hà�HÑ˜sÑ"€EØ˜Ñ! CÑ'€Fð ˜Ñ! IÑ-°Ñ8¸Ñ<€GØ˜(Ñ" \Ñ1°HÑ<¸SÑ@€Hà Ñ(¨9Ñ4°xÑ?À%ÑG€OØ˜XÑ%¨Ñ+€MØ Ñ)¨CÑ/€N÷Lð Lr8   rÈ   c                   ó   — e Zd Z	 	 dd„Zd„ Zy)ÚExtremeFinderCycleNc                 ó\   — ||c| _         | _        ||c| _        | _        || _        || _        y)aB  
        This subclass handles the case where one or both coordinates should be
        taken modulo 360, or be restricted to not exceed a specific range.

        Parameters
        ----------
        nx, ny : int
            The number of samples in each direction.

        lon_cycle, lat_cycle : 360 or None
            If not None, values in the corresponding direction are taken modulo
            *lon_cycle* or *lat_cycle*; in theory this can be any number but
            the implementation actually assumes that it is 360 (if not None);
            other values give nonsensical results.

            This is done by "unwrapping" the transformed grid coordinates so
            that jumps are less than a half-cycle; then normalizing the span to
            no more than a full cycle.

            For example, if values are in the union of the [0, 2] and
            [358, 360] intervals (typically, angles measured modulo 360), the
            values in the second interval are normalized to [-2, 0] instead so
            that the values now cover [-2, 2].  If values are in a range of
            [5, 1000], this gets normalized to [5, 365].

        lon_minmax, lat_minmax : (float, float) or None
            If not None, the computed bounding box is clipped to the given
            range in the corresponding direction.
        N)ÚnxÚnyÚ	lon_cycleÚ	lat_cycleÚ
lon_minmaxÚ
lat_minmax)rj   rÑ   rÒ   rÓ   rÔ   rÕ   rÖ   s          r6   rk   zExtremeFinderCycle.__init__:  s3   € ð@ ˜rÐˆŒ�”Ø)2°IÐ&ˆŒ˜œØ$ˆŒØ$ˆ�r8   c           
      óL  — t        j                  t        j                  t        j                  |j                  |j
                  | j                  «      t        j                  |j                  |j                  | j                  «      «      d«      j                  }|j                  |«      j                  \  }}t        j                  d¬«      5  | j                  �#t        j                  |«      }|d||z
  dkD  z  z  }| j                  �#t        j                  |«      }|d||z
  dkD  z  z  }d d d «       t!        j"                  «       }|j%                  t        j&                  ||g«      «       |j)                  dd| j                  z  z   dd| j                  z  z   «      }|j*                  \  }	}
}}| j                  rt-        ||	| j                  z   «      }| j                  rt-        ||
| j                  z   «      }| j.                  �6| j.                  d   }t1        ||	«      }	| j.                  d   }t-        ||«      }| j2                  �6| j2                  d   }t1        ||
«      }
| j2                  d   }t-        ||«      }t!        j4                  |	|
||«      S # 1 sw Y   �ŒmxY w)	N)r   rP   Úignore)ÚinvalidrN   g     €f@r   r   r   )r$   ÚreshapeÚmeshgridÚlinspaceÚx0Úx1rÑ   Úy0Úy1rÒ   ÚTÚ	transformÚerrstaterÓ   ÚnanminrÔ   r   ÚnullÚupdate_from_data_xyÚcolumn_stackÚexpandedÚextentsÚminrÕ   ÚmaxrÖ   Úfrom_extents)rj   ÚtransÚbboxÚgridÚlonÚlatÚlon0Úlat0ÚtbboxÚlon_minÚlat_minÚlon_maxÚlat_maxÚmin0Úmax0s                  r6   Ú_find_transformed_bboxz)ExtremeFinderCycle._find_transformed_bbox_  s(  € ä�z‰zœ"Ÿ+™+¤b§k¡k°$·'±'¸4¿7¹7ÀDÇGÁGÓ&LÜ&(§k¡k°$·'±'¸4¿7¹7ÀDÇGÁGÓ&LóNà!ó#ç#$¡1ð 	ð —?‘? 4Ó(×*Ñ*‰ˆˆSô �[‰[ Ô*ñ 	4Ø�~‰~Ð)Ü—y‘y “~�Ø�t  d¡
¨dÑ2Ñ3Ñ3�Ø�~‰~Ð)Ü—y‘y “~�Ø�t  d¡
¨dÑ2Ñ3Ñ3�÷	4ô —	‘	“ˆØ×!Ñ!¤"§/¡/°3¸°*Ó"=Ô>Ø—‘˜q 1 t§w¡w¡;™°°A¸¿¹±K±Ó@ˆØ-2¯]©]Ñ*ˆ�˜' 7ð �>Š>Ü˜' 7¨T¯^©^Ñ#;Ó<ˆGØ�>Š>Ü˜' 7¨T¯^©^Ñ#;Ó<ˆGà�?‰?Ð&Ø—?‘? 1Ñ%ˆDÜ˜$ Ó(ˆGØ—?‘? 1Ñ%ˆDÜ˜$ Ó(ˆGà�?‰?Ð&Ø—?‘? 1Ñ%ˆDÜ˜$ Ó(ˆGØ—?‘? 1Ñ%ˆDÜ˜$ Ó(ˆGä× Ñ  ¨'°7¸GÓDÐD÷?	4ñ 	4ús   ÃAJÊJ#)rN   NN)i¦ÿÿÿr   )rn   ro   rp   rk   rû   rq   r8   r6   rÏ   rÏ   7  s   „ ð ,0Ø-6ó#%óJ,Er8   rÏ   )FTr!   )Tr    )Únumpyr$   rI   Úmatplotlib.transformsr   Ú#mpl_toolkits.axisartist.grid_finderr   r7   rF   rL   r]   ra   rc   re   rs   rz   r€   r„   rˆ   r‹   rŽ   rÈ   rÏ   rq   r8   r6   ú<module>rÿ      sº   ðÛ Û å &Ý Còò4ò4ð( 6:Ø!&ó.%ób ó:÷$ñ $ôE�ô Eô
2�ô 2ô1ˆ{ô 1ôF�ô Fô
3�ô 3ô2ˆ{ô 2÷e<ñ e<ôPL�<ô Lô(TEÐ,õ TEr8   