-
Notifications
You must be signed in to change notification settings - Fork 0
/
San_Bas_SNIS_ONU.Rmd
646 lines (474 loc) · 30.5 KB
/
San_Bas_SNIS_ONU.Rmd
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
---
title: "Avaliação dos Avanços de Rondonópolis (MT) em Relação ao Objetivo de Desenvolvimento Sustentável 6 (ODS 6) – Água Potável e Saneamento"
author: "Camily Nunes dos Santos"
output:
html_document:
toc: true # Ativa o índice
toc_float:
collapsed: false # Expande o índice automaticamente
smooth_scroll: true # Rolagem suave ao clicar no índice
position: "left" # Posição
theme: cosmo # Tema Bootstrap para o HTML
highlight: tango # Destacar a sintaxe em R
css: "estilo.css" # Arquivo CSS personalizado
---
```{r capa, echo=FALSE, out.width="30%", fig.align='center'}
# Adicione o logotipo da universidade na capa
knitr::include_graphics("https://ufr.edu.br/protic/wp-content/uploads/2022/04/PROEXA-branco.png") # Substitua com o caminho para a imagem do logotipo
```
# 1. Intro
O Objetivo de Desenvolvimento Sustentável 6 (ODS 6), definido pela Organização das Nações Unidas, busca assegurar a disponibilidade e a gestão sustentável da água potável e do saneamento para todos até 2030. Diante dessa meta global, este artigo se propõe a avaliar o progresso do município de Rondonópolis, no Mato Grosso, em relação às metas específicas do ODS 6. Além do objetivo de avaliação, a motivação para o estudo reflete a curiosidade de compreender o nível de alinhamento do município com essas metas, mesmo considerando a limitação de dados disponíveis. Essa visão local é essencial, pois pode tanto orientar prefeituras e unidades prestadoras de serviços (água e esgoto) em suas políticas como servir de exemplo para a adequação de outros municípios.
A análise prioriza as metas 6.1 e 6.2 do ODS 6, pois ambas tratam diretamente as áreas centrais para o estudo das condições de saneamento básico. A Meta 6.1 visa alcançar o acesso universal e equitativo à água potável e segura até 2030, com foco no fornecimento de água de qualidade para toda a população. A Meta 6.2, por sua vez, abrange o acesso a saneamento e higiene adequados, o que inclui tanto o fornecimento de serviços de esgoto quanto a disponibilidade de instalações para lavagem das mãos com água e sabão.
Essas duas metas são fundamentais para avaliar a situação de Rondonópolis no que se refere ao saneamento básico e às necessidades de infraestrutura. As outras metas do ODS 6 (6.3, 6.4, 6.5, 6.6, 6.a e 6.b) também abordam questões relacionadas à água, mas incluem aspectos mais amplos, como a gestão de recursos hídricos, qualidade ambiental e a preservação de ecossistemas hídricos. A análise destas outras metas poderá ser objeto de estudos futuros, permitindo um panorama ainda mais completo do setor de saneamento e água no município.
# 2. Objetivo
O estudo visa verificar se o município de Rondonópolis está caminhando na direção das metas do ODS 6, com foco em:
6.1: Acesso universal e equitativo à água potável segura;\
6.2: Acesso a saneamento e higiene adequados e equitativos, eliminando a defecação a céu aberto;\
6.3: Melhoria da qualidade da água e aumento da reciclagem e reutilização; 6.4: Eficiência no uso da água e redução da escassez de água; 6.5: Implementação da gestão integrada dos recursos hídricos; 6.6: Proteção e restauração de ecossistemas aquáticos; 6.7: Ampliação da cooperação internacional para apoio técnico e capacitação; 6.8: Fortalecimento da participação comunitária na gestão da água e saneamento.
# 3. Metodologia
Esta seção descreve as etapas de preparação e análise dos dados para avaliar o progresso de Rondonópolis em relação às metas do ODS 6. O processo metodológico inclui a instalação e carregamento de pacotes, carregamento dos dados e tratamento dos dados do SNIS para selecionar as variáveis de interesse.
## 3.1 Instalar e Carregar Pacotes
Para realizar a análise, utilizamos uma série de pacotes no R, essenciais para manipulação, visualização e análise de dados geoespaciais e de séries temporais. Os pacotes usados incluem ggplot2 para visualizações, dplyr para manipulação de dados, plotly para gráficos interativos, entre outros.
- **Instalar Pacotes (se necessário):**
Primeiramente, verificamos se os pacotes necessários estão instalados. Caso não estejam, são instalados automaticamente.
```{r}
# Lista de pacotes necessários
pacotes <- c("ggplot2", "dplyr", "tidyr", "plotly", "readr", "zoo", "censobr", "geobr", "sf", "httr", "jsonlite")
# Instalar os pacotes que ainda não estão instalados
pacotes_nao_instalados <- pacotes[!(pacotes %in% installed.packages()[,"Package"])]
if(length(pacotes_nao_instalados)) install.packages(pacotes_nao_instalados)
```
- **Carregamento dos Pacotes**:
Após garantir que todos os pacotes estão instalados, eles são carregados no ambiente R.
```{r}
invisible(lapply(pacotes, function(pkg) {
if (!require(pkg, character.only = TRUE)) {
stop(paste("Falha ao carregar o pacote:", pkg))
}
}))
```
Esses pacotes garantem uma base sólida para o carregamento, manipulação e visualização dos dados que serão utilizados na análise.
## 3. 2 Carregar os Dados
Os dados utilizados neste estudo foram extraídos do Sistema Nacional de Informações sobre Saneamento (SNIS) e estão hospedados em um repositório do GitHub. Para assegurar a reprodutibilidade, o código carrega diretamente o arquivo CSV a partir da URL fornecida.
- **Fonte dos Dados**: Repositório GitHub da pesquisadora.
- **Formato do Arquivo**: Arquivo CSV com separador `;` e codificação `ISO-8859-1`, que permite a leitura correta de caracteres em português.
```{r}
url <- "https://github.com/CamilyNunes/Produto_San_Bas_Roo/raw/refs/heads/main/Dados/SNIS%20-%20S%C3%A9rie%20Hist%C3%B3rica/Agregado-20240925161723-SNISMT.csv"
san_mt <- read_delim(url, delim = ";", locale = locale(encoding = "ISO-8859-1"))
```
## 3. 3 Tratamento dos Dados
Após o carregamento, realizamos o tratamento dos dados para selecionar as colunas de interesse e garantir que os indicadores relevantes para o estudo estejam bem organizados. Esse processo inclui a seleção das variáveis de saneamento e o filtro para a cidade de Rondonópolis.
- **Desabilitar Notação Científica:** Para garantir que os números não sejam representados em notação científica:
```{r}
options(scipen = 999)
```
- **Seleção de Colunas de Interesse**: Escolhemos apenas as colunas que contêm indicadores fundamentais para a análise de saneamento em Rondonópolis, como população atendida com água, consumo per capita de água e índices de coleta e tratamento de esgoto.
Selecionar colunas de interesse:
```{r}
# selecionar variaveis de referencia
san <- san_mt[,c(1:10)]
```
1. Água:
```{r}
san$Pop_total_atendida_abas_agua <- san_mt$`AG001 - População total atendida com abastecimento de água`
san$Pop_urbana_atendida_abas_agua <- san_mt$`AG026 - População urbana atendida com abastecimento de água`
san$Pop_rural_atendida_abas_agua <- san_mt$`AG025A - População rural atendida com abastecimento de água no ano anterior ao de referência.`
san$Consumo_agua_percapita <- san_mt$`IN022 - Consumo médio percapita de água`
san$Atendimento_total_percentual <- san_mt$`IN055 - Índice de atendimento total de água`
```
2. Esgoto e Coleta de lixo:
```{r}
#6.2(a)
san$Pop_total_atendida_esgotamento_sanitario <- san_mt$`ES001 - População total atendida com esgotamento sanitário`
san$Pop_urbana_atendida_esgotamento_sanitario <- san_mt$`ES026 - População urbana atendida com esgotamento sanitário`
san$Qtd_ligacoes_ativas <-san_mt$`ES002 - Quantidade de ligações ativas de esgotos`
#6.2(b)
san$Pop_urbana_residente_esgotamento_sanitario <- san_mt$`G06B - População urbana residente do(s) município(s) com esgotamento sanitário`
san$Indice_tratamento_esgoto_percentual <- san_mt$`IN016 - Índice de tratamento de esgoto`
#outros
san$Indice_coleta_esgoto <- san_mt$`IN015 - Índice de coleta de esgoto`
san$Volume_esgoto_coletado_m3 <- san_mt$`ES005 - Volume de esgotos coletado`
san$Volume_esgoto_tratado <- san_mt$`ES006 - Volume de esgotos tratado`
```
Diferença entre as variaveis com a descrição de 'atendida' e 'com (abastecimento)':
Atendida (acesso a água potável segura): Implica não apenas a presença de um sistema de abastecimento, mas também a garantia de que a água é potável, segura e gerida adequadamente.
Com abastecimento de água: Refere-se ao simples fornecimento de água, sem garantir que ela seja tratada ou que atenda aos padrões de segurança e qualidade para consumo humano.
- **Filtragem por Município:**
A seguir, filtramos os dados para o município de Rondonópolis, que é o foco deste estudo.
```{r}
# Filtrando a cidade de Rondonópolis
san_roo <- san[san$Município == "Rondonópolis", ]
```
- **Padronização das Colunas**:
Para facilitar a interpretação, renomeamos algumas colunas, garantindo a consistência no conjunto de dados.
```{r}
# Supondo que a coluna em uma das tabelas esteja com um nome diferente, renomeie para padronizar
san_roo <- san_roo %>%
rename(`Ano` = `Ano de Referência`)
```
Esse tratamento garante que os dados estejam prontos para análise, permitindo explorar os indicadores de forma estruturada e analisar o progresso do município em relação às metas do ODS 6.
# 4. Análise dos Dados
Nesta seção, exploramos os dados de saneamento básico e consumo de água para o município de Rondonópolis, com o objetivo de avaliar seu progresso em relação às metas do ODS 6. A análise inclui a visualização da qualidade e completude dos dados, o cálculo de indicadores fundamentais e a criação de gráficos interativos que facilitam a interpretação e exploração dos dados ao longo do tempo.
## 4.1 Análise de Valores Ausentes
Para garantir a consistência e confiabilidade da análise, é importante identificar e visualizar a proporção de valores ausentes em cada variável do conjunto de dados. Isso permite uma melhor compreensão de possíveis lacunas de dados que possam afetar os resultados.
- **Gráfico de Proporção de Valores Ausentes**:
Abaixo, geramos um gráfico de barra empilhada que mostra a proporção de valores presentes e ausentes para cada atributo relevante. Esse gráfico indica quais variáveis precisam de atenção adicional em termos de completude de dados.
```{r}
# 1. Criar uma função que calcula a proporção de valores omissos (NA) por coluna
calc_missing_proportion <- function(df) {
missing_data <- sapply(df, function(col) {
mean(is.na(col))
})
missing_df <- data.frame(
Atributo = names(missing_data),
ProporcaoOmissos = missing_data)
missing_df <- missing_df %>%
filter(ProporcaoOmissos > 0)
return(missing_df)
}
# 2. Calcular a proporção de valores omissos no conjunto de dados
missing_proportions <- calc_missing_proportion(san_roo)
# 3. Preparar os dados para a plotagem em forma de gráfico de barra empilhada
plot_data <- missing_proportions %>%
mutate(Presentes = 1 - ProporcaoOmissos) %>%
pivot_longer(cols = c(ProporcaoOmissos, Presentes),
names_to = "Valores",
values_to = "Proporcao")
# 4. Definir as cores de acordo com seu Tema dos Gráficos
cor_omisso <- "#FF6347"
cor_presente <- "#006400"
# 5. Criar o gráfico de coluna empilhada em 100% e inverter os eixos
gg <- ggplot(plot_data, aes(x = Proporcao,
y = Atributo,
fill = Valores )) +
geom_bar(stat = "identity", position = "fill") +
scale_x_continuous(labels = scales::percent) +
labs(
title = "Proporção de Valores Omissos por Atributo",
x = "Proporção (%)",
y = "Atributos") +
scale_fill_manual(values = c("ProporcaoOmissos" = cor_omisso, "Presentes" = cor_presente),
labels = c("Valores Presentes", "Valores Omissos")) +
theme_minimal() +
theme(
axis.title.x = element_text(size = 14, face = "bold", color = "black"),
axis.title.y = element_text(size = 14, face = "bold", color = "black", angle = 90),
plot.title = element_text(size = 16, face = "bold", hjust = 0.5),
plot.subtitle = element_text(size = 12, hjust = 0.5),
panel.grid.major = element_line(color = "grey85"),
panel.grid.minor = element_blank())
# Salvar o gráfico em um arquivo PNG
ggsave(
filename = 'grafico_proporcao_omissos.png',
plot = gg,
path = 'resultados',
width = 8,
height = 4,
units = 'in')
# 6. Converter o gráfico ggplot em um gráfico interativo com plotly
interactive_plot <- ggplotly(gg)
# 7. Mostrar o gráfico interativo
interactive_plot
```
O gráfico acima permite identificar rapidamente as variáveis com valores ausentes. As variáveis com maiores proporções de omissão indicam potenciais lacunas nos dados do SNIS, que devem ser consideradas nas interpretações dos resultados.
```{r}
# 1. Extração da Variável de Interesse
# A variável 'datavar' contém o consumo per capita de água em litros por habitante por dia.
datavar <- san_roo$Consumo_agua_percapita
# 2. Armazenamento do Dataset Completo
# A variável 'data' recebe o dataset 'san' completo.
# Isso permite o uso de todos os dados na análise subsequente.
data <- san_roo
# 3. Definição da Legenda para Gráficos
# Define a legenda para as visualizações que utilizam a variável 'datavar'.
# A legenda indica que a variável representa o "Consumo Percapita de Água" em litros por habitante por dia.
legendavar <- 'Consumo Percapita de Água (l/hab/dia)'
# Definição de chave para a média
chave <- 'media'
```
## 4. Funções de Suporte para Gráficos
```{r}
# Função para limpar strings, removendo espaços, caracteres especiais e acentos
cleanStr <- function(string) {
# Carregar pacotes necessários apenas uma vez
if (!require(stringi)) install.packages("stringi", quietly = TRUE)
if (!require(stringr)) install.packages("stringr", quietly = TRUE)
# Limpar e normalizar a string
string <- str_replace_all(string, ' ', '_')
string <- str_replace_all(string, '-', '_')
string <- str_replace_all(string, '%', '')
string <- str_replace_all(string, '/', '_')
string <- stri_trans_general(string, "latin-ascii")
string <- tolower(string)
return(string)
}
```
## 5. Definir Tema Personalizado para Gráficos (ggplot2)
```{r}
tema_plot <- function(dataTime, legendavar, chave) {
# Criar gráfico básico de linha com o tema minimalista
plot <- ggplot(data = dataTime, aes(x = tempo, y = x, group = 1)) +
geom_line(color = "#006400", size = 1.2) + # Linha na cor verde-escura
geom_label(aes(label = label), size = 3, color = "#006400", nudge_y = 0.5) + # Rótulos em verde-escuro
labs(
title = "Evolução Temporal de Rondonópolis (MT)",
subtitle = legendavar,
x = "Ano", # Legenda para o eixo X
y = legendavar # Legenda para o eixo Y
) +
scale_x_continuous(
breaks = seq(from = min(dataTime$tempo), to = max(dataTime$tempo), by = 1),
limits = c(min(dataTime$tempo), max(dataTime$tempo)),
expand = c(0, 0) # Remover margens extras
) +
scale_color_distiller(palette = "Greens", direction = 1) + # Paleta de cores Greens
theme_minimal() %+replace% # Manter um tema minimalista com os eixos
theme(
axis.title.x = element_text(size = 10, face = "bold", color = "black"), # Legenda do eixo X
axis.title.y = element_text(size = 10, face = "bold", color = "black", angle = 90), # Legenda Y na vertical
axis.text.x = element_text(size = 10, angle = 45, hjust = 1), # Texto do eixo X com rotação
axis.text.y = element_text(size = 10), # Texto do eixo Y
plot.title = element_text(size = 14, face = "bold", hjust = 0.5), # Título centralizado
plot.subtitle = element_text(size = 12, hjust = 0.5), # Subtítulo centralizado
panel.grid.major.x = element_blank(), # Remover linhas de grid principais do eixo X
panel.grid.major.y = element_line(color = "grey85"), # Linhas de grid principais do eixo Y
panel.grid.minor = element_blank(), # Remover grid secundário
legend.position = "none" # Sem legenda adicional
)
# Agregar escala Y caso solicitado
if (chave == 'agregar') {
plot <- plot + scale_y_continuous(limits = range(dataTime$x, na.rm = TRUE))
}
# Salvar o gráfico em um arquivo PNG
ggsave(
filename = paste0('grafico_', cleanStr(legendavar), '.png'),
plot = plot,
path = 'resultados',
width = 8,
height = 4,
units = 'in')
# Converta o gráfico ggplot em um gráfico interativo
plot_interativo <- ggplotly(plot)
return(plot_interativo)
}
```
```{r}
dev01 <- function(data, datavar, chave, legendavar) {
if (chave == 'agregar') {
# agregar valores
dataTime = aggregate(datavar, by = list(tempo = as.numeric(data$`Ano`)), FUN = sum)
} else if (chave == 'media') {
# tirar media valores
dataTime = aggregate(datavar, by = list(tempo = as.numeric(data$`Ano`)), FUN = mean)
dataTime$x = round(dataTime$x, 2)
} else {
stop("Chave não encontrada! Tente 'agregar' ou 'media'.")
}
# label
dataTime$label <- NA
n <- min(5, nrow(dataTime)) #Seleciona no máximo 5 pontos
idx <- seq(1, nrow(dataTime), length.out = n)
dataTime$label[idx] <- dataTime$x[idx]
# A coluna 'x' precisa ser definida aqui
colnames(dataTime)[2] <- "x" # Renomeia a coluna para 'x'
# gráfico
plot = tema_plot(dataTime, legendavar, chave)
return(plot)
}
```
# Água Potável e Saneamento
Garantir disponibilidade e manejo sustentável da água e saneamento para todos
## Meta 6.1
Até 2030, alcançar o acesso universal e equitativo a água potável e segura para todos.
Em relação ao múnicipio de Rondonópolis é possível acompanhar a seríe hístorica de abastecimento de água durante o periodo de 2000 a 2022, como é apresentado no gráfico a seguir, apresentando um aumento de habitantes de rondonópolis com abastecimento de água, saindo de 145.600 habitantes em 2000 a 244.911 em 2022.
```{r}
dev01(san_roo, san_roo$Pop_total_atendida_abas_agua, 'media','Pop. total com Abastecimento de Água')
dev01(san_roo, san_roo$Consumo_agua_percapita, 'media','Consumo Percapita de Água (l-hab-dia)')
```
# Meta 6.1.1: Proporção da População com Água Potável
Na seção, estamos realizando uma análise para calcular a proporção da população de Rondonópolis que tem acesso a água potável gerida de forma segura, utilizando dados do município e da população. O objetivo é verificar o percentual da população atendida por serviços de água potável que são gerenciados de maneira segura ao longo dos anos.
O Indicador 6.1.1 mensura a proporção da população que utiliza serviços de água potável gerenciados de forma segura. A definição de "seguro" para o abastecimento de água envolve:
- Fonte aprimorada de água: Isso inclui redes gerais de distribuição de água, poços artesianos, poços rasos protegidos, nascentes protegidas e até mesmo água de chuva armazenada.
- Localização da água: A água deve estar disponível no domicílio ou na propriedade do residente.
- Disponibilidade e segurança: A água deve ser disponível conforme a necessidade da população e livre de contaminação fecal ou química.
A seguir, detalhamos as etapas envolvidas nesse processo.
## 1. Filtragem e Preparação dos Dados
O primeiro passo é filtrar os dados para o intervalo de anos de interesse (2001 a 2021) e selecionar as colunas relevantes, como o ano e a quantidade de população atendida por serviços de água potável. A coluna de população atendida pode conter caracteres especiais, como vírgulas ou pontos, que são removidos para garantir que a variável seja numérica. Este é o código utilizado:
```{r}
# Filtrar os dados para o intervalo de anos e selecionar as colunas desejadas
san_meta <- san_roo %>%
dplyr::filter(`Ano` >= 2001 & `Ano` <= 2021) %>%
dplyr::select(
`Ano`,
`Pop_total_atendida_abas_agua`,
`Pop_urbana_atendida_abas_agua`,
`Pop_rural_atendida_abas_agua`) %>%
dplyr::mutate(
Pop_total_atendida_abas_agua = as.numeric(gsub("[.,]", "", Pop_total_atendida_abas_agua)),
Pop_urbana_atendida_abas_agua = as.numeric(gsub("[.,]", "", Pop_urbana_atendida_abas_agua)),
Pop_rural_atendida_abas_agua = as.numeric(gsub("[.,]", "", Pop_rural_atendida_abas_agua)))
```
## 2. Coleta de Dados de População
Para calcular a proporção, também precisamos dos dados de população total de Rondonópolis, que são extraídos da API SIDRA do IBGE. O código utiliza o código da tabela 6579, que fornece estimativas anuais de população:
```{r}
# URL da API do SIDRA para população de Rondonópolis
url <- "https://apisidra.ibge.gov.br/values/t/6579/p/all/n6/5107602"
# Requisitar dados da API
resposta <- GET(url)
populacao_rondonopolis <- fromJSON(content(resposta, "text"))
```
## 3. Preparação dos Dados de População
A resposta da API do SIDRA contém várias colunas, mas estamos interessados apenas nas colunas de ano e população total. As colunas são extraídas e convertidas para o formato numérico:
```{r}
# Selecionar colunas relevantes, incluindo o código do município
pop_total <- populacao_rondonopolis %>%
select(Ano = D1N, Populacao = V) %>%
mutate(Ano = as.numeric(Ano),
Populacao = as.numeric(Populacao))
```
## 4. Unindo os Dados e Calculando a Proporção
Com os dados de população de Rondonópolis e os dados de atendimento por água potável já preparados, unimos as duas fontes de informação com base no ano. Em seguida, calculamos a proporção da população atendida por serviços de água potável, dividindo o número de pessoas atendidas pela população total de cada ano e multiplicando por 100 para obter o percentual:
```{r}
san_bas <- inner_join(san_meta, pop_total, "Ano")
```
```{r}
# Criar novas colunas com a divisão das variáveis de população atendida por abastecimento de água pela população total
meta61 <- san_bas %>%
mutate(
Pop_total_atendida_pct = (Pop_total_atendida_abas_agua / Populacao) * 100,
Pop_urbana_atendida_pct = (Pop_urbana_atendida_abas_agua / Populacao) * 100,
Pop_rural_atendida_pct = (Pop_rural_atendida_abas_agua / Populacao) * 100)
```
```{r}
# gráfico de barras
grafico_barras <- meta61 %>%
ggplot(aes(x = Ano)) +
# População total atendida
geom_bar(aes(y = Pop_total_atendida_pct, fill = "Total", text = paste0(round(Pop_total_atendida_pct, 2), "%")),
stat = "identity", position = "dodge", width = 0.8) +
# População urbana atendida
geom_bar(aes(y = Pop_urbana_atendida_pct, fill = "Urbana", text = paste0(round(Pop_urbana_atendida_pct, 2), "%")),
stat = "identity", position = "dodge", width = 0.8) +
# População rural atendida
geom_bar(aes(y = Pop_rural_atendida_pct, fill = "Rural", text = paste0(round(Pop_rural_atendida_pct, 2), "%")),
stat = "identity", position = "dodge", width = 0.8) +
scale_fill_manual(values = c("Total" = "#FF9999", "Urbana" = "#66B3FF", "Rural" = "#99FF99")) + # Definindo cores diferentes
labs(
title = "População Atendida por Abastecimento de Água",
x = "Ano",
y = "Porcentagem (%)",
fill = "Tipo de População"
) +
theme_minimal() +
theme(
legend.position = "top",
plot.title = element_text(size = 16, face = "bold"),
axis.title = element_text(size = 12),
axis.text = element_text(size = 10),
plot.margin = margin(1, 1, 1, 1, "cm")
)
# Tornar o gráfico interativo
grafico_interativo <- ggplotly(grafico_barras, tooltip = "text")
# Exibir o gráfico interativo
grafico_interativo
# Salvar o gráfico como JPG na pasta "resultados"
ggsave(
filename = "resultados/grafico_pop_atendida.jpg",
plot = grafico_barras,
width = 10,
height = 6,
units = "in",
dpi = 300
)
```
## 5. Resultado Esperado
O resultado final dessa análise será uma nova coluna chamada perc_pop_atendida, que representa a porcentagem da população atendida por água potável gerida de forma segura para cada ano entre 2001 e 2021. Com isso, conseguimos observar como essa proporção variou ao longo do tempo e avaliar o progresso da cidade em relação à meta 6.1 da ODS 6, que busca garantir acesso universal e equitativo à água potável até 2030.
Essa análise é importante porque nos permite verificar não apenas o número de pessoas atendidas, mas também a evolução dessa cobertura ao longo dos anos, fornecendo uma visão crítica sobre os avanços ou lacunas na implementação de políticas públicas de saneamento.
# Meta 6.2 - Acesso a Saneamento e Higiene Adequados até 2030
A Meta 6.2 da ODS 6 visa alcançar, até 2030, o acesso universal e equitativo a saneamento e higiene adequados para todos, com especial atenção para as necessidades de mulheres, meninas e indivíduos em situação de vulnerabilidade. Esta meta também busca erradicar a prática da defecação a céu aberto. Os indicadores para essa meta incluem:
6.2(a): Proporção da população que utiliza serviços de saneamento geridos de forma segura.
6.2(b): Proporção da população com acesso a instalações de lavagem de mãos com água e sabão.
## Indicador 6.2(a): Proporção da População com Saneamento Seguro
Para calcular a proporção da população que utiliza serviços de saneamento geridos de forma segura, considera-se a população atendida com esgoto tratado como indicador de saneamento seguro.
No caso do Sistema Nacional de Informações sobre Saneamento (SNIS), as variáveis relevantes para esse cálculo incluem:
ES001: População total atendida com esgotamento sanitário: : Esta variável informa a quantidade de população que é atendida com serviços de esgoto, seja com coleta ou tratamento de esgoto.
ES026 - População urbana atendida com esgotamento sanitário: Se você deseja analisar especificamente a população urbana, esta variável é mais indicada.
ES002 - Quantidade de ligações ativas de esgotos: Embora não forneça diretamente a população atendida, ela pode ser útil para entender a infraestrutura de saneamento, que é um fator importante para o atendimento com esgoto.
A fórmula para calcular a proporção de população com acesso a esgoto tratado é:
No código abaixo, são realizadas as operações para calcular essa proporção:
```{r}
# Filtrar os dados para o intervalo de anos e selecionar as colunas desejadas
san_meta62a <- san_roo %>%
dplyr::filter(`Ano` >= 2001 & `Ano` <= 2021) %>%
dplyr::select(
`Ano`,
`Pop_total_atendida_esgotamento_sanitario`,
`Pop_urbana_atendida_esgotamento_sanitario`,
`Qtd_ligacoes_ativas`) %>%
dplyr::mutate(
Pop_total_atendida_esgotamento_sanitario = as.numeric(gsub("[.,]", "", Pop_total_atendida_esgotamento_sanitario)),
Pop_urbana_atendida_esgotamento_sanitario = as.numeric(gsub("[.,]", "", Pop_urbana_atendida_esgotamento_sanitario)),
Qtd_ligacoes_ativas = as.numeric(gsub("[.,]", "", Qtd_ligacoes_ativas)))
```
```{r}
san_meta62a <- inner_join(san_meta62a, pop_total, "Ano")
```
```{r}
# Criar novas colunas com a divisão das variáveis de população atendida por abastecimento de água pela população total
san_meta621a <- san_meta62a %>%
mutate(
Pop_total_atendida_esgotamento_sanitario_pct = (Pop_total_atendida_esgotamento_sanitario / Populacao) * 100,
Pop_urbana_atendida_esgotamento_sanitario_pct = (Pop_urbana_atendida_esgotamento_sanitario / Populacao) * 100)
```
```{r}
grafico_barras <- san_meta621a %>%
ggplot(aes(x = Ano)) +
# Barra para a população total atendida por esgoto sanitário
geom_bar(aes(y = Pop_total_atendida_esgotamento_sanitario_pct, fill = "Total",
text = paste0(round(Pop_total_atendida_esgotamento_sanitario_pct, 2), "%")),
stat = "identity", position = "dodge") +
# Barra para a população urbana atendida por esgoto sanitário
geom_bar(aes(y = Pop_urbana_atendida_esgotamento_sanitario_pct, fill = "Urbana",
text = paste0(round(Pop_urbana_atendida_esgotamento_sanitario_pct, 2), "%")),
stat = "identity", position = "dodge") +
labs(
title = "População Atendida por Esgoto Sanitário",
x = "Ano",
y = "Porcentagem (%)",
fill = "Tipo de População") +
theme_minimal() +
theme(
legend.position = "top",
plot.title = element_text(size = 16, face = "bold"),
axis.title = element_text(size = 12),
axis.text = element_text(size = 10))
# Tornar o gráfico interativo
grafico_interativo <- ggplotly(grafico_barras, tooltip = "text")
# Exibir o gráfico interativo
grafico_interativo
# Salvar o gráfico como JPG na pasta "resultados"
ggsave(
filename = "resultados/grafico_pop_atendida_esgoto.jpg",
plot = grafico_barras,
width = 10,
height = 6,
units = "in",
dpi = 300)
```
##6.2(b)
Indicador 6.2(b): Proporção da População com Acesso a Instalações de Lavagem de Mãos
Embora o SNIS não forneça uma variável direta sobre o acesso a instalações de lavagem de mãos com água e sabão, é possível inferir esse acesso a partir dos dados sobre cobertura de água e esgoto. O acesso a esgoto tratado pode ser um indicativo indireto de que as instalações de lavagem de mãos também estão disponíveis, já que, em geral, municípios com infraestrutura de saneamento também possuem sistemas de água e higiene adequados.
A variável mais diretamente relacionada para a meta 6.2(b) seria:
G06B: População urbana residente do município com esgotamento sanitário.
Embora a análise direta de instalações de lavagem de mãos exija dados complementares ou mais específicos, o acesso ao esgoto tratado pode servir como um indicador aproximado.
Descrição das Variáveis:
O volume de esgoto coletado (ES005) refere-se à quantidade de esgoto recolhida no sistema de saneamento, enquanto o volume de esgoto tratado (ES006) é o que passa por algum processo de tratamento antes de ser lançado no meio ambiente.
Unidades de Medida: Especifique as unidades, geralmente metros cúbicos (m³) ou litros.
Cálculo da Razão de Tratamento: Calcule a proporção do volume tratado em relação ao coletado
(ES006/ES005)×100% para cada período e/ou região, o que evidencia a eficiência do sistema de tratamento.
```{r}
dev01(san_roo, san_roo$Volume_esgoto_coletado_m3, 'media','Volume Esgoto Coletado (m³)')
dev01(san_roo, san_roo$Volume_esgoto_tratado, 'media', 'Volume Esgoto Tratado (m³)')
dev01(san_roo, san_roo$Indice_coleta_esgoto, 'agregar','Índice de Coleta de Esgoto')
dev01(san_roo, san_roo$Indice_tratamento_esgoto_percentual, 'agregar','Índice Tratamento de Esgoto')
```