
    0[hH                        S SK JrJr  S SKJr  S SKJr  S SKJr  S SK	J
r
  S SKJr  S SKJr  S SKJr  S S	KJr  S
SKJr  S
SKJrJr  S
SKJr  S
SKJrJrJr  S
SKJrJ r J!r!  S
SK"J#r#J$r$J%r%J&r&J'r'J(r(  S
SKJ)r)  S SK*r+S
SK"J,r,  S SK-r.S SK/J0r1  S SK2J3r4  S SK5J6r6  S SK7r7S SK8r8S SK9J:r:  S SK;J<r<  S SK=J>r>  \<S 5       r?S
SK@JArA  \<S 5       rBS
SKCJDrD  \<S 5       rEg)    )renderget_object_or_404)Projeto)Ambiente)DadosTermicos)Parede)Vidro)Porta)Telhado)
connection   )CalculoTermica)calcular_carga_termica_paredecalcular_carga_insolacao_parede)calcular_cargas_vidros)calcular_carga_insolacao_portacalcular_carga_termica_portacalcular_cargas_portas)calcular_cargas_telhados calcular_carga_insolacao_telhadocalcular_carga_termica_telhado)!calcular_cargas_termicas_ambiente#calcular_calor_sensivel_ar_exterior"calcular_calor_latente_ar_exteriorcalcular_vazao_ar_infiltracaocalcular_vazao_ar_renovacao calcular_vazao_total_ar_exterior)carregar_temperaturas_projeto2N)calcular_densidade_ar)	mark_safe)settings)login_required)messagesc                    U R                   R                  (       aO  U R                   R                  (       a4  [        R                  " U R                   R                  R
                  5        [        [        US9n[        [        X#S9n[        [        US9n[        R                  R                  US9n[        R                  R                  US9n[        R                  R                  US9n[        R                  R                  US9n	 [!        U5      u  pn[!        U5      u  pnUR,                  nUR.                  b  UR.                  OSn[1        U5      n[3        UR4                  UR6                  5      n[9        UR:                  UR<                  5      n[?        UR4                  UR6                  UR:                  UR<                  5      n[A        XZUU5      n[C        UUUURD                  US9n0 n0 n[G        XU5      u  nn0 n0 n[I        XU5      u  nn/ S	Qn/ S
Qn[J        RL                  " [O        U5      5      n [J        RL                  " [O        U5      5      n!U Hd  n"U H[  n#[Q        UU"UU#5      n$[S        U"U#5      n%U [J        RT                  " U$5      -  n U![J        RT                  " U%5      -  n!U$UU# '   U%UU# '   M]     Mf     U U!-   n&U U!U&S.n'[J        RL                  " [O        U5      5      n([J        RL                  " [O        U5      5      n)URW                  5        H  u  n#n$U([J        RT                  " U$5      -  n(M!     URW                  5        H  u  n#n%U)[J        RT                  " U%5      -  n)M!     U(U)-   n*U(U)U*S.n+[J        RL                  " [O        U5      5      n,[J        RL                  " [O        U5      5      n-0 n0 nU Hc  nU HZ  n#[Y        XUU#5      n.[[        UU#5      n/U.UU# '   U/UU# '   U,[J        RT                  " U.5      -  n,U-[J        RT                  " U/5      -  n-M\     Me     U,U--   n0U,U-U0S.n1[J        RL                  " [O        U5      5      n2[J        RL                  " [O        U5      5      n30 n0 nU	 Hs  n4[]        UU4U5      n5[_        UU4U5      n6U5USU4R`                   3'   U6USU4R`                   3'   U2[J        RT                  " U55      -  n2U3[J        RT                  " U65      -  n3Mu     U2U3-   n7U2U3U7S.n8[c        U5      n9[J        RL                  " [O        U5      5      n:[J        RL                  " [O        U5      5      n;[J        RL                  " [O        U5      5      n<[J        RL                  " [O        U5      5      n=[J        RL                  " [O        U5      5      n>[J        RL                  " [O        U5      5      n?SU9;   a  U:[J        RT                  " U9S   5      -  n:SU9;   a  U;[J        RT                  " U9S   5      -  n;SU9;   a  U<[J        RT                  " U9S   5      -  n<SU9;   a  U=[J        RT                  " U9S   5      -  n=SU9;   a  U>[J        RT                  " U9S   5      -  n>SU9;   a  U?[J        RT                  " U9S   5      -  n?U:U;U<U=U>U?S.n@U&U*-   U0-   U7-   U-   U<-   U=-   U>-   nAU;U-   nBUBUA-   nC[e        UC5      nD[f        Rh                  Rk                  [l        Rn                  SURp                   35      nE[f        Rr                  " UESS9  [f        Rh                  Rk                  UEURt                   S35      nFUUCUBUAS.nG[v        Rx                  " UG5      nHUHR{                  UFSSS9  UCS-  nISS K>J?nJ  / S
QnUJR                  " 5       nKUKR                  UJR                  " UUCSS S!S"95        UKR                  UJR                  " UUISS#S$S"95        UKR                  S%S&[        [        S [        S'S(9S)9[        S'S(9S*S+9[        [        S#[        S,S(9S)9[        S,S(9S-S.S/9S0S19  [        R                  " UKSS29nL0 S3U_S4U_S5U'_S6U+_S7U1_S8U8_S9U@_S:U_S;U_S<U_S=U_S>U_S?U_S@U_SAU_SBU9_SCU_UUUUUUUUAUBUCUD[        UL5      SD.EnM[+        U SUM5      $ ! ["         a;  n[$        R&                  " U [)        U5      5        [+        U SUUSS.5      s S nA$ S nAff = f)ENidr&   projeto)ambientez+calculotermica/resultados_cargatermica.htmlT)r(   r)   error   )hlv)nortesullesteoeste)z06:00z07:00z08:00z09:00z10:00z11:00z12:00z13:00z14:00z15:00z16:00z17:00z18:00)total_carga_termicatotal_carga_insolacaototal_parede_calculo)r0   r1   total_vidro_calculo)r0   r1   total_portas_calculotelhado_)r0   r1   total_telhado_calculocarga_sensivel_totalcarga_latente_totalcarga_iluminacaocarga_equipamentoscarga_sensivel_pessoascarga_latente_pessoas)r7   r8   r9   r:   r;   r<   z3/var/www/html/cag/arquivos_cargas_termicas/projeto_)exist_okz_resultados_termicos.xlsx)   Horáriou   Carga Térmica Total Ambienteu   Somatório Carga Latente Totalu    Somatório Carga Sensível TotalFopenpyxl)indexenginei  zlines+markersu   Carga Térmica Total (W)y1)xymodenameyaxisu   Carga Térmica Total (TR)y2u0   Carga Térmica Total do Ambiente ao Longo do Diar>   z#1f77b4)color)textfontleft)titletickfontsidez#ff7f0erD   right)rM   rN   
overlayingrO   plotly_white)rM   xaxis_titlerG   yaxis2template)	full_htmlr(   r)   cargas_totais_paredescargas_totais_vidroscargas_totais_portascargas_totais_telhadoscargas_totais_ambientecargas_termocargas_insolacaocargas_termo_vidroscargas_insolacao_vidroscargas_termo_portascargas_insolacao_portascargas_termo_telhadoscargas_insolacao_telhadoscargas_ambientevazao_infiltracao)vazao_renovacaovazao_total_ar_exteriorcalor_sensivel_ar_exteriorcalor_latente_ar_exteriorhorariosaltitudedensidade_arsomatorio_carga_sensivel_totalsomatorio_carga_latente_totalcarga_termica_total_ambiente carga_termica_total_ambiente_maxplot_carga_termica_total)Huseris_authenticatedtenantr   
set_schemaschema_namer   r   r   r   r   objectsfilterr	   r
   r   r   FileNotFoundErrorr#   errorstrr   temperatura_internark   r   r   	area_piso
pe_direitor   numero_pessoastaxa_renovacaor   r   r   umidade_absoluta_internar   r   npzeroslenr   r   arrayitemsr   r   r   r   r&   r   maxospathjoinr!   BASE_DIRnome_projetomakedirsnome_ambientepd	DataFrameto_excelplotly.graph_objs
graph_objsFigure	add_traceScatterupdate_layoutdictpioto_htmlr    )Nrequest
projeto_idambiente_idr(   r)   termicosparedesvidrosportatelhadostemperaturas_externasumidade_absoluta_externacalor_latente_aguaer|   rk   rl   re   rf   rg   rh   ri   r\   r]   r^   r_   r`   ra   rb   rc   orientacoesrj   total_carga_termica_paredestotal_carga_insolacao_paredesparede
orientacaocarga_termicacarga_insolacaor2   rW   total_carga_termica_vidrostotal_carga_insolacao_vidrosr3   rX   total_carga_termica_portastotal_carga_insolacao_portascarga_termica_portacarga_insolacao_portar4   rY   total_carga_termica_telhadostotal_carga_insolacao_telhadostelhadocarga_termica_telhadocarga_insolacao_telhador6   rZ   rd   r7   r8   r9   r:   r;   r<   r[   rm   rn   ro   rp   caminho_basecaminho_arquivodadosdfcarga_termica_total_ambiente_trgofigrq   contextosN                                                                                 )/var/www/html/cag/calculotermica/views.pyresultados_ambiente_termicar   #   s	    ||$$)<)<gll11==>J7G kKH BHnn##X#6G]]!!8!4FMM  ( 3E%%x%8H
NlmwNxK9K KiisJtG5G"66
 $+#3#3#?wQH(2L
 6h6H6H(J]J]^1(2I2I8KbKbcO>H//1H1H(JaJa "E)<>U" !C ))! L3I*^f3g007OPZfn7o444K EH
 #%((3x="9$&HHS]$;! %J9*fhXbcM=fjQO (288M+BB')RXXo-FF) -:LJ<)0?
|- &  79VV  ;!> 4 "$#h-!8#%88CM#:  &9%>%>%@!
M"bhh}&==" &A'>'D'D'F#
O$(AA$ (G 57SS9!=2 "$#h-!8#%88CM#:    %J">zRZ\f"g$B5*$U! 4G:,07L#zl4 '"((3F*GG&(BHH5J,KK( &  68TT  :!= 4 $&88CM#: %'XXc(m%<"  "  >z7T\ ]"B:wX`"a :O56=T!HWZZL"9: 	%1F(GG$&"((3J*KK&  9;YY  <!?!6 8AO 88CM2((3x=1xxH.#h-0XXc(m4HHS]3 09O)P QQ/rxx8M(NOO_,BHH_5G%HII.bhh7K'LMM?2"((?;S+T"UU/1/:Q*R!SS !52,0"8!6 			 		
 	#	# 		 		 		 #( 	!	" "
 %BDb$b '*+G'H$ 77<< 1 15hipi}i}h~3  ALKKt,ggll<H4J4J3KKd1efO )E*G,J	E 
e	B KKuZK@ 'CT&I#"FH
))+C MM"**

&'  MM"**

)(  @/	* 	*
 0	* 	*
  )  2  #{{3%@ 7 H  	 !6  	 4	 
 	 4  	!"8  	!"8  	  	,  	2  	"#:  	2  	"#:  	 !6  	$%>   	?! " 	.# $ +#:&@%>$*H)F(D,L$-.F$G; HD 'H(SSy  wA'gL O
  	s   
b 
c 0ccc)gerar_relatorio_completoc                 *   U R                   R                  (       aO  U R                   R                  (       a4  [        R                  " U R                   R                  R
                  5        [        [        US9n[        [        X#S9n[        XU5      nU$ Nr%   r'   )
rr   rs   rt   r   ru   rv   r   r   r   r   r   r   r   r(   r)   responses         r   relatorio_completo_viewr     f     ||$$)<)<gll11==>J7G kKH ([IHO    )gerar_relatorio_resumidoc                 *   U R                   R                  (       aO  U R                   R                  (       a4  [        R                  " U R                   R                  R
                  5        [        [        US9n[        [        X#S9n[        XU5      nU$ r   )
rr   rs   rt   r   ru   rv   r   r   r   r   r   s         r   relatorio_resumido_viewr     r   r   )Fdjango.shortcutsr   r   projeto.modelsr   ctermica.modelsr   termicos.modelsr   paredes.modelsr   vidros.modelsr	   portas.modelsr
   telhados.modelsr   	django.dbr   modelsr   cargasparedesr   r   cargasvidrosr   cargasportasr   r   r   cargastelhadosr   r   r   cargastermicosr   r   r   r   r   r   r   pandasr   r   numpyr   r   r   r   	plotly.ioior   django.utils.safestringr    r   csvdjango.confr!   django.contrib.auth.decoratorsr"   django.contribr#   r   relatorio_ambiente_completor   r   relatorio_ambiente_resumidor   r    r   r   <module>r      s    6 " $ ) !   #   " Y 0 n n v v  :  1    - 	 
   9 #NT NTh B  & B r   