
    IyjeA              
       	   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Z	d dl
m
Z
 d dlmZ d dlmZ  e	j                           e       Zej#                         Zd ZdZdZ ee      Z ee      Zed    red    red   Zed   Z e       Zej7                         d    j9                         Zej7                         d   j9                         Z e
 eed d	        eed	d
        eed
d        eedd             Z  e
 eed d	        eed	d
        eed
d        eedd             Z! ejD                  e e!d      D  cg c]  } | jG                  d       c} ddd   Z"e	jH                  jK                  de"d    e"d      Z&e	jH                  jK                  ddddgd      Z'g dZ(e	jH                  jK                  de(d   e(d      Z)g Z*eD ]'  Z+e+jY                  d      d    Z-e*j]                  e-       )  e/e*      Z0 e1e0      Z2g dZ3g dg dg dg dg d d!Z4e4jk                         Z6e4jk                         Z7e	jH                  jK                  d"e2d    e2d      Z8e	jH                  js                  d#e4e8jt                     e4e8jt                     d$d%      Z; e	jx                  e8jz                  jt                  d&'      d(        Z>e	jH                  jK                  d"e2d    e2d      Z?e	jH                  js                  d#e4e?jt                     e4e?jt                     d$d%      Z@ e	jx                  e?jz                  jt                  d&'      d)        ZAe	jH                  jK                  d*e3d    e3d      ZBe	jH                  jK                  d+dddgd      ZCe	jH                  j                  d,d$d-d.      ZEe	jH                  j                  d/d$d-d.      ZFe	j                  d0        ZH e	jx                  e?e@eBeCe&e'e)      d1        ZI e	jx                  e?e@eBeCe&e'e)      d2        ZJ e	jx                  e8e;eEe&e'      d3        ZK e	jx                  e8e;eEeFe&e'      d4        ZL e	jx                  e8e;eEe&e'      d5        ZMd6 ZNd7 ZOyd8 ZNd9 ZOyc c} w ):    N)datetime)MonitoringAppTexts)MonitoringAppDatesc                    	 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timeouti  u(   ✅ [ANALYSIS DIAG] Arquivo acessível: u-   ❌ [ANALYSIS DIAG] Arquivo não encontrado: z	 (status ))FN)requestsheadstatus_codeprintintakeopen_catalogRequestException)urlresponsecatalog_objs      6/home/carlos/GitHub/SMNAMonitoringApp/monitor_rdiag.py
url_existsr      s    ==dAF#%<SEBC --c2K$$ A#iPXPdPdOeefgh$$ s   AA- A- -BBzuhttps://dataserver.cptec.inpe.br/dataserver_dimnt/das/carlos.bastarz/SMNAMonitoringApp/rdiag/catalog_diag_conv_01.ymlzuhttps://dataserver.cptec.inpe.br/dataserver_dimnt/das/carlos.bastarz/SMNAMonitoringApp/rdiag/catalog_diag_conv_03.yml            
   6h)freqz%Y%m%d%HDate   )namevalueoptionswidthLoop0103   )
	CartoDark
CartoLightEsriImagery
EsriNatGeoEsriUSATopoEsriTerrain
EsriStreetEsriReferenceOSMOpenTopoMapTiles_)g     @@g      @g      @g     @g     @g     @@g      y@g     r@g     @o@g      i@g     b@g      Y@g      I@g        )   x            )r5   r8   r6   r7   r9   )r5   r8   r6   r7   r9      ~   )i  i  i  i              i     i  r(      i                    i  )*   i  r   ,   +      i  i  i  i  i    )qpstuvgpsVariablekxF)r!   r"   r#   solidr$   T)watchc                 B    t         |    }|t        _        |t        _        y N)_kx_valuesnkxnr#   r"   )select_varn
kx_valuesns     r   _update_kx_valuesnr\   \        -
 	    c                 B    t         |    }|t        _        |t        _        y rW   )_kx_valuesskxsr#   r"   )select_vars
kx_valuesss     r   _update_kx_valuessrd   e   r]   r^   Leveliusezby Levelsuccess)r!   r"   button_typer$   zby kxc                     t        |       	 |dk(  rt        |    j                         }|S |dk(  rt        |    j                         }S #  t        j                  | dz         }Y |S xY w)Nr&   r'   z (loadData))r   catalog_diag_conv_01readcatalog_diag_conv_03monitor_app_textswarnings_rdiag)lfnameloopaxs      r   loadDatarr   q   su    d	Jt|)&1668
 		 )&1668 		J"11&=2HIB	s   A	 A	 	A&c                    	 t        |       dz   t        |      z   dz   t        |      z   }t        ||      }|}	|	d   |k(  }
|	|
   }|d   |k(  }||   }t        || d      }dj                  t	        | dz   t        |      z   dz   |z   d	            }|j                  d
d
||d      }t        j                  |      S #  t        j                  dz         }Y 1xY w)N_diag_conv_r4   pressrf   
instrument
- |    TrL   )global_extentgridtilestitleframe_heightz (plotPtmap))
strrr   
getVarInfojoinwraphvplotrm   rn   pnColumn)varsra   levelrf   daterp   tilero   obsInfodfmaskldfflmaskidffiinstrlabelrq   s                    r   	plotPtmapr   }   s    	KY.T:S@3t9LFvt,GBwK5(Ee9DLD(E;DsD,7EIId4#:C#85#@5#HLME4!%"&"'),	  .B yy}	K"11&>2IJBs   B$B; ;Cc                    	 t        |       dz   t        |      z   dz   t        |      z   }t        ||      }|j                  |   }	|	d   |k(  }
|	|
   }|d   |k(  }||   }t        t	        t
        t        |                      D cg c]  }t        j                  g d       }}t        |      D ]v  \  }}|dk(  r5|j                  j                  ddd	||d
d|  d| d| d| d| d|       }@|j                  j                  ddd	||d
d|  d| d| d| d| d|       z  }x 	 t        j                        S c c}w #  t        j                  dz         }Y 6xY w)Nrt   r4   ru   rf   )bgrcmykr   lonlatTX  i    | kx = ry   z hPa | iuse = 
 | loop =  | valid for )xr   geocolorr}   r   frame_widthr~   z (plotPtmapMulti))r   rr   locrangelen
_kx_valuesrandomchoice	enumerater   pointsrm   rn   r   r   )r   ra   r   rf   r   rp   r   ro   r   r   r   r   r   r   r4   r   countirq   s                      r   plotPtmapMultir      s   #	PY.T:S@3t9LFvt,GS!BwK5(Ee9DLD(E;DQVWZ[efijnfo[pWqQrsAV]]#FGsEs%cN GqA:++e*/,0.3.2584715hse3ug^\`[aaklpkqq~  @D  E  /F , GB $++,,u*/,0.3.2584715hse3ug^\`[aaklpkqq~  @D  E  /F - G GBG. yy}3 t.	P"11&;N2NOBs   BE E $BE  E E!c                 &   	 t        |       dz   t        |      z   dz   t        |      z   }t        ||      }|r[|j                  |   j                  d      j	                         }|j
                  j                  ddddddd	|  d
| d| d|       }nK|j                  d      j	                         }|j
                  j                  ddddddd	|  d| d|       }t        j                  |      S #  t        j                  dz         }Y 1xY w)Nrt   r4   ru   T-   i  r   r   Number of Observationsr   r   r   )r   r|   rotr$   height	bar_widthylabelr~   r   r   rS    | all levels | loop z (plotPcount))r   rr   r   groupbysizer   barrm   rn   r   r   )	varnrY   by_levelr   rp   ro   r   r   rq   s	            r   
plotPcountr      s1   	LY.T:S@3t9LFvt,G[[%--g6;;=YY]]W%)$&&*'**+'?)-hse:dV=Y]X^&_ # a __1_-224YY]]T%)$&&*'**+'?)-.CD6W[V\&] # _ yy}	L"11&?2JKBs   CC4 4Dc                    	 t        |       dz   t        |      z   dz   t        |      z   }t        ||      }|rv|j                  |   j                  d      j	                         j                  d      }ddg|_        |j                  j                  ddddd	d
dd|  d| d| d| 	      }	n|r|j                         }|r7||d   j                  |         j                  ddg      j	                         }nt        j                  t              }|j                  j                  dddd
dd|  d| d|       }	|	j                  d       ne|j                  d      j	                         j                  d      }ddg|_        |j                  j                  ddddd	d
dd|  d| d| 	      }	t#        j$                  |	      S #  t        j!                  dz         }	Y 1xY w)Nrt   r4   ru   counts)r!   rS   top_leftr   r   r   Tr   r   r   r   )	r   r   legendr   r   
line_width
responsiver   r~   )dtypebottom_righti  )r   r   r   r   r   r   r~   )invert_yaxisr   r   r   )	r   r   r|   r   r   r   r   r   r~   z (plotPcount2))r   rr   r   r   r   reset_indexcolumnsr   r   isinpdSeriesintbarhoptsrm   rn   r   r   )
r   rY   r   by_kxr   rp   ro   r   r   rq   s
             r   plotPcount2r      s   4	MY.T:S@3t9LFvt,G[[%--g6;;=IIxIX"H-
YY]]"&"*'1$&'*+,+/'?)-hse:dV=Y]X^&_ # a !--/ !3!3C!89AA7D/RWWYB-BYY^^) #3!F*TF-vF $ 	 T* __1_-224@@h@O"H-
YY]]T"*%)$&'*+,+/'?)-.CD6W[V\&] # 
_ yy}	M"11&;K2KLBs   F4G G'c                 .   	 t        |       dz   t        |      z   dz   t        |      z   }t        ||      }|r||    j                  d      }n||    j                  d      }t        j                  |      S #  t        j                  dz         }Y 1xY w)Nrt   r4   2   r   r   z (getTable))r   rr   r   r   rm   rn   r   r   )r   rY   r   r   rp   ro   r   rq   s           r   getTabler     s    	JY.T:S@3t9LFvt,GT]''+ T]***3 yy}	J"11&=2HIBs   A!A8 8Bc                     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            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            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
      fd} j                  j!                  | d       j                  j!                  | d       gat        j                  t        j                  t$        t         j                  j                  dd            dd	
      }t        j&                  |      S )NzChoose a variablestart)r"   alignzChoose a loopzWhether to plot by levelzChoose a variable typez Whether to plot by variable typer   F)r~   	collapsedzChoose a tile typezChoose a levelz+Choose a use flag (1 = used; -1 = not used)zSpatial DistributionTc                 ~    | j                   dk(  r-| j                  u rd_        y | j                  u rd_        y y y )NFT)newobjr   )eventcard1card2s    r   toggle_cardsz(LayoutSidebarRdiag.<locals>.toggle_cards6  s?    yyE!99%&*EOYY%'&*EO ( "r^   r   zChoose a date
Parameters)r   CardRowr   widgetsTooltipIconrp   r   rY   r   r   r   ra   r   rf   paramrU   cards_rdiagr   r   )r   card_parametersr   r   s     @@r   LayoutSidebarRdiagr   $  sF   tRZZ%;%;BU]d%;%eftRZZ%;%;/Y`%;%abx)?)?F`ho)?)pqsBJJ$:$:AYah$:$ijubjj&<&<Cemt&<&uv6%I tRZZ%;%;BU]d%;%eftRZZ%;%;/Y`%;%abtRZZ%;%;BV^e%;%fgsBJJ$:$:AYah$:$ijubjj&<&<CS[b&<&cdtRZZ%;%;Bow~%;%  A4F	+ 	,4,4 en''"&&rzz/E/EOcj/E/k"lnsuz  CO  [`  ayy))r^   c                  <   t        j                  d      } t        j                  dt        j                  dt              fdt        j                  dt              fd      }d }|j
                  j                  |d	       t        j                  | |t        d
      S )N
        # Analysis Diagnostics

        Set the parameters on the left to update the map below and explore our analysis features.
        zNUMBER OF OBSERVATIONSz=Number of Observations for a variable by level and type (kx).zSPATIAL DISTRIBUTIONz<Spatial distribution of observations by level and type (kx).T)dynamicc                 ^    | j                   }t        t              D ]  \  }}||k7  |_         y rW   )r   r   r   r   )r   indexr   cards       r   on_tab_changez&LayoutMainRdiag.<locals>.on_tab_changeT  s.    IIE$[1 ,4!"e,r^   activestretch_bothsizing_mode)r   r   Tabsr   r   r   rU   monitor_warning_bottom_main)	main_text
tabs_rdiagr   s      r   LayoutMainRdiagr   H  s    II  	 WW6		  CB  DO  9P  Q3RYY?}  @N  6O  P  Z^_

	, 	}h7yyJ1LZhiir^   c                  Z    t        j                  d      } t        j                  | d      S Nr   r   r   r   r   r   s    r   r   r   `  (    II  	 yy??r^   c                  Z    t        j                  d      } t        j                  | d      S r   r   r   s    r   r   r   i  r   r^   )Posr   r   r   hvplot.pandasr   pandasr   panelr   r   monitor_textsr   monitor_datesr   	extensionrm   warningsr   r   catalog_diag_conv_01_filecatalog_diag_conv_03_filecatalog_diag_conv_01_existscatalog_diag_conv_03_existsrj   rl   monitoring_app_datesgetDatesstripsdateedater   
start_dateend_date
date_rangestrftimer   Selectr   rp   r3   r   variable_list_tmpsourcesplitvarappendsetvariable_setlistvariable_listzlevsr   copyrX   r`   r   MultiChoicer"   rY   dependsr   r\   r   ra   rd   r   rf   Toggler   r   cacherr   r   r   r   r   r   r   r   )ds   0r   <module>r&     s    
        , , &( /88: " T  T  ))BC ()BC q!&A!&D6q96q9 ./ ))+A.446E ))+A.446E#eAaj/3uQqz?Ca
OSQVWXY[Q\M]^JE!AJU1QZ#eAaj/3uUVWY{K[\H2?"--
H[_2`aQ!**Z(abfdfbfgJ::&
1zY\]D::&tTlRUVDPE::'q5PSTD & &ll3"  %& ()L&MlE20: UL	NJ //#K//#K::*M!4DmcfgD
**
 
 d*TZZ2HR\]a]g]gRhpu  ~A
   BCRZZ

  - .
 ::*M!4DmcfgD
**
 
 d*TZZ2HR\]a]g]gRhpu  ~A
   BCRZZ

  - .
 JJ7%(EQTUE::&B7#NDzz  j9\_ `HJJ7%YVYZEXX	 	 RZZc5$dD9 :0 RZZc5$dD9% :%N RZZc8T40 18 RZZc8UD$76 86p RZZc8T40 1"*Hj0@@[	 bs   R