DavidSB commited on
Commit
69e8b29
1 Parent(s): 1380cf4

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +67 -2
app.py CHANGED
@@ -86,7 +86,7 @@ def plotar_mapa_com_dois_dataframes(df1, df2):
86
  #-----------------#
87
 
88
  # Função de avaliação do imóvel
89
- def avaliacao_imovel(planilha, num_linhas_desejadas=10):
90
  # Lendo a aba 'avaliando' da planilha
91
  df_avaliando = pd.read_excel(planilha.name, 'avaliando')
92
 
@@ -348,6 +348,61 @@ def avaliacao_imovel(planilha, num_linhas_desejadas=10):
348
  # REMOÇÃO DE OUTLIERS PELO CRITÉRIO DE CHAUVENET
349
  result = result[result['Status'] != 'rejeitado']
350
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
351
  # RESULTADOS ESTATÍSTICOS FINAIS
352
 
353
  num = len(result)
@@ -407,6 +462,7 @@ def avaliacao_imovel(planilha, num_linhas_desejadas=10):
407
  limite superior IC_80%: {ls_IC} R$/m²
408
  Aplitude: {A} R$/m²
409
  Aplitude percentual: {A_perc} %
 
410
  Grau de Precisão: {precisao}
411
  """
412
 
@@ -517,6 +573,7 @@ def avaliacao_imovel(planilha, num_linhas_desejadas=10):
517
  'Limite inferior do IC de 80%': [li_IC],
518
  'Amplitude': [A],
519
  'Amplitude%':[A_perc],
 
520
  'Grau de Precisão': [precisao]
521
  })
522
 
@@ -604,6 +661,14 @@ interface = gr.Interface(
604
  inputs=[
605
  gr.components.File(label="Upload planilha", type="file"),
606
  gr.inputs.Number(label="Número de linhas desejadas", default=10),
 
 
 
 
 
 
 
 
607
  ],
608
  outputs=[
609
  gr.components.File(label="Download planilha"),
@@ -612,7 +677,7 @@ interface = gr.Interface(
612
  gr.components.Textbox(label="Resultados estatísticos"),
613
  gr.components.Textbox(label="Intervalo de confiança de 80%"),
614
  gr.components.Textbox(label="Valores Calculados"),
615
- gr.Plot(label="Geolocalização da amostra"), #novo
616
 
617
  ],
618
  live=True,
 
86
  #-----------------#
87
 
88
  # Função de avaliação do imóvel
89
+ def avaliacao_imovel(planilha, num_linhas_desejadas=10, caract_avaliando='Defina o item 1 de Fundamentação', ident_dados='Defina o item 1 de Fundamentação'):
90
  # Lendo a aba 'avaliando' da planilha
91
  df_avaliando = pd.read_excel(planilha.name, 'avaliando')
92
 
 
348
  # REMOÇÃO DE OUTLIERS PELO CRITÉRIO DE CHAUVENET
349
  result = result[result['Status'] != 'rejeitado']
350
 
351
+ # GRAU DE FUNDAMENTAÇÃO
352
+
353
+ # item_1 - Graus de Fundamentação (Caracterização do imóvel avaliando)
354
+ if caract_avaliando == "Completa quanto a todos os fatores analisados":
355
+ item_1 = 3
356
+ elif caract_avaliando == "Completa quanto aos fatores utilizados no tratamento":
357
+ item_1 = 2
358
+ else:
359
+ item_1 = 1
360
+
361
+ # item_2 - Graus de Fundamentação (Quantidade mínima de dados)
362
+ if num >= 12:
363
+ item_2 = 3
364
+ elif 5 <= num <12:
365
+ item_2 = 2
366
+ elif 3 <= num <5:
367
+ item_2 = 1
368
+ else:
369
+ item_2 = 0
370
+
371
+ # item_3 - Graus de Fundamentação (Identificação dos dados)
372
+ if ident_dados == "Apresentação de informações relativas a todas as características dos dados analisados, com foto e características observadas pelo autor do laudo":
373
+ item_3 = 3
374
+ elif ident_dados == "Apresentação de informações relativas a todas as características dos dados analisados":
375
+ item_3 = 2
376
+ else:
377
+ item_3 = 1
378
+
379
+ # item_4 - Graus de Fundamentação ( Intervalo admissível de ajuste para o conjunto de fatores)
380
+ max = result.iloc[:, 15:23].max().max()
381
+ min = result.iloc[:, 15:23].min().min()
382
+ if num >= 5:
383
+ if min >= 0.8 and max <= 1.2:
384
+ item_4 = 3
385
+ elif min >= 0.5 and max <= 2.0:
386
+ item_4 = 2
387
+ else:
388
+ item_4 = 1 # Condição ausente aqui
389
+ else:
390
+ if min >= 0.8 and max <= 1.2:
391
+ item_4 = 1
392
+ else:
393
+ item_4 = 0
394
+
395
+ # enquadramento
396
+ soma = item_1 + item_2 + item_3 + item_4
397
+ if soma > 10 and item_2 == 3 and item_4 == 3 and item_1 >= 2 and item_3 >= 2:
398
+ fundamentacao = "III"
399
+ elif soma > 6 and item_2 >= 2 and item_4 >= 2 and item_1 >= 1 and item_3 >= 1:
400
+ fundamentacao = "II"
401
+ elif soma > 4 and item_2 >= 1 and item_4 >= 1 and item_1 >= 1 and item_3 >= 1:
402
+ fundamentacao = "I"
403
+ else:
404
+ fundamentacao = "Fora dos critérios"
405
+
406
  # RESULTADOS ESTATÍSTICOS FINAIS
407
 
408
  num = len(result)
 
462
  limite superior IC_80%: {ls_IC} R$/m²
463
  Aplitude: {A} R$/m²
464
  Aplitude percentual: {A_perc} %
465
+ Grau de Fundamentação {fundamentacao}
466
  Grau de Precisão: {precisao}
467
  """
468
 
 
573
  'Limite inferior do IC de 80%': [li_IC],
574
  'Amplitude': [A],
575
  'Amplitude%':[A_perc],
576
+ 'Grau de Fundamentação': [fundamentacao],
577
  'Grau de Precisão': [precisao]
578
  })
579
 
 
661
  inputs=[
662
  gr.components.File(label="Upload planilha", type="file"),
663
  gr.inputs.Number(label="Número de linhas desejadas", default=10),
664
+ gr.inputs.Dropdown(label="Caracterização do avaliando - Grau de Fundamentação", choices=["Completa quanto a todos os fatores analisados",
665
+ "Completa quanto aos fatores utilizados no tratamento",
666
+ "Adoção de situação paradigma"],
667
+ default="Defina o item 1 de Fundamentação"),
668
+ gr.inputs.Dropdown(label="Identificação dos dados - Grau de Fundamentação", choices=["Apresentação de informações relativas a todas as características dos dados analisados, com foto e características observadas pelo autor do laudo",
669
+ "Apresentação de informações relativas a todas as características dos dados analisados",
670
+ "Apresentação de informações relativas a todas as características dos dados correspondentes aos fatores analisados"],
671
+ default="Defina o item 3 de Fundamentação")
672
  ],
673
  outputs=[
674
  gr.components.File(label="Download planilha"),
 
677
  gr.components.Textbox(label="Resultados estatísticos"),
678
  gr.components.Textbox(label="Intervalo de confiança de 80%"),
679
  gr.components.Textbox(label="Valores Calculados"),
680
+ gr.Plot(label="Geolocalização da amostra"),
681
 
682
  ],
683
  live=True,