# 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