
    hM                        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       rES SKFJGrG  S SK Jr  S SKJr  S S	KJr  S SK;J<r<  S
SKHJGrG  \<S 5       rIg)     )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R                  (       a)  [        R                  " U S5        [        U SUUSSS.5      $ [        [        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R0                  nUR2                  b  UR2                  OS
n[5        U5      n[7        UR8                  UR:                  5      n[=        UR>                  UR@                  5      n[C        UR8                  UR:                  UR>                  UR@                  5      n[E        XZUU5      n[G        UUUURH                  US9n0 n0 n[K        XU5      u  nn0 n0 n[M        XU5      u  nn/ SQn/ SQn[N        RP                  " [S        U5      5      n [N        RP                  " [S        U5      5      n!U Hd  n"U H[  n#[U        UU"UU#5      n$[W        U"U#5      n%U [N        RX                  " U$5      -  n U![N        RX                  " U%5      -  n!U$UU# '   U%UU# '   M]     Mf     U U!-   n&U U!U&S.n'[N        RP                  " [S        U5      5      n([N        RP                  " [S        U5      5      n)UR[                  5        H  u  n#n$U([N        RX                  " U$5      -  n(M!     UR[                  5        H  u  n#n%U)[N        RX                  " U%5      -  n)M!     U(U)-   n*U(U)U*S.n+[N        RP                  " [S        U5      5      n,[N        RP                  " [S        U5      5      n-0 n0 nU Hc  nU HZ  n#[]        XUU#5      n.[_        UU#5      n/U.UU# '   U/UU# '   U,[N        RX                  " U.5      -  n,U-[N        RX                  " U/5      -  n-M\     Me     U,U--   n0U,U-U0S.n1[N        RP                  " [S        U5      5      n2[N        RP                  " [S        U5      5      n30 n0 nU	 Hs  n4[a        UU4U5      n5[c        UU4U5      n6U5USU4Rd                   3'   U6USU4Rd                   3'   U2[N        RX                  " U55      -  n2U3[N        RX                  " U65      -  n3Mu     U2U3-   n7U2U3U7S.n8[g        U5      n9[N        RP                  " [S        U5      5      n:[N        RP                  " [S        U5      5      n;[N        RP                  " [S        U5      5      n<[N        RP                  " [S        U5      5      n=[N        RP                  " [S        U5      5      n>[N        RP                  " [S        U5      5      n?SU9;   a  U:[N        RX                  " U9S   5      -  n:SU9;   a  U;[N        RX                  " U9S   5      -  n;SU9;   a  U<[N        RX                  " U9S   5      -  n<SU9;   a  U=[N        RX                  " U9S   5      -  n=SU9;   a  U>[N        RX                  " U9S   5      -  n>SU9;   a  U?[N        RX                  " U9S   5      -  n?U:U;U<U=U>U?S.n@U&U*-   U0-   U7-   U-   U<-   U=-   U>-   nAU;U-   nBUBUA-   nC[i        UC5      nD[j        Rl                  Ro                  [p        Rr                  SURt                   35      nE[j        Rv                  " UESS9  [j        Rl                  Ro                  UEURx                   S35      nFUUCUBUAS.nG[z        R|                  " UG5      nHUHR                  UFSSS 9  UCS!-  nI/ SQn[        R                  " 5       nJUJR                  [        R                  " UUCS"S#S$S%95        UJR                  [        R                  " UUIS"S&S'S%95        UJR                  S(S)[        S#[        S*S+9[        S*S+9S,S-9[        S&[        S.S+9[        S.S+9S/S0S19S2S39  [        R                  " UJSS49nK0 S5U_S6U_S7U'_S8U+_S9U1_S:U8_S;U@_S<U_S=U_S>U_S?U_S@U_SAU_SBU_SCU_SDU9_SEU_UUUUUUUUAUBUCUD[        UK5      SF.EnL[        U SUL5      $ ! [*         a;  n[        R,                  " U [/        U5      5        [        U SUUSS	.5      s S nA$ S nAff = f)GNidr&   projetoub   Este ambiente foi cadastrado com um equipamento existente. O cálculo térmico não foi realizado.z+calculotermica/resultados_cargatermica.htmlTuj   Este ambiente foi preenchido automaticamente com um modelo existente e não passou pelo cálculo térmico.)r(   ambienteerromensagem)r)   )r(   r)   r*   r   )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)r1   r2   total_vidro_calculo)r1   r2   total_portas_calculotelhado_)r1   r2   total_telhado_calculocarga_sensivel_totalcarga_latente_totalcarga_iluminacaocarga_equipamentoscarga_sensivel_pessoascarga_latente_pessoas)r8   r9   r:   r;   r<   r=   z>/var/www/html/cagpublico/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left)title	titlefonttickfontsidez#ff7f0erE   right)rL   rM   rN   
overlayingrO   plotly_white)rL   xaxis_titlerH   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)Iuseris_authenticatedtenantr   
set_schemaschema_namer   r   r   equipamento_existenter#   warningr   r   r   objectsfilterr	   r
   r   r   FileNotFoundErrorerrorstr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goFigure	add_traceScatterupdate_layoutdictpioto_htmlr    )M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_insolacaor3   rW   total_carga_termica_vidrostotal_carga_insolacao_vidrosr4   rX   total_carga_termica_portastotal_carga_insolacao_portascarga_termica_portacarga_insolacao_portar5   rY   total_carga_termica_telhadostotal_carga_insolacao_telhadostelhadocarga_termica_telhadocarga_insolacao_telhador7   rZ   rd   r8   r9   r:   r;   r<   r=   r[   rm   rn   ro   rp   caminho_basecaminho_arquivodadosdfcarga_termica_total_ambiente_trfigrq   contextosM                                                                                6/var/www/html/cagpublico_m/cag/calculotermica/views.pyresultados_ambiente_termicar   #   s7
    ||$$)<)<gll11==>J7G kKH %%  #G  	HgL  E	O
  	 !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 15st{  uI  uI  tJ  4K  LLKKt,ggll<H4J4J3KKd1efO )E*G,J	E 
e	B KKuZK@ 'CT&I# EH
))+C MM"**

&'  MM"**

)(  @,+	*	
 -+	*
  !  (  #{{3%@ 7 H  	 !6  	 4	 
 	 4  	!"8  	!"8  	  	,  	2  	"#:  	2  	"#:  	 !6  	$%>   	?! " 	.# $ +#:&@%>$*H)F(D,L$-.F$G; HD 'H(SSi  wA'gL O
  	s   c 
d0ddd)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   )gerar_termo_de_referencia)r   c                    U R                   R                  (       aO  U R                   R                  (       a4  [        R                  " U R                   R                  R
                  5        [        [        US9n[        X5      $ )Nr%   )	rr   rs   rt   r   ru   rv   r   r   r   )r   r   r(   s      r   gerar_termo_referencia_viewr     sP    ||$$)<)<gll11==>J7G$W66r   )J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   plotly.graph_objs
graph_objsr   	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   )calculotermica.relatorio_termo_referenciar   relatorio_termo_referenciar    r   r   <module>r      s    6 " $ ) !   #   " Y 0 n n v v  :  1    - 	 
   9 #QT QTn B  & B   P / "   9 A7 7r   