o
    ޖ+f                      @   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d Z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$   R/home/exouser/operations/rsmas_insar/tools/PlotData/src/plotdata/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   c              
   C   st   | d }| d }| d }d ||||}|jr4|d|jd  d|jd  d	|jd
  d|jd  d	7 }|d7 }|S )Nz/mintpy/geo/geo_ifgramStack.h5z /mintpy/geo/geo_geometryRadar.h5z/mintpy/geo/geo_maskTempCoh.h5z&view.py {} unwrapPhase-{} -m {} -d {} z
--sub-lat r    r    --sub-lon r   r   z.--notitle -u cm -c jet_r --nocbar --noverbose )formatrk   )work_dirdate12inpsZifgram_file	geom_file	mask_filecmdr$   r$   r%   generate_view_ifgram_cmdp   s   :rv   c              
   C   s   d | }|jr%|d|jd  d|jd  d|jd  d|jd  d	7 }|d	|j d
|j d7 }|jrE|d|jd  d|jd  7 }|jrP|d|j 7 }|jsW|d7 }|jrb|d|j 7 }|S )Nzview.py {} velocity z --sub-lat r   rm   r   rn   r   r   z--notitle -u z --fontsize z -c jet --noverbosez --vlim z --dem z --noreferencez --scatterplot )ro   rk   unit	font_sizevlimrX   show_reference_pointscatterplot)vel_filerr   ru   r$   r$   r%   generate_view_velocity_cmd}   s   
: r}   )r	   r
   r   F)r'   r'   )rD   )osmintpy.utilsr   r   matplotlib.colorsr   r   matplotlib.pyplotpyplotr   numpyr8   r   pathlibr   plotdata.helper_functionsr   r&   rC   rM   rO   r^   rl   rv   r}   r$   r$   r$   r%   <module>   s    


#