o
    ri  ã                   @   s,   d dl Zd dlZdd„ Zdd„ Zdd„ ZdS )é    Nc                 C   s0   t  | ¡}| ¡ dkrt  |dk|d |¡}|S )u;   Converte longitudes 0..360 para -180..180 (se necessÃ¡rio).é´   ih  )ÚnpÚarrayÚmaxÚwhere)Z	lon_arrayÚlon© r   ú&/home/aluno01/jupyter/caso_yaku/aux.pyÚlon_to_minus180_180   s   
r
   c                 C   s<   t  | ¡} t  |¡}| jdkr|jdkrt  | |¡S | |fS )Né   )r   ÚasarrayÚndimÚmeshgrid)ÚlonsÚlatsr   r   r	   Úensure_2d_lonlat   s
   

r   c                 C   sª   d}t  | ¡t  |¡}}t |¡t |¡}}|| || }	}
t |
d ¡d t |¡t |¡ t |	d ¡d   }dt t |¡t t dd| ¡¡¡ }|| S )Ng     ã¸@g       @é   g        g      ð?)ÚmathÚradiansr   ÚsinÚcosÚarctan2ÚsqrtÚmaximum)Úlon1Úlat1Úlon2Úlat2ZR_earthZlon1rZlat1rZlon2rZlat2rZdlonZdlatÚaÚcr   r   r	   Úhaversine_km    s   8(r    )Únumpyr   r   r
   r   r    r   r   r   r	   Ú<module>   s
   
