https://github.com/ipeagit/padronizacao_cnefe
https://github.com/ipeagit/padronizacao_cnefe
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/ipeagit/padronizacao_cnefe
- Owner: ipeaGIT
- Created: 2024-11-05T19:56:52.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2026-01-14T20:09:26.000Z (5 months ago)
- Last Synced: 2026-01-15T00:36:43.864Z (5 months ago)
- Language: R
- Size: 10.8 MB
- Stars: 1
- Watchers: 4
- Forks: 0
- Open Issues: 7
-
Metadata Files:
- Readme: README.Rmd
Awesome Lists containing this project
README
---
output: github_document
---
```{r, include = FALSE, message = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "figures/README-",
out.width = "100%"
)
source("_targets.R")
```
# CNEFE padronizado
Este repositório contém o código utilizado na padronização dos endereços
listados no CNEFE 2022. Essa padronização visa principalmente subsidiar o pacote
[`{geocodebr}`](https://github.com/ipeaGIT/geocodebr/), que faz a geolocalização
de endereços a partir das informações do CNEFE.
A divulgação e publicização desse repositório tem como objetivo garantir a
transparência do trabalho realizado. O código necessário para realizar a
padronização está disposto como explicado na seção *[Estrutura dos arquivos]* e
pode ser utilizado para reproduzir os resultados finais conforme as instruções
apresentadas na seção *[Rodando o código]*. No entanto, nós **não** garantimos a
total reprodutibilidade do trabalho, uma vez que usamos o pacote interno
`{ipeadatalake}` (apenas disponível na rede interna do IPEA) para fazer a
leitura dos dados do CNEFE. Além disso, o comportamento das funções utilizadas
no código está condicionado a diversos fatores, como a versão instalada do R e o
sistema operacional em que o código é rodado. Ao final deste documento nós
listamos informações relevantes do *[Ambiente de trabalho]* usado no
desenvolvimento do estudo.
## Instalação
A primeira etapa para rodar esse projeto é clonar o repositório. Para isso, use
o comando:
```
git clone https://github.com/ipeaGIT/padronizacao_cnefe.git
```
## Estrutura dos arquivos
Os arquivos que compõem este repositório foram organizados de forma que cada
pasta armazene arquivos com uma determinada finalidade:
- `R/` - código utilizado no projeto;
- `figures/` - figuras geradas ao rodar o código do projeto;
- `_targets/` - pasta utilizada pelo pacote `{targets}` para manter controle do
fluxo de trabalho do projeto;
- `renv/` - pasta utilizada pelo pacote `{renv}` para manter controle das
dependências do projeto.
## Rodando o código
Este projeto utiliza o pacote
[`{renv}`](https://rstudio.github.io/renv/index.html) para fazer a gestão de
dependências do código, garantindo que os mesmos pacotes usados em seu
desenvolvimento sejam usados na cópia a ser reproduzida em seu computador. Para
instalar as dependências, abra o projeto e rode o seguinte comando:
```r
renv::restore()
```
Nesse momento, uma série de pacotes serão listados e o `{renv}` pedirá para
confirmar se você deseja instalá-los. Após essa confirmação, os pacotes serão
instalados.
O pacote [`{targets}`](https://github.com/ropensci/targets), por sua vez, faz a
gestão do fluxo de trabalho do projeto. O arquivo `_targets.R` configura as
dependências entre as diferentes funções internas usadas no código, de forma a
garantir que o resultado de uma determinada função esteja sempre sincronizado
com o resultado de suas dependências (por exemplo, se configuramos que o
resultado da função `b()` depende do valor da função `a()`, precisamos atualizar
`b()` no caso de uma atualização de `a()`).
Rode o arquivo `_targets.R` com a função `source()` para carregar as bibliotecas
necessárias e configurar as dependências entre as funções e os objetos usados no
projeto. Para visualizar as dependências do código na forma de um grafo
dirigido, use o seguinte comando:
```{r, eval = FALSE}
source("_targets.R")
tar_visnetwork(targets_only = TRUE)
```
```{r, graph-outdated, echo = FALSE}
widget <- tar_visnetwork(targets_only = TRUE, store = "missing")
tmp_widget <- tempfile(fileext = ".html")
visNetwork::visSave(widget, tmp_widget)
tmp_image <- tempfile(fileext = ".png")
webshot::webshot(tmp_widget, file = tmp_image)
```
Note que todos os vértices do grafo estão marcados como desatualizados. Para que
eles sejam marcados como atualizados, é necessário rodar o *pipeline* do projeto
respeitando suas dependências (nos termos do exemplo anterior, rodando primeiro
a função `a()` e depois a `b()`, que depende dos resultados da `a()`). Para
isso, use o seguinte comando:
```{r, eval = FALSE}
tar_make()
```
Caso a execução deste comando ocorra como esperado, sem erros, o fluxo de
trabalho do projeto será marcado como atualizado. O mesmo comando de
visualização do grafo de dependências usado anteriormente pode ser usado para
checar se os vértices estão atualizados:
```{r, eval = FALSE}
tar_visnetwork(targets_only = TRUE)
```
```{r, graph-updated, echo = FALSE}
widget <- tar_visnetwork(targets_only = TRUE)
tmp_widget <- tempfile(fileext = ".html")
visNetwork::visSave(widget, tmp_widget)
tmp_image <- tempfile(fileext = ".png")
webshot::webshot(tmp_widget, file = tmp_image)
```
## Ambiente de trabalho
Clique aqui para ver as informações do ambiente de trabalho utilizado
no desenvolvimento do projeto.
```{r}
info <- sessioninfo::session_info()
info$packages$library <- NULL
info
```