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"),
|