
    Qg$                     ,
   d dl Zd dlZd dlmZmZmZmZ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mZ d dlmZ d dlmZ d dlmZ d dlmZ  ed	        eed
ej<                  j>                  g      Z e jB                  Z!de _"         ejF                  d      Z$ ejJ                  d ejL                  dddi       ejN                  dddi      gddi      Z( ejR                  dddi      Z* ejV                  e$dddgddddd !      Z,e,jZ                  j]                  d"#        ej^                  e,d$%      Z0 ejb                  e$je                  d"&      d'd(d(d)d*+      Z3 ej^                  e3d$%      Z4 ejj                  e$ddd,d-di.      Z6 ej^                  e6d$%      Z7 ejp                  e$g d/d0d-di1      Z9 ej^                  e9d$d2d3i4      Z: ejJ                  d5 ejJ                  d6e*e0g7       ejJ                  d5 ejJ                  d8e4g7       ejJ                  d8e:g7      g7      gd9d:d;      Z; e
 e	d<d=       e	d>d=       e	d?d=       ed@d-            dA        Z< e
 e	dBdC       ed@d-            dD        Z= ejJ                   ej|                  dE       ej~                  d@dEdddFdddFdGdGdFgdH      gdId:ddJK      Z@ ej^                  d<L      ZA ej^                  d>L      ZB ej^                  d?L      ZC ejJ                  d5 ejR                  dMddi      e@ ejJ                  d5 ejJ                  d6eAg7      g7       ejJ                  d5 ejJ                  d8eBg7       ejJ                  d8eC ej|                  dBddiN      g7      g7      gd:d9ddO      ZD e
 e	dPd=       edQd-       edRd-      g      dS        ZE ej^                  dPd$T      ZF ejJ                  dU ej|                  dV       ej                  dRdWdXdYdZ[      gdId:ddJ      ZG ejJ                   ej|                  dE       ej~                  dQdEdddFdddFdGdGdFgdH      gdId:ddJK      ZH ejJ                  dUeGeHg7      ZI ejJ                  d5 ejR                  d\ddi      eI ejJ                  d5 ejJ                  d6eFg7      g7      gd:d9d]      ZJ ejJ                  e(e;eDeJg^      e _-        ed_k(  re j                  d"`       yy)a    N)DashhtmldccInputOutputcallback)r   r   )plot_acf	plot_pacf)seasonal_decompose)adfuller)Prophet)FlaskzEjecutando APP 1z/app1/)requests_pathname_prefixexternal_stylesheetsu+   Optimización del Uso de Energía Renovable!/var/www/dash_apps/app1/datos.csvheaderuD   Optimización del Uso de Energía Renovable en Ciudades Inteligentes	textAligncenter)styleuL  El proyecto consiste en analizar el consumo de energía en una ciudad y proponer estrategias para optimizar el uso de energías renovables (solar, eólica, etc.) en función de patrones de consumo, condiciones climáticas y disponibilidad de recursos. El objetivo es reducir la huella de carbono y mejorar la eficiencia energética.justifypadding50px)	classNamechildrenr   u,   ANÁLISIS DESCRIPTIVO DE CONSUMO DE ENERGÍAFechaConsumo   Generación Solaru(   Tendencia de Consumo y Generación Solarspline   Energía (kWh)Tipo)valuevariable)xytitle
line_shapelabelsT)
showlegendgraph)figurer   )numeric_onlyu   Correlación entre variablesVariableu   Correlación)r#   r$   colorr%   r'   u,   Distribución de Consumo y Generación Solarr!   )r#   r$   r%   r'   )r   r   Temperaturau   Matriz de Dispersión)
dimensionsr%   r'   height500px)r*   r   r   row	container)r   r   zcol-md-625pxauto)r   margin	grafica_1r*   	grafica_2	grafica_3zselector-columnac                 *   t        t        |    dd      }| dk(  rddi}nddi}t        j                  t        |    d|  |	      }t        j                  |j                  d
|  |	      }t        j                  |j
                  d|  |	      }|||fS )Nmultiplicative   )modelperiodr/   r!      Temperatura (°C)r   zDatos Originales r.   z
Tendencia zEstacionalidad )r   dfpxlinetrendseasonal)columnaresultr'   r8   r9   r:   s         /var/www/dash_apps/app1/app.py!grafica_descomposicion_estacionalrI   P   s      73CBOF-./+,ggbk+<WI)FvVIggfllJwi*@PIggfoowi-HQWXIi**    	resultador   c                 n    t        t        |          }|d   dkD  rd|  d|d   d}|S d|  d|d   d}|S )N   g?zLa serie de tiempo z1 no es estacionaria y que su valor de p-value es z.8fz/ es estacionaria ya que su valor de p-value es )r   rA   )rF   rG   rK   s      rH   verificar_estacioalidadrN   a   sh    bk"Fay4(	1bcijkclmpbqr	  )	1`aghiajkn`op	rJ   zSeleccion columna analisis)labelr!   r/   )idplaceholderoptionsr!   z30%)widthr7   r   )r   r   )rP   u'   ANÁLISIS DE DESCOMPOSICIÓN ESTACIONAL)rP   r   )r7   r   r   grafica_prediccionzselector-columna-1z	num-multic                    t        j                  d      }|j                  dd| di      }t               }|j	                  |       |j                  |d      }|j                  |      }|j                  dd	       |j                  dd	       |j                  |g d
   d      }|d   |d<   |d   |d<   | dk(  rddddd}nddddd}t        j                  ||j                  ddgd|  |d      }|S )Nr   r   dsr$   )columnsd)periodsfreqT)inplace)yhat
yhat_lower
yhat_upperouter)howr\   u   Predicciónz
Valor Realr/   r@   )r!   rV   y_expyhat_expr   u   Predicción r   )r#   r$   r%   r'   r&   )pdread_csvrenamer   fitmake_future_dataframepredict	set_indexjoinrB   rC   index)	rF   periodosrA   r>   futureforecastviz_dfr'   figs	            rH   rT   rT      s   	8	9B	yy'$4y5BIE	IIbM((#(FF}}V$HLLtL$tT*WWXAB'WRF#F^F="3KF<-.gcpq+'\_lm
&,,<*GQ]^e]fOgpv  DL  	OCJrJ   )rP   r   zcontroler-rowu   Número de periodos a predecirnumberrM         )rP   typeminmaxr!   u   ANÁLISIS PREDICTIVO)r7   r   )r   __main__)debug)Lnumpynppandasrc   dashr   r   r   r   r   r   dash.dependenciesplotly.expressexpressrB   dash_bootstrap_componentsdbcstatsmodels.graphics.tsaplotsr	   r
   statsmodels.tsa.seasonalr   statsmodels.tsa.stattoolsr   prophetr   flaskr   print__name__themesCERULEANappserverr%   rd   rA   DivH1Pr   H3titulo_seccion_1rC   figura_seccion_1layoutupdateGraphgrafica_seccion_1imshowcorrgrafica_correlaciongrafica_seccion_1_2boxgrafica_boxgrafica_seccion_1_3scatter_matrixgrafica_scarttergrafica_seccion_1_4contenido_seccion_1rI   rN   H6Dropdownselector_columnar8   r9   r:   contenido_seccion_2rT   grafica_predrl   selector_columna_1controlscontenido_seccion_3run rJ   rH   <module>r      s     8 8 +  ' = 7 .     8hcjjNaNaMbc	9	R[[45 
V_jlt^uv  ^  gr  t}  f~  	
 f

 477IR]_gQhi 2772Y8K,LT~  LT  gw  EK  ]L  M      $  /CII%5I biiT :B`oy  AK  Vd  je  f cii':gN bffR9(;Cq  |C  EU  {V  Wcii{gF $2$$R4c  lC  MT  Vf  Lg  h cii'77S[]dRef dhh! !	
 	(+ (*	
4 
/9 D 
;););)$g.	0
	+0
	+ 
&j
)51CW+MN O 488DGG01CLL%8')<1<OP+mD
  	
 hG " CII+&	CII+&	CII+&	 dhh9+xAXY)!
	
 	(! (!;{H6MN	
 B X
FG$ R 
&%x
059Mw3WY^_jlsYt2uv w( syy0GD 48801			
	 V(
C TXXDGG01CLL'8')<1<OP+mD
  	
 XF " 488 dhh&{H.EF)$
	
 
/# 0 TXX	
 zGG$G rJ   