Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -16,6 +16,7 @@ from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
|
|
16 |
from docx.shared import Inches
|
17 |
import plotly.io as pio
|
18 |
from pandas.plotting import table
|
|
|
19 |
|
20 |
#-----------------#
|
21 |
|
@@ -607,14 +608,19 @@ def avaliacao_imovel(planilha, num_linhas_desejadas=3, finalidade='Defina o tipo
|
|
607 |
Número de dados utilizados: {num} dados
|
608 |
Valor Crítico (Chauvenet): {vc}
|
609 |
Outliers: {dados_outliers} dado(s)
|
610 |
-
Média saneada: {media}
|
611 |
-
Valor máximo: {valor_hom_máximo}
|
612 |
-
Valor mínimo: {valor_hom_mínimo}
|
613 |
-
Lim superior (Média*1,3): {limite_superior}
|
614 |
-
Lim inferior (Média*0,7): {limite_inferior}
|
615 |
-
Desvio padrão: {desvio_padrao}
|
616 |
Coeficiente variação: {coef_variacao} %
|
617 |
"""
|
|
|
|
|
|
|
|
|
|
|
618 |
|
619 |
# INTEREVALO DE CONFIANÇA DE 80%
|
620 |
# importando a tabela de t de student
|
@@ -645,14 +651,18 @@ def avaliacao_imovel(planilha, num_linhas_desejadas=3, finalidade='Defina o tipo
|
|
645 |
# Crie uma string formatada com o INTEREVALO DE CONFIANÇA DE 80%
|
646 |
intervalo_confiança = f"""
|
647 |
t student: {tc}
|
648 |
-
Média saneada: {media}
|
649 |
-
|
650 |
-
|
651 |
-
|
652 |
-
|
653 |
Grau de Fundamentação {fundamentacao}
|
654 |
Grau de Precisão: {precisao}
|
655 |
"""
|
|
|
|
|
|
|
|
|
656 |
|
657 |
# VALOR CALCULADO A PARTIR DOS VALORES HOMOGENEIZADOS UTILIZANDO O CRITÉRIO DE CLASSAS D0 ABUNAHMAN
|
658 |
# dividindo a amplitude em 3 classes
|
@@ -696,20 +706,26 @@ def avaliacao_imovel(planilha, num_linhas_desejadas=3, finalidade='Defina o tipo
|
|
696 |
area = df_avaliando['Área Construída'].item()
|
697 |
else:
|
698 |
area = df_avaliando['Área Terreno'].item()
|
|
|
699 |
valores_finais = f"""
|
700 |
-
Área avaliando: {area} m²
|
701 |
---------
|
702 |
-
Valor (média simples): R$ {Valor_imóvel}
|
703 |
-
LI: R$ {LI}
|
704 |
-
LS: R$ {LS}
|
705 |
-
Vu (média simples): R
|
706 |
---------
|
707 |
-
Valor (critério classes): R$ {Valor_imóvel_2}
|
708 |
-
LI: R$ {LI_classes}
|
709 |
-
LS: R$ {LS_classes}
|
710 |
-
Vu (critério classes): R
|
711 |
-
|
712 |
"""
|
|
|
|
|
|
|
|
|
|
|
|
|
713 |
#-----------------#
|
714 |
|
715 |
# criação de strings p/ relatórios (interface/word) dos campos do responsável, introdução, região, diagnóstico e avalaliando.
|
@@ -731,10 +747,10 @@ def avaliacao_imovel(planilha, num_linhas_desejadas=3, finalidade='Defina o tipo
|
|
731 |
aval_infos = f"""
|
732 |
Latitude: {df_avaliando['lat'].iloc[0]}
|
733 |
Longitude: {df_avaliando['lon'].iloc[0]}
|
734 |
-
Atratividade local: {df_avaliando['Atratividade local'].iloc[0]}
|
735 |
-
|
736 |
-
|
737 |
-
|
738 |
Topografia: {df_avaliando['Topografia'].iloc[0]}
|
739 |
Relevo: {df_avaliando['Relevo'].iloc[0]}
|
740 |
Superfície: {df_avaliando['Superfície'].iloc[0]}
|
@@ -743,11 +759,11 @@ def avaliacao_imovel(planilha, num_linhas_desejadas=3, finalidade='Defina o tipo
|
|
743 |
Idade aparente e conservação: {df_avaliando['Idade aparente e conservação'].iloc[0]}
|
744 |
Padrão construtivo: {df_avaliando['Padrão construtivo'].iloc[0]}
|
745 |
Vagas: {df_avaliando['Vagas'].iloc[0]}
|
746 |
-
Coeficiente extra: {df_avaliando['Coeficiente extra'].iloc[0]}
|
747 |
"""
|
748 |
regiao = f"""
|
749 |
-
Infraestrutura: {infra}
|
750 |
-
Serviços públicos: {serv}
|
751 |
Uso: {uso}
|
752 |
Padrão predominante na região: {pad_reg}
|
753 |
Tipo de via de acesso: {tipo_via}
|
@@ -907,6 +923,11 @@ def avaliacao_imovel(planilha, num_linhas_desejadas=3, finalidade='Defina o tipo
|
|
907 |
|
908 |
# Definir o título do documento
|
909 |
doc.add_heading('Relatório de Avaliação de Imóvel', level=1)
|
|
|
|
|
|
|
|
|
|
|
910 |
|
911 |
# Definir as seções do relatório
|
912 |
sections = [
|
@@ -972,7 +993,7 @@ interface = gr.Interface(
|
|
972 |
|
973 |
# Características da Região
|
974 |
gr.Textbox(label="Pressupostos, Ressalvas e Fatores Limitantes", value="-"),
|
975 |
-
gr.Dropdown(["Água Potável", "Energia Elétrica", "Telefone", "Pavimentação", "Esgoto Pluvial",
|
976 |
"Iluminação Pública"], value=["Água Potável"], multiselect=True, label="Infraestrutura Urbana"),
|
977 |
gr.Dropdown(["Coleta de Lixo", "Transporte Coletivo", "Comércio", "Educação", "Saúde"],
|
978 |
value=["Coleta de Lixo"], multiselect=True, label="Serviços Públicos"),
|
|
|
16 |
from docx.shared import Inches
|
17 |
import plotly.io as pio
|
18 |
from pandas.plotting import table
|
19 |
+
#from docx.shared import RGBColor
|
20 |
|
21 |
#-----------------#
|
22 |
|
|
|
608 |
Número de dados utilizados: {num} dados
|
609 |
Valor Crítico (Chauvenet): {vc}
|
610 |
Outliers: {dados_outliers} dado(s)
|
611 |
+
Média saneada: R$ {media:,.2f} /m²
|
612 |
+
Valor máximo: R$ {valor_hom_máximo:,.2f} /m²
|
613 |
+
Valor mínimo: R$ {valor_hom_mínimo:,.2f} /m²
|
614 |
+
Lim superior (Média*1,3): R$ {limite_superior:,.2f} /m²
|
615 |
+
Lim inferior (Média*0,7): R$ {limite_inferior:,.2f} /m²
|
616 |
+
Desvio padrão: R$ {desvio_padrao:,.2f} /m²
|
617 |
Coeficiente variação: {coef_variacao} %
|
618 |
"""
|
619 |
+
# Substituindo ponto por vírgula
|
620 |
+
resultados_formatados = resultados_formatados.replace('.', '@')
|
621 |
+
resultados_formatados = resultados_formatados.replace(',', '.')
|
622 |
+
resultados_formatados = resultados_formatados.replace('@', ',')
|
623 |
+
|
624 |
|
625 |
# INTEREVALO DE CONFIANÇA DE 80%
|
626 |
# importando a tabela de t de student
|
|
|
651 |
# Crie uma string formatada com o INTEREVALO DE CONFIANÇA DE 80%
|
652 |
intervalo_confiança = f"""
|
653 |
t student: {tc}
|
654 |
+
Média saneada: R$ {media:,.2f} /m²
|
655 |
+
Limite inferior: R$ {li_IC:,.2f} /m²
|
656 |
+
Limite inferior: R$ {ls_IC:,.2f} /m²
|
657 |
+
Amplitude: R$ {A} /m²
|
658 |
+
Amplitude percentual: {A_perc} %
|
659 |
Grau de Fundamentação {fundamentacao}
|
660 |
Grau de Precisão: {precisao}
|
661 |
"""
|
662 |
+
# Substituindo ponto por vírgula
|
663 |
+
intervalo_confiança = intervalo_confiança.replace('.', '@')
|
664 |
+
intervalo_confiança = intervalo_confiança.replace(',', '.')
|
665 |
+
intervalo_confiança = intervalo_confiança.replace('@', ',')
|
666 |
|
667 |
# VALOR CALCULADO A PARTIR DOS VALORES HOMOGENEIZADOS UTILIZANDO O CRITÉRIO DE CLASSAS D0 ABUNAHMAN
|
668 |
# dividindo a amplitude em 3 classes
|
|
|
706 |
area = df_avaliando['Área Construída'].item()
|
707 |
else:
|
708 |
area = df_avaliando['Área Terreno'].item()
|
709 |
+
|
710 |
valores_finais = f"""
|
711 |
+
Área avaliando: {area:,.2f} m²
|
712 |
---------
|
713 |
+
Valor (média simples): R$ {Valor_imóvel:,.2f}
|
714 |
+
LI: R$ {LI:,.2f}
|
715 |
+
LS: R$ {LS:,.2f}
|
716 |
+
Vu (média simples): R$ {media:,.2f} /m²
|
717 |
---------
|
718 |
+
Valor (critério classes): R$ {Valor_imóvel_2:,.2f}
|
719 |
+
LI: R$ {LI_classes:,.2f}
|
720 |
+
LS: R$ {LS_classes:,.2f}
|
721 |
+
Vu (critério classes): R$ {media_pond:,.2f} /m²
|
|
|
722 |
"""
|
723 |
+
|
724 |
+
# Substituindo ponto por vírgula
|
725 |
+
valores_finais = valores_finais.replace('.', '@')
|
726 |
+
valores_finais = valores_finais.replace(',', '.')
|
727 |
+
valores_finais = valores_finais.replace('@', ',')
|
728 |
+
|
729 |
#-----------------#
|
730 |
|
731 |
# criação de strings p/ relatórios (interface/word) dos campos do responsável, introdução, região, diagnóstico e avalaliando.
|
|
|
747 |
aval_infos = f"""
|
748 |
Latitude: {df_avaliando['lat'].iloc[0]}
|
749 |
Longitude: {df_avaliando['lon'].iloc[0]}
|
750 |
+
Atratividade local: {str(df_avaliando['Atratividade local'].iloc[0]).replace(".", ",")}
|
751 |
+
area_construida = {str(df_avaliando['Área Construída'].iloc[0]).replace(".", ",")} m²
|
752 |
+
area_terreno = {str(df_avaliando['Área Terreno'].iloc[0]).replace(".", ",")} m²
|
753 |
+
testada = {str(df_avaliando['Testada'].iloc[0]).replace(".", ",")} m
|
754 |
Topografia: {df_avaliando['Topografia'].iloc[0]}
|
755 |
Relevo: {df_avaliando['Relevo'].iloc[0]}
|
756 |
Superfície: {df_avaliando['Superfície'].iloc[0]}
|
|
|
759 |
Idade aparente e conservação: {df_avaliando['Idade aparente e conservação'].iloc[0]}
|
760 |
Padrão construtivo: {df_avaliando['Padrão construtivo'].iloc[0]}
|
761 |
Vagas: {df_avaliando['Vagas'].iloc[0]}
|
762 |
+
Coeficiente extra: {str(df_avaliando['Coeficiente extra'].iloc[0]).replace(".", ",")}
|
763 |
"""
|
764 |
regiao = f"""
|
765 |
+
Infraestrutura: {str(infra).replace("[", "").replace("]", "").replace("'", "")}
|
766 |
+
Serviços públicos: {str(serv).replace("[", "").replace("]", "").replace("'", "")}
|
767 |
Uso: {uso}
|
768 |
Padrão predominante na região: {pad_reg}
|
769 |
Tipo de via de acesso: {tipo_via}
|
|
|
923 |
|
924 |
# Definir o título do documento
|
925 |
doc.add_heading('Relatório de Avaliação de Imóvel', level=1)
|
926 |
+
|
927 |
+
# Definir a cor do texto para preto
|
928 |
+
#for paragraph in doc.paragraphs:
|
929 |
+
#for run in paragraph.runs:
|
930 |
+
#run.font.color.rgb = RGBColor(0, 0, 0) # RGB para a cor preta
|
931 |
|
932 |
# Definir as seções do relatório
|
933 |
sections = [
|
|
|
993 |
|
994 |
# Características da Região
|
995 |
gr.Textbox(label="Pressupostos, Ressalvas e Fatores Limitantes", value="-"),
|
996 |
+
gr.Dropdown(["Água Potável", "Energia Elétrica", "Telefone", "Pavimentação", "Esgoto Pluvial", "Esgoto Cloacal",
|
997 |
"Iluminação Pública"], value=["Água Potável"], multiselect=True, label="Infraestrutura Urbana"),
|
998 |
gr.Dropdown(["Coleta de Lixo", "Transporte Coletivo", "Comércio", "Educação", "Saúde"],
|
999 |
value=["Coleta de Lixo"], multiselect=True, label="Serviços Públicos"),
|