File size: 2,887 Bytes
75c6e74
 
a832d75
75c6e74
 
a832d75
75c6e74
a832d75
 
75c6e74
 
a832d75
 
75c6e74
 
a832d75
 
75c6e74
 
a832d75
 
 
 
75c6e74
 
a832d75
 
 
 
 
 
 
 
75c6e74
 
 
a832d75
 
75c6e74
 
 
 
 
a832d75
75c6e74
 
 
 
 
 
 
 
 
 
 
 
a832d75
 
75c6e74
 
a832d75
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98

# load_process.py
import os
import pandas as pd
import geopandas as gpd
from download_data import get_data_file

def load_bairros():
    return gpd.read_file(get_data_file("shape_bairros.gpkg"))


def load_coleta():
    return gpd.read_file(get_data_file("shape_coleta.gpkg"))


def load_descartes():
    return gpd.read_file(get_data_file("Pontos_descartes_ML.gpkg"))


def load_tabelas():
    df1 = pd.read_csv(get_data_file("tabela_total_com_DIEs.csv"))
    df2 = pd.read_csv(get_data_file("Bairros_Ncoleta.csv"))
    return df1, df2


def load_files(ponto_descarte=None):
    # Leitura dos dados principais
    gdf = gpd.read_file(get_data_file("shape_bairros.gpkg")).rename(columns={'NM_BAIRRO': 'Bairro'})

    df1 = pd.read_csv(get_data_file("tabela_total_com_DIEs.csv"))
    df2 = pd.read_csv(get_data_file("Bairros_Ncoleta.csv"))

    # Merge das tabelas
    df = df1.merge(df2, on='Bairro', how='left')
    gdf_m = gdf.merge(df, on='Bairro', how='left')

    # % de moradores sem renda
    gdf_m['NS'] = (gdf_m['Mor'] - gdf_m['N_ren']) / gdf_m['Mor']
    colunas = list(gdf_m.columns)
    colunas.remove('NS')
    colunas.insert(7, 'NS')
    gdf_m = gdf_m[colunas]

    # Classificação de risco
    def categorizar_dies(dies):
        if dies == 0:
            return 1
        elif 1 <= dies <= 3:
            return 2
        elif 4 <= dies <= 6:
            return 3
        else:
            return 4

    gdf_m['Risco'] = gdf_m['DIEs'].apply(categorizar_dies)

    # Dados para gráficos
    df_plot = gdf_m.drop(columns=['geometry', 'V_setores_val'])
    list_feature = df_plot.drop(columns='Risco').select_dtypes(include=['number']).columns

    feat_options = [{'label': f, 'value': f, 'description': None} for f in list_feature]

    descr = [
        'Área do Bairro (km²)',
        'Número Total de Habitações',
        'Número Total de Moradores',
        'Relação Moradores/Habitação',
        'Número de Moradores com Renda',
        '% de moradores sem renda',
        'Renda média do Morador',
        'Mediana da renda do Morador',
        'Taxa de alfabetização',
        'IDH Renda',
        'IDH Longevidade',
        'IDH Educação',
        'Índice de Desenvolvimento Humano',
        'Quantidade de Depósitos Irregulares',
        'Concentração de riqueza por área',
        'Percentual da população com rendimento',
        'Quantidade estimada de Depósitos Irregulares',
        'Média de dias de coleta de lixo',
        'Quantidade de setores/rotas de coleta'
    ]

    for i, d in enumerate(descr):
        if i < len(feat_options):
            feat_options[i]['description'] = d

    if ponto_descarte:
        gdf_p = gpd.read_file(
            get_data_file("Pontos_descartes_ML.gpkg")
        )
        return gdf_m, df_plot, list_feature, feat_options, gdf_p

    return gdf_m, df_plot, list_feature, feat_options