
    {gH                        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
 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 d
dlmZmZ d
dlmZ d
dlmZmZmZ d
dlmZm Z m!Z! d
dl"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z( d
dlm)Z) d dl*Z+d
dl"m,Z, d dl-Z.d dl/m0Z1 d dl2m3Z4 d dl5m6Z6 d dl7Z7d dl8Z8d dl9m:Z: d dl;m<Z< d dl=m>Z> e<d             Z?d
dl@mAZA e<d             ZBd
dlCmDZD e<d             ZEdS )    )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                    | j         j        r/| j         j        r#t          j        | j         j        j                   t          t          |          }t          t          ||          }t          t          |          }t          j                            |          }t          j                            |          }t          j                            |          }t          j                            |          }		 t!          |          \  }
}}nN# t"          $ rA}t%          j        | t)          |                     t+          | d||dd          cY d }~S d }~ww xY wt!          |          \  }
}}|j        }|j        |j        nd}t1          |          }t3          |j        |j                  }t9          |j        |j                  }t?          |j        |j        |j        |j                  }tA          ||
||          }tC          ||||j"        |          }i }i }tG          |||          \  }}i }i }tI          ||	|          \  }}g d	}g d
}tK          j&        tO          |                    } tK          j&        tO          |                    }!|D ]c}"|D ]^}#tQ          ||"||#          }$tS          |"|#          }%| tK          j*        |$          z  } |!tK          j*        |%          z  }!|$||# <   |%||# <   _d| |!z   }&| |!|&d}'tK          j&        tO          |                    }(tK          j&        tO          |                    })|+                                D ]\  }#}$|(tK          j*        |$          z  }(|+                                D ]\  }#}%|)tK          j*        |%          z  })|(|)z   }*|(|)|*d}+tK          j&        tO          |                    },tK          j&        tO          |                    }-i }i }|D ]c}|D ]^}#tY          ||||#          }.t[          ||#          }/|.||# <   |/||# <   |,tK          j*        |.          z  },|-tK          j*        |/          z  }-_d|,|-z   }0|,|-|0d}1tK          j&        tO          |                    }2tK          j&        tO          |                    }3i }i }|	D ]l}4t]          ||4|          }5t_          ||4|          }6|5|d|4j0         <   |6|d|4j0         <   |2tK          j*        |5          z  }2|3tK          j*        |6          z  }3m|2|3z   }7|2|3|7d}8tc          |          }9tK          j&        tO          |                    }:tK          j&        tO          |                    };tK          j&        tO          |                    }<tK          j&        tO          |                    }=tK          j&        tO          |                    }>tK          j&        tO          |                    }?d|9v r|:tK          j*        |9d                   z  }:d|9v r|;tK          j*        |9d                   z  };d|9v r|<tK          j*        |9d                   z  }<d|9v r|=tK          j*        |9d                   z  }=d|9v r|>tK          j*        |9d                   z  }>d|9v r|?tK          j*        |9d                   z  }?|:|;|<|=|>|?d}@|&|*z   |0z   |7z   |z   |<z   |=z   |>z   }A|;|z   }B|B|Az   }Cte          |C          }Dtf          j4        5                    tl          j7        d|j8                   }Etg          j9        |Ed           tf          j4        5                    |E|j:         d          }F||C|B|Ad}Gtw          j<        |G          }H|H=                    |Fdd           |Cdz  }Ig d
}t}          j?                    }J|J@                    t}          jA        ||Cdd d!"                     |J@                    t}          jA        ||Idd#d$"                     |JB                    d%d&t          d t          d'(          t          d'(          d)*          t          d#t          d+(          t          d+(          d,d-.          d/0           t          jE        |Jd1          }Ki d2|d3|d4|'d5|+d6|1d7|8d8|@d9|d:|d;|d<|d=|d>|d?|d@|dA|9dB|||||||||A|B|C|Dt          |K          dC}Lt+          | d|L          S )DN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left)title	titlefonttickfontsidez#ff7f0erD   right)rK   rL   rM   
overlayingrN   plotly_white)rK   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)Guseris_authenticatedtenantr   
set_schemaschema_namer   r   r   r   r   objectsfilterr	   r
   r   r   FileNotFoundErrorr#   errorstrr   temperatura_internarj   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{   rj   rk   rd   re   rf   rg   rh   r[   r\   r]   r^   r_   r`   ra   rb   orientacoesri   total_carga_termica_paredestotal_carga_insolacao_paredesparede
orientacaocarga_termicacarga_insolacaor2   rV   total_carga_termica_vidrostotal_carga_insolacao_vidrosr3   rW   total_carga_termica_portastotal_carga_insolacao_portascarga_termica_portacarga_insolacao_portar4   rX   total_carga_termica_telhadostotal_carga_insolacao_telhadostelhadocarga_termica_telhadocarga_insolacao_telhador6   rY   rc   r7   r8   r9   r:   r;   r<   rZ   rl   rm   rn   ro   caminho_basecaminho_arquivodadosdfcarga_termica_total_ambiente_trfigrp   contextosM                                                                                )/var/www/html/cag/calculotermica/views.pyresultados_ambiente_termicar   #   s    |$ ?)< ?gl1=>>>J777G k7KKKH BBBHn##X#66G]!!8!44FM  ( 33E%%x%88H
NlmwNxNxK79K9K   wA'''gL O
 O
   	 	 	 	 	 	 KiisJtJtG35G"6
 $+#3#?wQH(22L
 6h6H(J]^^1(2I8KbccO>H/1H(Ja  "E')<>U" " !C )! ! ! L3I*V\^f3g3g007OPZ\dfn7o7o44444K E  E  EH
 #%(3x=="9"9$&HS]]$;$;!  @ @% 	@ 	@J9*fhXbccM=fjQQO (28M+B+BB')RXo-F-FF) -:LJ)0?
_--	@ 79VV  ;!> 4  "$#h--!8!8#%8CMM#:#:  &9%>%>%@%@ > >!
M"bh}&=&==""'>'D'D'F'F B B#
O$(A(AA$$ 57SS9!=2  "$#h--!8!8#%8CMM#:#:     L L% 	L 	LJ">z5RZ\f"g"g$B5*$U$U! 4G:07L#zO4 '"(3F*G*GG&(BH5J,K,KK((	L 68TT  :!= 4  $&8CMM#:#: %'Xc(mm%<%<"  "  L L >z7T\ ] ]"B:wX`"a"a :O5556=T!"9WZ"9"9: 	%1F(G(GG$&"(3J*K*KK&& 9;YY  <!?!6  8AAO 8CMM22(3x==11xH..#h--00Xc(mm44HS]]33 009O)P Q QQ//rx8M(NOOO_,,BH_5G%HIII..bh7K'LMMM?22"(?;S+T"U"UU/11/:Q*R!S!SS !52,0"8!6  			 		
 	#	# 		 		 		 #( 	!	" "
 %BDb$b '*+G'H'H$ 7<< 13ipi}33  A  ALKt,,,,gll<H4J1e1e1effO )E*G,J	 E 
e		B KKuZK@@@ 'CT&I# E  E  EH
)++C MM"*

&'      MM"*

)(      @,+++	***	
 
 
 -+++	***
 
 
  !    (  #{3%@@@ 7 H  	 !6  	 4	 
 	 4  	!"8  	!"8  	  	,  	2  	"#:  	2  	"#:  	 !6  	$%>   	?! " 	.# $ +#:&@%>$*H)F(D,L$-.F$G$G;     HD 'H(SSSs    D 
E6EEE)gerar_relatorio_completoc                     | j         j        r/| j         j        r#t          j        | j         j        j                   t          t          |          }t          t          ||          }t          | ||          }|S Nr%   r'   )
rq   rr   rs   r   rt   ru   r   r   r   r   r   r   r   r(   r)   responses         r   relatorio_completo_viewr     t     |$ ?)< ?gl1=>>>J777G k7KKKH ([IIHO    )gerar_relatorio_resumidoc                     | j         j        r/| j         j        r#t          j        | j         j        j                   t          t          |          }t          t          ||          }t          | ||          }|S r   )
rq   rr   rs   r   rt   ru   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   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    r   r   <module>r      s   6 6 6 6 6 6 6 6 " " " " " " $ $ $ $ $ $ ) ) ) ) ) ) ! ! ! ! ! !             # # # # # #             " " " " " " Y Y Y Y Y Y Y Y 0 0 0 0 0 0 n n n n n n n n n n v v v v v v v v v v                : 9 9 9 9 9     1 1 1 1 1 1                 - - - - - - 				 



             9 9 9 9 9 9 # # # # # #FT FT FTX B A A A A A   & B A A A A A    r   