
    Iyj\                        d dl Z d dlZd dlZd dlmZ d dlmZ	 d dl
mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlmZ  ej4                  d        e       Zej9                         Zd ZdZ ee      Z e d    rC ee      d   Z! ejD                  d dd      jG                         Z$ejJ                  jM                  d	d e$d    de$d
   d      Z'g dZ(ejJ                  jS                  de(d    e(d      Z*g dZ+ejJ                  jS                  de+d    e+d      Z,ejJ                  j[                  ddd      Z.g dZ/ejJ                  jS                  de/d    e/d      Z0g dZ1ejJ                  jS                  de1d    e1d      Z2ejJ                  jg                  dejh                  ddd      Z5ejJ                  j[                  ddd      Z6ejJ                  j[                  d dd      Z7ejJ                  j[                  d dd      Z8ejJ                  j[                  d dd      Z9ejJ                  j[                  d dd      Z:d!Z;d"Z< ejz                  e*e'e7e5e6      d#        Z> ejz                  e,e.e8e5e6      d$        Z? ejz                  e0e9e5e6      d%        Z@ ejz                  e2e:e5e6      d&        ZAd' ZBd( ZCyd) ZBd* ZCy)+    N)MonitoringAppTextsstretch_widthsizing_modec                    	 t        j                  | dd      }|j                  dk  r't        d|         t	        j
                  |       }d|fS t        d|  d|j                   d       y	# t         j                  $ r Y y	w xY w)
NT   )allow_redirectstimeout  u-   ✅ [B ERROR COVARIANCE] Arquivo acessível: u2   ❌ [B ERROR COVARIANCE] Arquivo não encontrado: z	 (status ))FN)requestsheadstatus_codeprintintakeopen_catalogRequestException)urlresponsecatalog_objs      7/home/carlos/GitHub/SMNAMonitoringApp/monitor_berror.py
url_existsr      s    ==dAF#%A#GH --c2K$$Fse9U]UiUiTjjklm$$ s   AA- A- -BBzphttps://dataserver.cptec.inpe.br/dataserver_dimnt/das/carlos.bastarz/SMNAMonitoringApp/berror/catalog_berror.yml   @   Level   )namevaluestartstependwidth)agvinbgvinwgvinzBalance Projection Matrix)r   r   optionsr#   )	sfvptqqinozpscwsstzStandard DeviationProfileF)r   r   r#   )r(   r)   r*   r+   r-   r/   r.   r0   zHorizontal Length Scale)r(   r)   r*   r+   r-   r/   zVertical Length ScaleColormaprainbow4   )r   r   r   r   )r   r'   
value_namer#   marginzInvert Colors   zVertical Logr   iE  c                    |dk(  r	|d d d   }n|}dt        |       z   }t        |   j                         }| dk(  rB|j                  dt	        dd            j
                  j                  dd	d
t        dd      }|S | dk(  rV|r*|j
                  j                  dddd	|d
t        dd	      }|S |j
                  j                  ddd
d	|d
t        dd	      }|S | dk(  r|rI|j                  |      j
                  j                  dddd	|d
t        ddt        |      z   dz   	      }|S |j                  |      j
                  j                  ddd
d	|d
t        ddt        |      z   dz   	      }S )NTr   	balprojs_r&   r   )levellatituder<   zNo dim.FzLProjection of the Stream Function over the balanced part of Surface Pressure)xclabelshared_axesheight
responsivetitler%   r;   zNProjection of the Stream Function over the balanced part of Velocity Potential)	yr=   logyr>   cmapr?   r@   rA   rB   r$   )level_2z'Projection of Stream Function at level zG over the vertical 
profile of the balanced part of Virtual Temperature)	strcatalog_berrorto_daskiselslicehvplotliner@   image)	balprojr;   vertical_log_bpcolormapinvert_colorsrE   vnamedsetaxs	            r   plotBalProjsrV   K   s   D DbD>DDc'l*e$,,.gU1R[9@@EE
KTPUKQOS KY F ZBh 	] [[&&*4-1/8-149/537.~ ' 	@X 	C [[&&*4-2/8-149/537.~ ' 	@B 	/ YYuY-44::W>HAECLAEHMCIGKBknqrwnxBx  |F  CF ; 	G* 	 YYuY-44::W>HAFCLAEHMCIGKBknqrwnxBx  |F  CF ; 	G 	    c                    | dk(  rd}d}nO| dk(  rd}d}nE| dk(  rd}d}n;| d	k(  rd
}d}n1| dk(  rd
}d}n'| dk(  rd}d}n| dk(  rd}d}n| dk(  rd}d}n	| dk(  rd}d}|dk(  r	|d d d   }n|}|rd}nd}| dk(  rdt        |       z   }	t        |	   j                         dz  }
|r_|
j                  t	        dd            j                  d       j                  j                  |dt        d|dd!t              z   "      }|S |
j                  t	        dd            j                  j                  d#d|dt        |dd!t              z   $	      }|S | dk(  rXdt        |       z   }	t        |	   j                         }
|
j                  j                  d|t        dd!t              z   %      }|S | dk(  rdt        |       z   }	t        |	   j                         }
|
j                  j                  dd&|dt        dddd!t              z   '
      }|t        j                  j                  j                  d(d)*      z  }|S dt        |       z   }	t        |	   j                         }
|rE|
j                  d       j                  j                  |dt        d|dd!t              z   "      }|S |
j                  j                  d#d|dt        |dd!t              z   $	      }|S )+Nr(   Stream Functionzm2/sr)   Velocity Potentialr*   Unbalanced part of TemperatureKr+   Relative Humidity%r,   r-   Ozone r/   Liquid Water Contentr.   Surface PressurePar0   Sea Surface TemperatureTr   Famplitudes_      Y@r      r<   r<   )dimzStandard Deviation of )r>   rE   r?   r@   invertrD   rA   rB   r;   	rC   r=   r>   rE   r?   r@   rD   rA   rB   )r=   r>   rE   r@   rA   rB   	longitude
rC   r=   r>   rE   r?   r@   geo	coastlinerA   rB   kw
fill_color
line_color)rG   rH   rI   rJ   rK   meanrL   rM   r@   rN   
height_sstgvfeaturelandr'   )	stdevvarsshow_profilevertical_log_amrQ   rR   vfnamer>   rE   rD   rS   rT   rU   ax_ssts                r   	plotStDevr      s}   &FF$)FF#5FF#(FF%(FF$FF$+FF$'FF%.FFD DbD>DDDD!C	N2E!%(00236DYYaY499j9IPPUUKQIMPUKQKOIMOSJbehioepJp V 
rV 	 YYaY4;;AAGFPKQIMPUKQIMOSJbehioepJp B 	r~ 	k $!C	N2E!%(002D!!J'-%)'-+/&>V&L " NBd 	W %!C	N2E!%(002D[[&&&1+1)-05+5(,.2/3*BS[*P ' 
RF "**//11SS1QQB8 	5 "C	N2E!%(002DYY:Y.55::/5-149/5/3-137.FV.T ; V. 	 [[&&*4/5-149/5-137.FV.T ' 	V 	rW   c                    | dk(  rd}n?| dk(  rd}n7| dk(  rd}n/| dk(  rd}n'| d	k(  rd}n| d
k(  rd}n| dk(  rd}n| dk(  rd}n| dk(  rd}|rd}nd}|dk(  r	|d d d   }n|}dt        |       z   }t        |   j                         dz  }| dk(  r4|j                  j	                  dd|dt
        ddt              z         }	|	S | dk(  re|j                  j                  ddd|dt        ddddt              z   
      }
|
t        j                  j                  j                  dd      z  }	|	S |j                  j                  d dd|dt
        |ddt              z   !	      }	|	S )"Nr(   rY   r)   rZ   r*   r[   r+   r]   r,   r-   r_   r/   ra   r.   rb   r0   rd   TFr   hscales_gMbP?r<   KmzHorizontal Length Scale of )r=   r>   rE   r?   r@   rA   rB   rl   rm   rp   rq   rr   r;   rk   )rG   rH   rI   rL   rM   r@   rN   rv   rw   rx   ry   r'   )
hscalevarsvertical_log_hsrQ   rR   r}   rD   rE   rS   rT   rU   r~   s              r   
plotHScaler     s   &F4)F35F3(F5 (F4F4+F4'F5 .FDDD DbD>DDS_,e$,,.t3!!J'+%),1'-+/&Cc&k&Q " SBB 	3 5 [[&&&1+/)-05+5(,.2/3*G#f+*U ' 
WF "**//11SS1QQB 	 ""W&0+/)-05+1)-/3*G#f+*U # 	WB 	rW   c                 H   | dk(  rd}n?| dk(  rd}n7| dk(  rd}n/| dk(  rd}n'| d	k(  rd}n| d
k(  rd}n| dk(  rd}n| dk(  rd}n| dk(  rd}|dk(  r	|d d d   }n|}|rd}nd}| d	k(  rxdt        |       z   }t        |   j                         dz  }	j                  t	        dd            j
                  j                  ddd|dt        |ddt              z   	      }
|
S | dk(  rYdt        |       z   }t        |   j                         }	|	j
                  j                  ddd|t        ddt              z         }
|
S | dk(  rdt        |       z   }t        |   j                         }	|	j
                  j                  dd d|dt        ddddt              z   !
      }|t        j                  j                  j                  d"d#$      z  }
|
S dt        |       z   }t        |   j                         }	|	j
                  j                  ddd|dt        |ddt              z   	      }
|
S )%Nr(   rY   r)   rZ   r*   r[   r+   r]   r,   r-   r_   r/   ra   r.   rb   r0   rd   Tr   Fvscales_rf   r   rg   rh   r;   r<   z
Grid UnitszVertical Length Scale of rk   )r=   r>   r?   rE   r@   rA   rB   rl   rm   rp   rq   rr   )rG   rH   rI   rJ   rK   rL   rN   r@   rM   rv   rw   rx   ry   r'   )
vscalevarsvertical_log_vsrQ   rR   r}   rE   rD   rS   dset_tmprT   rU   r~   s               r   
plotVScaler   J  s   &F4)F35F3(F5 (F4F4+F4'F5 .FD DbD>DDDDZ0E%e,446s:HE!BK077==BLGSEILQGMEIKOFadghndoFo > 	qBb 	O 4Z0E!%(002D!!J'3,1%)'-+/&ACK&O " QBH 	9 5 Z0E!%(002D[[&&&1+7)-05+5(,.2/3*EF*S ' 
UF "**//11SS1QQB 	 Z0E!%(002D""W&0+7)-05+1)-/3*EF*S # 	UB 	rW   c                  T   t        j                  t        j                  t        t         j                  j                  dd            t        j                  t        t         j                  j                  dd            t        j                  t        t         j                  j                  dd            dd      t        j                  t        j                  t        t         j                  j                  dd            t        j                  t        t         j                  j                  d	d            t        j                  t        t         j                  j                  dd            d
d      t        j                  t        j                  t        t         j                  j                  dd            t        j                  t        t         j                  j                  dd            dd      t        j                  t        j                  t        t         j                  j                  dd            t        j                  t        t         j                  j                  dd            dd      fd} j                  j!                  | d       j                  j!                  | d       j                  j!                  | d       j                  j!                  | d       t        j                  dt        j                  t"        t         j                  j                  dd            t        j                  t$        t         j                  j                  dd            dd	      }t        j&                  |      S )NzChoose a variabler    )r   alignzChoose a levelzLog vertical axiszBalance Projection MatricesF)rB   	collapsedz-Whether to show a an average vertical profilezStandard DeviationsTzHorizontal Length ScaleszVertical Length Scalesc                 F   | j                   dk(  r| j                  u rd_        d_        d_        y | j                  u rd_        d_        d_        y | j                  u rd_        d_        d_        y | j                  u rd_        d_        d_        y y y )NFT)newobjr   )eventcard1card2card3card4s    r   toggle_cardsz)LayoutSidebarBerror.<locals>.toggle_cards  s    yyE!99%&*EO&*EO&*EOYY%'&*EO&*EO&*EOYY%'&*EO&*EO&*EOYY%'&*EO&*EO&*EO ( "rW   r   zClick to expand cards.zChoose a colormapz&Invert the color range in the colormap
Parameters)pnCardRowrO   widgetsTooltipIconr;   rP   rz   r{   r|   r   r   r   r   paramwatchrQ   rR   Column)r   card_parametersr   r   r   r   s     @@@@r   LayoutSidebarBerrorr     s   w

(>(>EX`g(>(hiubjj&<&<CS[b&<&cd

0F0FM`ho0F0pq;uN y"***@*@GZbi*@*jk|RZZ-C-CJy  BI-C  .J  K

0F0FM`ho0F0pq3tE z2::+A+AH[cj+A+kl

0F0FM`ho0F0pq8DJ z2::+A+AH[cj+A+kl

0F0FM`ho0F0pq6$H
	+( 	,4,4,4,4''":E5%QVx!7!7>QY`!7!ab}bjj&<&<Cksz&<&{|"e5
 yy))rW   c                      t        j                  d      } t        j                  | t        j                  t        t              t        j                  t
        t              t        d      S Nzo
        # Background Error Covariance

        Se the parameters on the left to update the map below.
        r   r   )r   r   r   rV   r   r   r   monitor_warning_bottom_main	main_texts    r   LayoutMainBerrorr     sU    II  	
 yyBFF<$CRVVJXbEc  fA  O^  _  	_rW   c                  Z    t        j                  d      } t        j                  | d      S r   r   r   r   s    r   r   r     (    II  	
 yy@@rW   c                  Z    t        j                  d      } t        j                  | d      S r   r   r   s    r   r   r     r   rW   )Dosr   colorcetccmatplotlib.pyplotpyplotpltcartopy.crscrsccrscartopy.featurerx   cfeaturepanelr   hvplot.xarrayrL   numpynpr   	geopandasgpdgeoviewsrw   monitor_textsr   	extensionmonitor_app_textswarningsr   r   catalog_berror_fileberror_existsrH   arangetolist	level_lstr   	IntSliderr;   balproj_lstSelectrO   stdevvars_lstrz   Checkboxr{   hscalevars_lstr   vscalevars_lstr   ColorMap	palette_nrQ   rR   rP   r|   r   r   r@   rv   dependsrV   r   r   r   r   r    rW   r   <module>r      s   
     "       ,  )&( /88:  I ./ 34Q7N		!B"))+IJJ  gQilQRXabdXemp qE-Kjj%@TU`ksvwGJM

!!';=QRCS]jru!vI::&&IU#&NLDN""(AXYIZdrz}"~J7N""(?~VWGXbpx{"|J zz""
BLLU_gjs"  AHJJ''_EQT'UMjj))~URU)VOjj))~URU)VOjj))~URU)VOjj))~URU)VOFJRZZ=I= J=~ RZZ	<(MRv Svp RZZ
OX}EC FCJ RZZ
OX}ER FRh0*d_AArW   