o
    |Ne{                     @   s   d dl Z d dlmZmZ d dlmZmZ d dlmZ	 d dl
Zd dlmZ d dlmZ d dlmZ dddZdddZdddZdd Zdd Zg fddZdS )    N)readfile	writefile)LinearSegmentedColormapLightSource)datetime)Path)get_dem_extentplasma_r333333?      ?Fc           
      C   s   t j| }| tt|j| }tt|j| }|j||  }tjd|dd}|du rKg dg dg dg dg}	t j|	|d	 t 	  t 
  |S )
zE modify a colormap by excluding percentages at the beginning and end cmap_custom   )NT)r            )r   r      r   )r   r   r      )r   r   r      )cmap)pltcmget_cmapintlencolorsr   	from_listimshowcolorbarshow)
	cmap_nameexclude_beginningexclude_endr   r   Znum_colors_to_exclude_beginningZnum_colors_to_exclude_endr   r   data r$   I/home/exouser/operations/rsmas_insar/tools/PlotData/src/plot_functions.pymodify_colormap   s   r&    c                    s   t |dt |d tjj|tjdddd}g |_tj|| dd}t	ddd} fd	d
|D }|
| |dd
 |D  |d d S )Nz%Y%m%dr   r   )vminvmax)r   norm      ?)axshrinkr   c                    s   g | ]
}  |  qS r$   r$   ).0tZend_time_dateZstart_time_dater$   r%   
<listcomp>-   s    z add_colorbar.<locals>.<listcomp>c                 S   s   g | ]}| d qS )z%Y-%m-%d)strftime)r.   labelr$   r$   r%   r1   /   s    ZTime)r   strptimer   r   ScalarMappable	Normalize_Ar   nplinspace	set_ticksset_ticklabels	set_label)r,   r   
start_dateend_datesmcbartickstick_labelsr$   r0   r%   add_colorbar!   s   
rC   皙?c                 C   sX   t | d | | }t | d | | }t || d |}t || d |}||fS )Nr   r   r   r   )r8   ceilarange)extent	step_size	lat_start	lon_startlatslonsr$   r$   r%   	get_ticks2   s
   rM   c                 C   s<   | d | d  d }|dkrd}|S |dkrd}|S d}|S )	Nr   r   r   r
   g?gffffff?rD   r+   r$   )plot_extentrH   Zrounded_step_sizer$   r$   r%   get_step_size:   s   rO   c                 C   sL   t | \}}t|}tddd}|j|dtjjdt	|d d}||fS )Ni;  -   )azdegaltdegg      ?ii	  )	vert_exagr   r(   r)   )
r   readr   r   shader   r   grayr8   nanmax)dem_filedematr_dem
dem_extentls	dem_shader$   r$   r%   get_basemapF   s
   "r^   c                    s   t jd }t jd }d ||kr fdd|D }|t jd< t|\}}| j|dt jj|d t|dkr8|}n|d |d	 |d |d
 g}t|}	t	||	d\}
}t
|
 t
| | |
 | | | jdd | jdd | S )Nzfigure.figsizeg      ?c                    s   g | ]}|  qS r$   r$   )r.   sizeZincrease_factorr$   r%   r1   S   s    z&plot_shaded_relief.<locals>.<listcomp>upper)originr   rG   r   r   r   r   )rH   r+   g)r   rcParamsDefaultrcParamsr^   r   r   rV   r   rO   rM   print
set_xticks
set_yticksxaxisset_label_coordsyaxis)r,   rX   plot_boxZfactory_default_figsizeZcurrent_default_figsizeZnew_default_figsizer]   r[   rN   rH   rL   rK   r$   r`   r%   plot_shaded_reliefM   s(   




rl   )r	   r
   r   F)r'   r'   )rD   )osmintpy.utilsr   r   matplotlib.colorsr   r   matplotlib.pyplotpyplotr   numpyr8   r   pathlibr   helper_functionsr   r&   rC   rM   rO   r^   rl   r$   r$   r$   r%   <module>   s   


