Land Registry — SIGEF, SNCI and Settlements (INCRA)¶
License nc — commercial use prohibited
The data from INCRA's Land Registry is public-use data with a commercial-use restriction.
The first call emits a UserWarning reminding you of this restriction.
Overview¶
| Item | Detail |
|---|---|
| Provider | INCRA (Instituto Nacional de Colonizacao e Reforma Agraria) |
| Data | Certified parcels (SIGEF/SNCI) + settlements |
| Access | Static shapefile ZIP download |
| Endpoint | https://certificacao.incra.gov.br/csv_shp/zip/ |
| CRS | EPSG:4674 (SIRGAS 2000) |
| Encoding | DBF latin1 (cp1252) |
| Update | Continuous (varies by state, exposed via Last-Modified) |
| Authentication | None |
| License | Commercial use prohibited — nc |
Coverage by dataset¶
| Dataset | Available states | Typical size | Granularity |
|---|---|---|---|
| SIGEF | 15/27 (AC, AL, AM, BA, ES, GO, MA, MG, MS, MT, PA, PR, SC, SP, TO) | 8-687 MB per state | Per state |
| SNCI | 10/27 (BA, GO, MG, MS, MT, PA, PI, SC, SP, TO) | 0.6-22 MB per state | Per state |
| Settlements | Brazil-wide single | 48 MB | Full Brazil, client-side state filter |
States not listed raise SourceUnavailableError with the list of available ones. The absence reflects upstream INCRA data, not an agrobr bug.
Public functions¶
import asyncio
from agrobr import acervo_fundiario
async def main():
# SIGEF — certified parcels post-2013
df = await acervo_fundiario.sigef("GO")
df, meta = await acervo_fundiario.sigef("MG", return_meta=True)
df_pl = await acervo_fundiario.sigef("SP", as_polars=True)
gdf = await acervo_fundiario.sigef_geo("GO", bbox=(-50, -16, -49, -15))
# SNCI — certified parcels pre-2013
df = await acervo_fundiario.snci("GO")
gdf = await acervo_fundiario.snci_geo("MT")
# Settlements — Brazil-wide single, uf optional
df = await acervo_fundiario.assentamentos() # all states
df = await acervo_fundiario.assentamentos(uf="GO") # client-side filter
gdf = await acervo_fundiario.assentamentos_geo(uf="MG")
asyncio.run(main())
Filesystem cache¶
Downloaded files are stored in ~/.agrobr/cache/acervo_fundiario/{tema}/{UF}.zip with a meta.json alongside containing last_modified, etag, sha256, size_bytes, fetched_at, source_url.
Revalidation uses the server's Last-Modified header: the 2nd call performs a HEAD (~50ms) and reuses the cache if the file has not changed.
Potential cache size:
- SIGEF full Brazil (15 states) ≈ 2.4 GB (largest: MG=687 MB, SP=322 MB, PR=287 MB)
- SNCI full Brazil (10 states) ≈ 84 MB
- Settlements Brazil = 48 MB
On demand. A casual case of 1-3 states usually stays below 1 GB.
Opt-out:
Schemas¶
SIGEF¶
| Column | Type | Description |
|---|---|---|
| codigo_parcela | str | Parcel UUID |
| rt | str | Technical responsible |
| art | str | Technical responsibility note |
| situacao | str | Reported situation |
| codigo_imovel | str | Rural property code |
| data_submissao | datetime | Submission date |
| data_aprovacao | datetime | Approval date |
| status | str | Certification status |
| nome_area | str | Area/farm name |
| registro_matricula | str | Registry record number |
| registro_data | datetime | Registration date (nullable) |
| cod_municipio | int | Municipality IBGE code |
| uf | str | State abbreviation (mapped from IBGE uf_id) |
| geometry | Polygon | Geometry (only in _geo) |
SNCI¶
| Column | Type | Description |
|---|---|---|
| num_processo | str | Process number |
| sr | str | Regional superintendency |
| num_certificacao | str | Certification number |
| data_certificacao | datetime | Certification date |
| area_peca_tecnica | float | Area in hectares (technical document) |
| cod_profissional | str | Accredited professional code |
| cod_imovel_rural | str | Rural property code |
| nome_imovel | str | Property name |
| uf | str | State abbreviation (from uf_municip) |
| geometry | Polygon | Only in _geo |
Settlements¶
| Column | Type | Description |
|---|---|---|
| codigo_sipra | str | Project SIPRA code |
| nome_projeto | str | Project name |
| municipio | str | Municipality |
| uf | str | State abbreviation |
| area_ha | float | Declared area in hectares |
| capacidade | int | Family capacity |
| num_familias | int | Number of settled families |
| fase | int | Project phase |
| data_criacao | datetime | Creation date |
| forma_obtencao | str | Form of acquisition |
| data_obtencao | datetime | Acquisition date |
| area_calc_ha | float | Calculated area in hectares |
| sr | str | Regional superintendency (nullable) |
| descricao_fase | str | Phase description (nullable) |
| geometry | Polygon | Only in _geo |
Filters¶
bbox¶
Applied by pyogrio while reading the shapefile (pre-read spatial filter, 4-9x less RAM/time than filtering gdf.cx[] after loading everything).
uf in settlements¶
The settlements dataset is Brazil-wide single — the uf filter is client-side, normalizing the uf column (.str.upper().str.strip()) and comparing.
Upstream INCRA data has known invalid states (MB=501 rows, SM=200 rows, 12, 'ma'). The parser does not silently drop these rows — a acervo_fundiario_dirty_uf_data warning log reports the counts. The uf="MG" filter returns only rows with valid MG; the invalid ones remain in the DataFrame when uf=None.
Limitations¶
- 12 states lack SIGEF (AP, CE, DF, PB, PE, PI, RJ, RN, RO, RR, RS, SE) — no upstream record
- 17 states lack SNCI — only Center-West/Southeast/South/part of the North are covered
- Invalid SSL cert on the server — agrobr uses relaxed TLS (
check_hostname=False,verify_mode=CERT_NONE). The server is a public gov.br one. - No private/public distinction — the shapefile has no type field (that was a distinction of the legacy WFS)
- Cache size may accumulate into GB — see the "Filesystem cache" section