Geocodificação: de endereços para coordenadas espaciais
Uma vez que você tenha uma tabela (data.frame
) com
endereços, a geolocalização dos dados com {geocodebr}
pode ser feita em dois passos simples:
- O primeiro passo é utilizar a função
setup_address_fields()
para declarar os nomes das colunas no seudata.frame
que correspondem a cada campo dos endereços.
library(geocodebr)
# leitura de dados de input
input_df <- read.csv(system.file("extdata/small_sample.csv", package = "geocodebr"))
# 1o passo: indicar nome das colunas correspondento aos campos de endereço
fields <- geocodebr::setup_address_fields(
logradouro = "nm_logradouro",
numero = "Numero",
cep = "Cep",
bairro = "Bairro",
municipio = "nm_municipio",
estado = "nm_uf"
)
- O segundo passo é utilizar a função
geocode()
para encontrar as coordenadas geográficas dos endereços de entrada.
# 2o passo: geolocalização
df <- geocodebr::geocode(
addresses_table = input_df,
address_fields = fields,
n_cores = 1,
progress = FALSE
)
head(df)
#> id nm_logradouro Numero Cep Bairro
#> 1 1 RUA MARIA LUCIA PACIFICO 17 26042-730 SANTA RITA
#> 2 2 RUA LEOPOLDINA TOME 46 25030-050 CENTENARIO
#> 3 3 RUA DONA JUDITE 0 23915-700 CAPUTERA II
#> 4 4 RUA ALEXANDRE AMARAL 0 23098-120 SANTISSIMO
#> 5 5 AVENIDA E 300 23860-000 PRAIA GRANDE
#> 6 6 RUA PRINCESA ISABEL 263 69921-026 ESTACAO EXPERIMENTAL
#> nm_municipio code_muni nm_uf lon lat match_type
#> 1 NOVA IGUACU 3303500 RIO DE JANEIRO -43.47118 -22.695496 en01
#> 2 DUQUE DE CAXIAS 3301702 RIO DE JANEIRO -43.31134 -22.779173 en01
#> 3 ANGRA DOS REIS 3300100 RIO DE JANEIRO -44.20848 -22.978837 er01
#> 4 RIO DE JANEIRO 3304557 RIO DE JANEIRO -43.51150 -22.868992 er01
#> 5 MANGARATIBA 3302601 RIO DE JANEIRO -43.97214 -22.929864 en01
#> 6 RIO BRANCO 1200401 ACRE -67.83559 -9.963436 en01
#> precision
#> 1 number
#> 2 number
#> 3 street
#> 4 street
#> 5 number
#> 6 number
obs. Note que na primeira vez que o usuário usa essa fnução, {geocodebr} irá baixar alguns arquivos de referência e armaneza-los localmente. Assim, esses dados só precisam ser baixados uma única vez. Mais informações sobr o cache dos dados abaixo.
As coordendas espaciais do output usam sistema de referência ofical
do Brasil: SIRGAS2000, CRS(4674). Os resultados do {geocodebr} são
classificados em seis amplas categorias de precisão, dependendo de quão
exatamente cada endereço de entrada foi correspondido com os dados do
CNEFE. O grau de precisão é indicado em duas colunas da tabela de
output: precision
e match_type
. Mais
informações abaixo.
Categorias de Precisão: precision
Os resultados do {geocodebr} são classificados em
seis amplas categorias de precision
:
- “numero”
- “numero_interpolado”
- “rua”
- “cep”
- “bairro”
- “municipio”
-
NA
(não encontrado)
Cada nível de precisão pode ser desagregado em tipos de correspondência mais refinados.
Tipo de Correspondência: match_type
A coluna match_type
fornece informações mais detalhadas
sobre como exatamente cada endereço de entrada foi encontrado no CNEFE.
Em cada categoria, o {geocodebr} calcula a média da
latitude e longitude dos endereços incluídos no CNEFE que correspondem
ao endereço de entrada, com base em combinações de diferentes campos. No
caso mais rigoroso, por exemplo, a função encontra uma correspondência
determinística para todos os campos de um dado endereço
("estado"
, "municipio"
,
"logradouro"
, "numero"
, "cep"
,
"localidade"
). Pense, por exemplo, em um prédio com vários
apartamentos que correspondem ao mesmo endereço de rua e número. Nesse
caso, as coordenadas dos apartamentos podem diferir ligeiramente, e o
{geocodebr} calcula a média dessas coordenadas. Em um
caso menos rigoroso, no qual apenas os campos ("estado"
,
"municipio"
, "logradouro"
,
"localidade"
) são encontrados, o
{geocodebr} calcula as coordenadas médias de todos os
endereços no CNEFE ao longo daquela rua e que se encontram no mesmo
bairro. Assim, as coordenadas de resultado tendem a ser o ponto médio do
trecho daquela rua que passa dentro daquele bairro.
A lista completa dos níveis de precisão (precision
),
suas categorias de tipo de correspondência (match_type
) e
os campos de endereço considerados em cada categoria estão descritos
abaixo:
- precision: “numero”
- match_type:
- en01: logradouro, numero, cep e bairro
- en02: logradouro, numero e cep
- en03: logradouro, numero e bairro
- en04: logradouro e numero
- pn01: logradouro, numero, cep e bairro
- pn02: logradouro, numero e cep
- pn03: logradouro, numero e bairro
- pn04: logradouro e numero
- match_type:
- precision: “numero_interpolado”
- match_type:
- ei01: logradouro, numero, cep e bairro
- ei02: logradouro, numero e cep
- ei03: logradouro, numero e bairro
- ei04: logradouro e numero
- pi01: logradouro, numero, cep e bairro
- pi02: logradouro, numero e cep
- pi03: logradouro, numero e bairro
- pi04: logradouro e numero
- match_type:
- precision: “rua” (quando o número de entrada está
faltando ‘S/N’)
- match_type:
- er01: logradouro, cep e bairro
- er02: logradouro e cep
- er03: logradouro e bairro
- er04: logradouro
- pr01: logradouro, cep e bairro
- pr02: logradouro e cep
- pr03: logradouro e bairro
- pr04: logradouro
- match_type:
- precision: “cep”
- match_type:
- ec01: municipio, cep, localidade
- ec02: municipio, cep
- match_type:
- precision: “bairro”
- match_type:
- eb01: municipio, localidade
- match_type:
- precision: “municipio”
- match_type:
- em01: municipio
- match_type:
Nota: As categorias de
match_type
que começam com ‘p’ utilizam correspondência
probabilística do campo logradouro, enquanto os tipos que começam com
‘e’ utilizam apenas correspondência determinística. As
categorias de match_type
que usam correspondência
probabilística ainda não estão implementados no
{geocodebr}.
Cache de Dados
Na primeira vez que o usuário executar a função
geocode()
, o {geocodebr} irá baixar alguns arquivos de
referência e armazená-los localmente. Dessa forma, os dados precisam ser
baixados apenas uma vez. Vale lembrar que esses arquivos requerem
aproximadamente 4GB de espaço no seu disco local.
O pacote inclui as seguintes funções para ajudar os usuários a gerenciar os arquivos em cache:
-
get_cache_dir()
: retorna o caminho para onde os dados em cache estão armazenados. Por padrão, os arquivos são armazenados no diretório do pacote. -
set_cache_dir()
: define um diretório personalizado a ser usado. Essa configuração é persistente entre diferentes sessões do R. -
list_cached_data()
: lista todos os arquivos atualmente armazenados em cache. -
clean_cache_dir()
: exclui todos os arquivos do diretório de cache usado pelo {geocodebr}.