Skip to content

ipeaGIT/geocodepro

Repository files navigation

geocodepro

Disponibiliza funções que facilitam a utilização da ferramenta de geolocalização do ArcGIS Pro no R.

Instalação

geocodepro não está no CRAN, e provavelmente nem vai estar no futuro. Pra instalar o pacote, use o código abaixo:

# install.packages("remotes")
remotes::install_github("ipeaGIT/geocodepro")

O pacote também precisa de uma licença válida e ativa do ArcGIS Pro na máquina em que o código está sendo rodado.

Utilização

O geocodepro funciona através da interface entre o ArcGIS Pro e a linguage de programação Python. Para isso, ele utiliza a biblioteca arcpy através do pacote {reticulate}. É necessário que nós utilizemos a mesma versão e as mesmas bibliotecas de Python que o ArcGIS Pro usa, portanto para isso nós precisamos apontar para o ambiente de programação do ArcGIS com a função use_condaenv() do {reticulate} (isso pode ser feito tanto antes quanto depois de carregar o geocodepro, mas deve ser feito antes de utilizar suas funções).

reticulate::use_condaenv(
  "C://Program Files/ArcGIS/Pro/bin/Python/envs/arcgispro-py3"
)

Antes de utilizarmos o pacote, precisamos primeiro aponta o ambiente de trabalho adequado pra isso A principal função do pacote é a geocode(). Ela tem como principais inputs uma tabela de endereços e um arquivo que aponta para o localizador utilizado pela ferramenta para fazer a correspondência com os endereços. É necessário também indicar quais colunas da tabela correspondem a cada um dos campos de geolocalização utilizados pelo ArcGIS Pro, o que fazemos com a função address_fields_const(). No exemplo abaixo, geolocalizamos os 1000 primeiros registros do CNES 2022.

library(geocodepro)

cnes <- readxl::read_xlsx(
  "../../data-raw/cnes/2022/BANCO_ESTAB_IPEA_COMP_08_2022_DT_25_10_2023.xlsx",
  skip = 15,
  n_max = 1000
) |>
  dplyr::mutate(LOGRADOURO = paste(LOGRADOURO, NUMERO)) |>
  dplyr::select(UF, MUNICÍPIO, LOGRADOURO, BAIRRO, CEP)

ends_geolocalizados <- geocode(
  cnes,
  locator = "../../data-raw/locators/BRA/BRA.loc",
  address_fields = address_fields_const(
    Address_or_Place = "LOGRADOURO",
    Neighborhood = "BAIRRO",
    City = "MUNICÍPIO",
    State = "UF",
    ZIP = "CEP"
  )
)
ends_geolocalizados
#> Simple feature collection with 1000 features and 10 fields
#> Geometry type: POINT
#> Dimension:     XY
#> Bounding box:  xmin: -73.02722 ymin: -11.03221 xmax: -66.92891 ymax: -7.592121
#> Geodetic CRS:  WGS 84
#> First 10 features:
#>    Status Score Match_type                                             Match_addr     Addr_type UF    MUNICÍPIO
#> 1       M 91.86          A           Rua Sete Quedas, Acrelândia, Acre, 69945-000    StreetName AC   ACRELANDIA
#> 2       M 85.83          A                    BR-364, Acrelândia, Acre, 69945-000    StreetName AC   ACRELANDIA
#> 3       M 84.50          A                                              69945-000     PostalExt AC   ACRELANDIA
#> 4       M 98.57          A        Avenida Paraná 346, Acrelândia, Acre, 69945-000 StreetAddress AC   ACRELANDIA
#> 5       M 98.57          A        Avenida Brasil 591, Acrelândia, Acre, 69945-000 StreetAddress AC   ACRELANDIA
#> 6       M 98.70          A   Rua Geraldo Barbosa 385, Acrelândia, Acre, 69945-000 StreetAddress AC   ACRELANDIA
#> 7       M 98.70          A   Rua Geraldo Barbosa 296, Acrelândia, Acre, 69945-000 StreetAddress AC   ACRELANDIA
#> 8       M 96.81          A   Rua Geraldo Barbosa 286, Acrelândia, Acre, 69945-000 StreetAddress AC   ACRELANDIA
#> 9       M 84.50          A                                              69945-000     PostalExt AC   ACRELANDIA
#> 10      M 91.92          A Rua João José do Bonfim, Assis Brasil, Acre, 69935-000    StreetName AC ASSIS BRASIL
#>                     LOGRADOURO     BAIRRO      CEP                       Shape
#> 1         RUA SETE QUEDAS 1396     CENTRO 69945000 POINT (-67.04542 -10.07633)
#> 2            BR 364 KM 114 114 ZONA RURAL 69945000 POINT (-66.96392 -9.921225)
#> 3     AC 475 VILA REDENCAOI NA ZONA RURAL 69945000 POINT (-66.92891 -9.937881)
#> 4           AVENIDA PARANA 346     CENTRO 69945000 POINT (-67.05574 -10.07704)
#> 5           AVENIDA BRASIL 591     CENTRO 69945000 POINT (-67.05339 -10.07756)
#> 6      RUA GERALDO BARBOSA 385     CENTRO 69945000 POINT (-67.05257 -10.07724)
#> 7      RUA GERALDO BARBOSA 296     CENTRO 69945000 POINT (-67.05181 -10.07754)
#> 8  AVENIDA GERALDO BARBOSA 286     CENTRO 69945000 POINT (-67.05173 -10.07755)
#> 9     AVENIDA EDMUNDO PINTO 36     CENTRO 69945000 POINT (-66.92891 -9.937881)
#> 10 RUA JOAO JOSE DO BONFIM 140 BELA VISTA 69935000 POINT (-69.55768 -10.93841)
library(tmap)

tiles <- maptiles::get_tiles(
  ends_geolocalizados,
  provider = "OpenStreetMap.France"
)

tm_shape(tiles) +
  tm_rgb() +
  tm_shape(ends_geolocalizados) +
  tm_dots(col = "black", size = 0.5)

About

No description, website, or topics provided.

Resources

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE
MIT
LICENSE.md

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages