
    zzj                        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 d dlmZ d dlmZ  ej                           dZ e       Zej'                         Z e       Zej-                         d    j/                         Zej-                         d   j/                         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j;                  d       Zej;                  d       Z ej<                  eed      D  cg c]  } | j?                  d       c} ddd   Z g dZ!g dZ" e#d dd
      D cg c]
  } e$|       c}Z%ejL                  jO                  de d      Z(ejL                  jO                  de!d      Z)ejL                  jO                  de"d      Z*ejL                  jO                  de%d      Z+d Z,d Z- ej\                  e(e)e*e+      d        Z/ ej\                  e(e)e*e+      d        Z0 ej\                  e(e)e*e+      d        Z1 ej\                  e(e)e*e+      d         Z2 ed!"      d1d#       Z3 ed"      d$        Z4ejL                  jk                  d%d& ejl                  e- ejl                  d' e(e)e*e+            d(d)*      Z7ejL                  jk                  d%d+ ejl                  e- ejl                  d, e(e)e*e+            d(d)*      Z8d2d-Z9e(e)e*e+fD ]  Z:e:jv                  jy                  e9d.          e9        d/ Z=d0 Z>yc c} w c c}w )3    N)datetime)urljoin)	lru_cache)MonitoringAppTexts)MonitoringAppDateszfhttps://dataserver.cptec.inpe.br/dataserver_dimnt/das/carlos.bastarz/SMNAMonitoringApp/anls_imgs/imgs/            
   )hourD)freqz%Y%m%d%H)
Zonal_wind_uMeridional_wind_vOmegaStream_functionVelocity_potentialGeopotential_heightAbsolute_temperatureSpecific_humidityVertical_dist_total_cloud_cover#Time_mean_surface_relative_humidity)100092585050025020103I   Date   )nameoptionswidthVariableLevelTimec           
      $    |  d| d| d| d| d
S )N__l_f.jpg )prefixdvlts        4/home/carlos/GitHub/SMNAMonitoringApp/monitor_anl.pybuild_filenamer8   @   s'    XQqc1#Rs"QCt,,    c                     t        j                  | d      }|j                          t        j                  |j
                        }|j                  d       |S )Nr   timeoutr   )requestsgetraise_for_statusioBytesIOcontentseek)urlrbios      r7   fetch_imagerG   C   s@    S"%A
**QYY
CHHQKJr9   c                 N    | r|r|r|sy t        t        d|  d| d| d| d	      S NSMNA//r0   r   BASE_URLr3   r4   r5   r6   s       r7   smna_urlrO   J   s6    !a8uQCq1QCq4899r9   c                 N    | r|r|r|sy t        t        d|  d| d| d| d	      S NBAM/rK   r0   rL   rN   s       r7   bam_urlrS   P   s6    !a8tA3as!A3as$788r9   c                    | r|r|r|st         j                  j                  d      S t        t        d|  d| d| d| d	      }t        |      }t         j                  j                  t        j                  |      d      S )N   Selecione parâmetrosrJ   rK   r0      r(   	pnpaneMarkdownr   rM   fetch_image_or_fallbackJPGr@   rA   r3   r4   r5   r6   rD   imgs         r7   img_smnar`   V   sq    !aww 788
(eA3as!A3as$7
8C
!#
&C77;;rzz#c;22r9   c                    | r|r|r|st         j                  j                  d      S t        t        d|  d| d| d| d	      }t        |      }t         j                  j                  t        j                  |      d      S )NrU   rR   rK   r0   rV   rW   rX   r^   s         r7   img_bamrb   _   sq    !aww 788
(d1#Qqc1#Qqc6
7C
!#
&C77;;rzz#c;22r9      )maxsizec                     	 t        j                  | d      }|j                          |j                  S # t        $ r t        |      cY S w xY wN   r;   )r=   r>   r?   rB   	Exceptionget_fallback_image)rD   fallback_pathrE   s      r7   r\   r\   h   sG    1LLa(	yy 1!-001s   25 AAc                 h    t        j                  | d      }|j                          |j                  S rf   )r=   r>   r?   rB   )rD   rE   s     r7   ri   ri   q   s(    S!$A99r9   downloadzDownload SMNAc                 <    t        t        d|  d| d| d| d	      S rI   rL   rN   s       r7   <lambda>rn   |   s(    78uQCq1QCq45P#Q r9   successi6  )iconlabelcallbackbutton_typer(   zDownload BAMc                 <    t        t        d|  d| d| d| d	      S rQ   rL   rN   s       r7   rn   rn      s(    78tA3as!A3as$5O#P r9   c                 f   t         j                  r0t        j                  r t        j                  rt        j                  sy t         j                  }t        j                  }t        j                  }t        j                  }t        d||||      t        _        t        d||||      t        _        y )NSMNABAM)	datavaluevarlevtmpr8   download_smnafilenamedownload_bam)eventr3   r4   r5   r6   s        r7   update_filenamer      sl    JJ399syy

A		A		A		A+FAq!Q?M+E1aA>Lr9   ry   c                     t        j                  t        j                  t        j                  t        t         j
                  j                  d            t        j                  t        t         j
                  j                  d            t        j                  t        t         j
                  j                  d            t        j                  t        t         j
                  j                  d            dd            S )	NzChoose a date)ry   zChoose a variablezChoose a levelzChoose forecast time
ParametersF)title	collapsed)
rY   ColumnCardRowrx   widgetsTooltipIconrz   r{   r|   r1   r9   r7   LayoutSidebarAnlr      s    99
FF4//o/FGFF3

..5H.IJFF3

..5E.FGFF3

..5K.LM	
	 	r9   c                     t         j                  j                  d      } t        j                  dt        j                  t        j
                  dt        t              t        j
                  dt        t                    fdt        j                  t        j
                  dt        t              t        j
                  dt        t                    fd      }t        j
                  | |t        d	      S )
NzR
    # Analysis Plots

    Set the parameters on the left to update the maps.
    XC50z### SMNAz### BAMEgeonT)dynamicstretch_both)sizing_mode)rY   rZ   r[   Tabsr   r   r`   r}   rb   r   monitor_warning_bottom_main)	main_textplotss     r7   LayoutMainAnlr      s       " 	I GG	FF		*h>		)Wl;	
 
FF		*h>		)Wl;	

 E 99#"	 r9   )z}https://dataserver.cptec.inpe.br/dataserver_dimnt/das/carlos.bastarz/SMNAMonitoringApp/anls_imgs/imgs/image_not_available.jpg)N)?panelrY   r=   r@   timepandaspdr   urllib.parser   	functoolsr   monitor_textsr   monitor_datesr   	extensionrM   monitor_app_textswarningsr   monitoring_app_datesgetDatesstripsdateedateint
start_dateend_datereplace
date_rangestrftimedatas	variaveisniveisrangestrtemposr   Selectrx   rz   r{   r|   r8   rG   dependsrO   rS   r`   rb   r\   ri   FileDownloadbindr}   r   r   wparamwatchr   r   )r3   is   00r7   <module>r      s     	       , , s&( /88: )+ %%'*002%%'*002c%!*os51:E!AJUSTUW[IYZ
Ca
OSq_c%!*os5QRSU;GWX Q'
1%)6z8RU)VWAJ	WX\Z\X\]	 
?2q/	*Q#a&	*	zzfe3?jjZ#FjjWfC@jjVV3?- D#sC : !:
 D#sC 9 !9
 D#sC 3 !3 D#sC 3 !3 31 1 1 
 

''	
RWWQSWY\^acfgi 
 ( 	 zz&&	
RWWPRVX[]`befh 
 ' 	
? S#	 ,AGGMM/7+,  
S 	X0 
+s   ?M4M