TERRITORIAL / app.py
ESJL's picture
Update app.py
ed58e51 verified
import numpy as np
import gradio as gr
import MOD_V_TCOND_Z4_008C
import terrenos_2026 # Importa o arquivo ajustado
with gr.Blocks(title="Modelos Territoriais") as bloco:
with gr.Tabs():
# --- ABA 1: MODELO EXISTENTE ---
with gr.TabItem(MOD_V_TCOND_Z4_008C.title):
gr.Markdown(MOD_V_TCOND_Z4_008C.header_text)
with gr.Accordion("📋 Consultar Tabela de Infraestrutura (Clique para expandir)", open=False):
gr.Markdown(MOD_V_TCOND_Z4_008C.tabela_infra)
gr.HTML("<br>")
with gr.Row():
with gr.Column(scale=1, variant="panel"):
gr.Markdown("### ⚙️ Parâmetros de Entrada")
ATPRIV = gr.Number(value=168., label='Área de Terreno Privativa')
RH = gr.Number(value=38, label='Região Homogênea')
INFRA = gr.Number(value=5, label='Infraestrutura')
gr.Markdown("#### Anos de Referência")
with gr.Row():
with gr.Column():
ANO_2020 = gr.Checkbox(value=False, label='2020')
ANO_2021 = gr.Checkbox(value=False, label='2021')
ANO_2022 = gr.Checkbox(value=False, label='2022')
with gr.Column():
ANO_2023 = gr.Checkbox(value=False, label='2023')
ANO_2024 = gr.Checkbox(value=False, label='2024')
ANO_2025 = gr.Checkbox(value=True, label='2025')
text_button = gr.Button("🚀 Calcular Valor", variant="primary")
with gr.Column(scale=1):
gr.Markdown("### 📊 Resultados")
out_valor = gr.Textbox(label="Valor (R$/m²)", text_align="center")
with gr.Row():
out_lim_inf = gr.Textbox(label="Limite Inferior")
out_perc_inf = gr.Textbox(label="% Inf")
with gr.Row():
out_lim_sup = gr.Textbox(label="Limite Superior")
out_perc_sup = gr.Textbox(label="% Sup")
out_grafico = gr.Image(label="Gráfico", type="filepath")
gr.Markdown("### 🖨️ Exportação")
btn_pdf = gr.Button("📄 Gerar PDF", variant="secondary")
out_pdf = gr.File(label="Download", visible=False)
# Lógica da Aba 1
inputs_list = [ANO_2020, ANO_2021, ANO_2022, ANO_2023, ANO_2024, ANO_2025, RH, INFRA, ATPRIV]
outputs_list = [out_valor, out_lim_inf, out_perc_inf, out_lim_sup, out_perc_sup, out_grafico]
text_button.click(MOD_V_TCOND_Z4_008C.execute, inputs=inputs_list, outputs=outputs_list)
pdf_inputs = inputs_list + outputs_list
btn_pdf.click(MOD_V_TCOND_Z4_008C.gerar_pdf_relatorio, inputs=pdf_inputs, outputs=out_pdf)
# --- ABA 2: MODELO TERRITORIAL 2026 ---
with gr.TabItem("Avaliação de Terrenos (XGBoost)"):
terrenos_2026.render_terrenos_interface()
bloco.launch()