
    /gG                     N   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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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 Z;y)    )renderget_object_or_404)Projeto)Ambiente)DadosTermicos)Parede)Vidro)PortaMadeira
PortaVidro)Telhado   )CalculoTermica)calcular_carga_termica_paredecalcular_carga_insolacao_parede)calcular_cargas_vidros)$calcular_carga_termica_porta_madeira&calcular_carga_insolacao_porta_madeira"calcular_carga_termica_porta_vidro$calcular_carga_insolacao_porta_vidro)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)settingsc                    t        t        |      }t        t        ||      }t        t        |      }t        j
                  j                  |      }t        j
                  j                  |      }t        j
                  j                  |      }t        j
                  j                  |      }	t        j
                  j                  |      }
t        |      \  }}}|j                  }|j                  |j                  nd}t        |      }t        |j                   |j"                        }t%        |j&                  |j(                        }t+        |j                   |j"                  |j&                  |j(                        }t-        ||||      }t/        ||||j0                  |      }i }i }t3        |||      \  }}i }i }i }i }t5        ||
|      \  }}g d} g d}!t7        j8                  t;        |!            }"t7        j8                  t;        |!            }#|D ]_  }$| D ]X  }%t=        ||$||%      }&t?        |$|%      }'|"t7        j@                  |&      z  }"|#t7        j@                  |'      z  }#|&||% <   |'||% <   Z a |"|#z   }(|"|#|(d})t7        j8                  t;        |!            }*t7        j8                  t;        |!            }+|jC                         D ]  \  }%}&|*t7        j@                  |&      z  }* |jC                         D ]  \  }%}'|+t7        j@                  |'      z  }+ |*|+z   },|*|+|,d	}-t7        j8                  t;        |!            }.t7        j8                  t;        |!            }/|D ]_  }0| D ]X  }%tE        ||0||%      }1tG        |0|%      }2|1||% <   |2||% <   |.t7        j@                  |1      z  }.|/t7        j@                  |2      z  }/Z a |.|/z   }3|.|/|3d
}4t7        j8                  t;        |!            }5t7        j8                  t;        |!            }6|	D ]_  }7| D ]X  }%tI        ||7||%      }8tK        |7|%      }9|8||% <   |9||% <   |5t7        j@                  |8      z  }5|6t7        j@                  |9      z  }6Z a |5|6z   }:|5|6|:d};t7        j8                  t;        |!            }<t7        j8                  t;        |!            }=i }i }|
D ]p  }>tM        ||>|      }?tO        ||>|      }@|?|d|>jP                   <   |@|d|>jP                   <   |<t7        j@                  |?      z  }<|=t7        j@                  |@      z  }=r |<|=z   }A|<|=|Ad}BtS        |      }Ct7        j8                  t;        |!            }Dt7        j8                  t;        |!            }Et7        j8                  t;        |!            }Ft7        j8                  t;        |!            }Gd|Cv rDt7        j@                  Cd         z  }DdCv rEt7        j@                  Cd         z  }EdCv rFt7        j@                  Cd         z  }FdCv rGt7        j@                  Cd         z  }GDEFGd}H|(|,z   |3z   |:z   Az   |Dz   |z   |Fz   |Gz   }I|E|z   }J|J|Iz   }KtU        |K      }LtV        jX                  j[                  t\        j^                  d|j`                         }MtW        jb                  |Md       tV        jX                  j[                  |M|jd                   d      }N|!|K|J|Id}Otg        jh                  |O      }P|Pjk                  |Ndd       |Kdz  }Qg d}!tm        jn                         }R|Rjq                  tm        jr                  |!|Kddd             |Rjq                  tm        jr                  |!|Qdd d!             |Rju                  d"d#tw        dtw        d$%      tw        d$%      d&'      tw        d tw        d(%      tw        d(%      d)d*+      d,-       ty        jz                  |Rd.      }Si d/|d0|d1|)d2|-d3|4d4|;d5Bd6|Hd7|d8|d9|d:|d;|d<|d=|d>|d?||C||||||!|||I|J|K|Lt}        |S      d@}Tt        | dA|T      S )BN)id)r$   projeto)ambienter   )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)r,   r-   total_vidro_calculo)r,   r-   total_porta_madeira_calculo)r,   r-   total_porta_vidro_calculotelhado_)r,   r-   total_telhado_calculocarga_sensivel_totalcarga_latente_totalcarga_iluminacaocarga_equipamentos)r4   r5   r6   r7   z!arquivos_cargas_termicas/projeto_T)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 Diar9   z#1f77b4)colorleft)title	titlefonttickfontsidez#ff7f0er?   right)rF   rG   rH   
overlayingrI   plotly_white)rF   xaxis_titlerB   yaxis2template)	full_htmlr%   r&   cargas_totais_paredescargas_totais_vidroscargas_totais_portas_madeiracargas_totais_portas_vidrocargas_totais_telhadoscargas_totais_ambientecargas_termocargas_insolacaocargas_termo_vidroscargas_insolacao_vidroscargas_termo_portas_madeiracargas_insolacao_portas_madeiracargas_termo_portas_vidrocargas_insolacao_portas_vidro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_totalz+calculotermica/resultados_cargatermica.html)@r   r   r   r   r   objectsfilterr	   r
   r   r   r   temperatura_internarh   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   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!   r   )Urequest
projeto_idambiente_idr%   r&   termicosparedesvidrosportas_madeiraportas_vidrotelhadostemperaturas_externasumidade_absoluta_externacalor_latente_aguarq   rh   ri   rb   rc   rd   re   rf   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   orientacoesrg   total_carga_termica_paredestotal_carga_insolacao_paredesparede
orientacaocarga_termicacarga_insolacaor.   rQ   total_carga_termica_vidrostotal_carga_insolacao_vidrosr/   rR   "total_carga_termica_portas_madeira$total_carga_insolacao_portas_madeiraporta_madeiracarga_termica_porta_madeiracarga_insolacao_porta_madeirar0   rS    total_carga_termica_portas_vidro"total_carga_insolacao_portas_vidroporta_vidrocarga_termica_porta_vidrocarga_insolacao_porta_vidror1   rT   total_carga_termica_telhadostotal_carga_insolacao_telhadostelhadocarga_termica_telhadocarga_insolacao_telhador3   rU   ra   r4   r5   r6   r7   rV   rj   rk   rl   rm   caminho_basecaminho_arquivodadosdfcarga_termica_total_ambiente_trfigrn   contextosU                                                                                        -C:\grfgraph\atual\cag\calculotermica\views.pyresultados_ambiente_termicar   #   s	   J7G k7KH BHnn##X#6G]]!!8!4F!))00(0CN%%,,h,?L%%x%8H
 KiisJtG35G"66
 $+#3#3#?wQH(2L
 6h6H6H(J]J]^1(2I2I8KbKbcO>H//1H1H(JaJa "E')<>U" !C ))! L3I*V\^f3g00"$&(# "$&!7OPZ\dfn7o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-)@&+-88CM+B( (%J*Nz[hjrt~*',RS`bl,m) <W':,8?\+zl< /"((;V2WW.0BHH=Z4[[0 & ( #EGk"k  B!E'B$  (*xxH'>$)+#h-)@& $%J(J:Wbdlnx(y%*N{\f*g' :S%6=X)ZL: -9R0SS,."((;V2WW. & $ !ACe e  @!C%>" $&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 09O)P QQ/rxx8M(NOO_,BHH_5G%HII.bhh7K'LMM !52,0	 		#	$ 	"	" 			
 		 	#	# 		 		 # 	!	" "
 %BDb$b '*+G'H$ 77<< 1 15VW^WkWkVl3mnL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	#
 	'(D# 	%&@# 	!"8# 	!"8# 	# 	,# 	2# 	"#:# 	&'B# 	*+J# 	$%>#  	()F!#" 	 !6##$ &?*.*#:&@%>$*H)F(D,L$-.F$GA#HJ 'H(SS    )<django.shortcutsr   r   projeto.modelsr   ctermica.modelsr   termicos.modelsr   paredes.modelsr   vidros.modelsr	   portas.modelsr
   r   telhados.modelsr   modelsr   cargasparedesr   r   cargasvidrosr   cargasportasr   r   r   r   cargastelhadosr   r   r   cargastermicosr   r   r   r   r   r   r   pandasr   r    numpyrw   plotly.graph_objs
graph_objsr   	plotly.ioior   django.utils.safestringr!   r}   csvdjango.confr"   r    r   r   <module>r      sj    6 " $ ) !  2 # " Y 0  w v  :  1    - 	 
  DTr   