Geobr
Easy access to official spatial data sets of Brazil in R and Python
Install / Use
/learn @ipeaGIT/GeobrREADME
geobr: Download Official Spatial Data Sets of Brazil
<img align="right" src="https://github.com/ipeaGIT/geobr/blob/master/r-package/man/figures/geobr_logo_b.png?raw=true" alt="logo" width="140"> <img align="right" src="https://github.com/ipeaGIT/geobr/blob/master/r-package/man/figures/geobr_logo_y.png?raw=true" alt="logo" width="140"> <p align="justify">geobr is a computational package to download official spatial data sets of Brazil. The package includes a wide range of geospatial data in geopackage format (like shapefiles but better), available at various geographic scales and for various years with harmonized attributes, projection and topology (see detailed list of available data sets below). </p>The package is currently available in R and Python.
| R | Python | Repo|
|-----|-----|----|
| <br />
<br />
<br />
<br />
<br />
|
<br />
<br />
<br />
<br />
|<img alt="GitHub stars" src="https://img.shields.io/github/stars/ipeaGIT/geobr.svg?color=orange"> <br /> <br />
|
Installation R
# From CRAN
install.packages("geobr")
library(geobr)
# or use the development version with latest features
utils::remove.packages('geobr')
remotes::install_github("ipeaGIT/geobr", subdir = "r-package")
library(geobr)
obs. If you use Linux, you need to install a couple dependencies before installing the libraries sf and geobr. More info here.
Installation Python
pip install geobr
Windows users:
conda create -n geo_env
conda activate geo_env
conda config --env --add channels conda-forge
conda config --env --set channel_priority strict
conda install python=3 geopandas
pip install geobr
Basic Usage
The syntax of all geobr functions operate on the same logic so it becomes intuitive to download any data set using a single line of code. Like this:
R, reading the data as an sf object
library(geobr)
# Read specific municipality at a given year
mun <- read_municipality(code_muni=1200179, year=2017)
# Read all municipalities of given state at a given year
mun <- read_municipality(code_muni=33, year=2010) # or
mun <- read_municipality(code_muni="RJ", year=2010)
# Read all municipalities in the country at a given year
mun <- read_municipality(code_muni="all", year=2018)
More examples in the intro Vignette
Python, reading the data as a geopandas object
from geobr import read_municipality
# Read specific municipality at a given year
mun = read_municipality(code_muni=1200179, year=2017)
# Read all municipalities of given state at a given year
mun = read_municipality(code_muni=33, year=2010) # or
mun = read_municipality(code_muni="RJ", year=2010)
# Read all municipalities in the country at a given year
mun = read_municipality(code_muni="all", year=2018)
More examples here
Available datasets:
:point_right: All datasets use geodetic reference system "SIRGAS2000", CRS(4674).
|Function|Geographies available|Years available|Source|
|-----|-----|-----|-----|
|read_country| Country | 1872, 1900, 1911, 1920, 1933, 1940, 1950, 1960, 1970, 1980, 1991, 2000, 2001, 2010, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 | IBGE |
|read_region| Region | 2000, 2001, 2010, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 | IBGE |
|read_state| States | 1872, 1900, 1911, 1920, 1933, 1940, 1950, 1960, 1970, 1980, 1991, 2000, 2001, 2010, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 | IBGE |
|read_meso_region| Meso region | 2000, 2001, 2010, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 | IBGE |
|read_micro_region| Micro region | 2000, 2001, 2010, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 | IBGE |
|read_intermediate_region| Intermediate region | 2017, 2019, 2020 | IBGE |
|read_immediate_region| Immediate region | 2017, 2019, 2020 | IBGE |
|read_municipality| Municipality | 1872, 1900, 1911, 1920, 1933, 1940, 1950, 1960, 1970, 1980, 1991, 2000, 2001, 2005, 2007, 2010, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024 | IBGE |
|read_municipal_seat| Municipality seats (sedes municipais) | 1872, 1900, 1911, 1920, 1933, 1940, 1950, 1960, 1970, 1980, 1991, 2010 | IBGE |
|read_weighting_area| Census weighting area (área de ponderação) | 2010 | IBGE |
|read_census_tract| Census tract (setor censitário) | 2000, 2010, 2017, 2019, 2020, 2022 | IBGE |
|read_statistical_grid | Statistical Grid of 200 x 200 meters | 2010 | IBGE |
|read_metro_area | Metropolitan areas | 1970, 2001, 2002, 2003, 2005, 2010, 2013, 2014, 2015, 2016, 2017, 2018 | IBGE |
|read_urban_area | Urban footprints | 2005, 2015 | IBGE |
|read_amazon | Brazil's Legal Amazon | 2012 | MMA |
|read_biomes | Biomes | 2004, 2019 | IBGE |
|read_conservation_units | Environmental Conservation Units | 201909 | MMA |
|read_disaster_risk_area | Disaster risk areas | 2010 | CEMADEN and IBGE |
|read_indigenous_land | Indigenous lands | 201907, 202103 | FUNAI |
|read_semiarid | Semi Arid region | 2005, 2017, 2021, 2022 | IBGE |
|read_health_facilities | Health facilities | 201505, 202303 | CNES, DataSUS |
|read_health_region | Health regions and macro regions | 1991, 1994, 1997, 2001, 2005, 2013 | DataSUS |
|read_neighborhood | Neighborhood limits | 2010 | IBGE |
|read_schools | Schools | 2020, 2023 | INEP |
|read_comparable_areas | Historically comparable municipalities, aka Áreas mínimas comparáveis (AMCs) | 1872, 1900, 1911, 1920, 1933, 1940, 1950, 1960, 1970, 1980, 1991, 2000, 2010 | IBGE |
|read_urban_concentrations | Urban concentration areas (concentrações urbanas) | 2015 | IBGE |
|read_pop_arrangements | Population arrangements (arranjos populacionais) | 2015 | IBGE |
Other functions:
| Function | Action|
|-----|-----|
| list_geobr | List all datasets available in the geobr package |
|lookup_muni| Look up municipality codes by their name, or the other way around |
|grid_state_correspondence_table| Loads a correspondence table indicating what quadrants of IBGE's statistical grid intersect with each state |
| cep_to_state | Determine the state of a given CEP postal code |
| ... | ... |
Note 1. Data sets and Functions marked with "dev" are only available in the development version of geobr.
Note 2. Most data sets are available at scale 1:250,000 (see documentation for details).
Coming soon:
| Geography | Years available | Source |
|-----|-----|-----|
|read_census_tract | 2007 | IBGE |
| Longitudinal Database* of micro regions | various years | IBGE |
| Longitudinal Database* of Census tracts | various years | IBGE |
| ... | ... | ... |
'*' Longitudinal Database refers to áreas mínimas comparáveis (AMCs)
- Quadro geográfico de referência para produção, análise e disseminação de estatísticas
- Outros arquivos e recortes estão disponiveis em ftp://geoftp.ibge.gov.br/.
Contributing to geobr
If you would like to contribute to geobr and add new functions or data sets, please check this guide to propose your contribution.
Related projects
As of today, there is another R package with similar functionalities: simplefeaturesbr. The geobr package has a few advantages when compared to simplefeaturesbr, including for example:
- A same syntax structure across all functions, making the package very easy and intuitive to use
- Access to a wider range of official spatial data sets, such as states and municipalities, but also macro-, meso- and micro-regions, weighting areas, census tracts, urbanized areas, etc
- Access to shapefiles with updated geometries for various years
- Harmonized attributes and geographic projections across geographies and years
- Option to download geometries with simplified borders for fast rendering
- Stable version published on CRAN for R users, and on PyPI for Python users
**Similar p
Related Skills
node-connect
336.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
claude-opus-4-5-migration
82.9kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
frontend-design
82.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
model-usage
336.5kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
