a
    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   ú9/pesq/dados/monan/users/madeleine.gacita/curso_wmo/aux.pyÚlon_to_minus180_180   s    
r
   c                 C   s@   t  | ¡} t  |¡}| jdkr4|jdkr4t  | |¡S | |fS d 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   
