Pular para conteúdo

Acervo Fundiário — SIGEF, SNCI e Assentamentos (INCRA)

Licença nc — vedado uso comercial

Os dados do Acervo Fundiário do INCRA são de uso público com restrição de uso comercial. A primeira chamada emite UserWarning lembrando dessa restrição.

Visão Geral

Item Detalhe
Provedor INCRA (Instituto Nacional de Colonização e Reforma Agrária)
Dados Parcelas certificadas (SIGEF/SNCI) + assentamentos
Acesso Download de shapefile ZIP estático
Endpoint https://certificacao.incra.gov.br/csv_shp/zip/
CRS EPSG:4674 (SIRGAS 2000)
Encoding DBF latin1 (cp1252)
Atualização Contínua (varia por UF, exposta via Last-Modified)
Autenticação Nenhuma
Licença Vedado uso comercial — nc

Cobertura por dataset

Dataset UFs disponíveis Tamanho típico Granularidade
SIGEF 15/27 (AC, AL, AM, BA, ES, GO, MA, MG, MS, MT, PA, PR, SC, SP, TO) 8-687 MB por UF Por UF
SNCI 10/27 (BA, GO, MG, MS, MT, PA, PI, SC, SP, TO) 0.6-22 MB por UF Por UF
Assentamentos Brasil único 48 MB Brasil completo, filtro UF client-side

UFs não listadas levantam SourceUnavailableError com a lista de disponíveis. Ausência reflete dados upstream do INCRA, não bug do agrobr.

Funções públicas

import asyncio
from agrobr import acervo_fundiario

async def main():
    # SIGEF — parcelas certificadas pós-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 — parcelas certificadas pré-2013
    df = await acervo_fundiario.snci("GO")
    gdf = await acervo_fundiario.snci_geo("MT")

    # Assentamentos — Brasil único, uf opcional
    df = await acervo_fundiario.assentamentos()             # todas as UFs
    df = await acervo_fundiario.assentamentos(uf="GO")      # filtro client-side
    gdf = await acervo_fundiario.assentamentos_geo(uf="MG")

asyncio.run(main())

Cache filesystem

Arquivos baixados ficam em ~/.agrobr/cache/acervo_fundiario/{tema}/{UF}.zip com meta.json ao lado contendo last_modified, etag, sha256, size_bytes, fetched_at, source_url.

A revalidação usa o header Last-Modified do servidor: a 2ª chamada faz HEAD (~50ms) e reusa cache se o arquivo não mudou.

Tamanho potencial do cache:

  • SIGEF Brasil completo (15 UFs) ≈ 2.4 GB (maior: MG=687 MB, SP=322 MB, PR=287 MB)
  • SNCI Brasil completo (10 UFs) ≈ 84 MB
  • Assentamentos Brasil = 48 MB

Por demanda. Caso casual de 1-3 UFs costuma ficar abaixo de 1 GB.

Opt-out:

df = await acervo_fundiario.sigef("GO", use_cache=False)
export AGROBR_ACERVO_FUNDIARIO_CACHE_DISABLED=1

Schemas

SIGEF

Coluna Tipo Descrição
codigo_parcela str UUID da parcela
rt str Responsável técnico
art str Anotação de responsabilidade técnica
situacao str Situação informada
codigo_imovel str Código do imóvel rural
data_submissao datetime Data de submissão
data_aprovacao datetime Data de aprovação
status str Status da certificação
nome_area str Nome da área/fazenda
registro_matricula str Matrícula do registro
registro_data datetime Data do registro (nullable)
cod_municipio int Código IBGE do município
uf str Sigla UF (mapeada de uf_id IBGE)
geometry Polygon Geometria (apenas em _geo)

SNCI

Coluna Tipo Descrição
num_processo str Número do processo
sr str Superintendência regional
num_certificacao str Número da certificação
data_certificacao datetime Data da certificação
area_peca_tecnica float Área em hectares (peça técnica)
cod_profissional str Código do profissional credenciado
cod_imovel_rural str Código do imóvel rural
nome_imovel str Nome do imóvel
uf str Sigla UF (de uf_municip)
geometry Polygon Apenas em _geo

Assentamentos

Coluna Tipo Descrição
codigo_sipra str Código SIPRA do projeto
nome_projeto str Nome do projeto
municipio str Município
uf str Sigla UF
area_ha str Área declarada (vem como string do DBF)
capacidade int Capacidade de famílias
num_familias int Número de famílias assentadas
fase int Fase do projeto
data_criacao datetime Data de criação
forma_obtencao str Forma de obtenção
data_obtencao datetime Data de obtenção
area_calc_ha float Área calculada em hectares
sr str Superintendência regional (nullable)
descricao_fase str Descrição da fase (nullable)
geometry Polygon Apenas em _geo

Filtros

bbox

Aplicado pelo pyogrio durante a leitura do shapefile (filtro espacial pré-leitura, 4-9x menos RAM/tempo que filtrar gdf.cx[] após carregar tudo).

gdf = await acervo_fundiario.sigef_geo("MG", bbox=(-44, -18, -43, -17))

uf em assentamentos

O dataset de assentamentos é Brasil único — o filtro uf é client-side, normalizando a coluna uf (.str.upper().str.strip()) e comparando.

Dados upstream do INCRA têm UFs inválidas conhecidas (MB=501 rows, SM=200 rows, 12, 'ma'). O parser não filtra essas rows silenciosamente — um log warning acervo_fundiario_dirty_uf_data reporta os counts. Filtro uf="MG" retorna apenas rows com MG válido; as inválidas continuam no DataFrame quando uf=None.

Limitações

  • 12 UFs faltam SIGEF (AP, CE, DF, PB, PE, PI, RJ, RN, RO, RR, RS, SE) — não há registro upstream
  • 17 UFs faltam SNCI — só Centro-Oeste/Sudeste/Sul/parte do Norte cobertos
  • Cert SSL inválido no servidor — agrobr usa TLS relaxado (check_hostname=False, verify_mode=CERT_NONE). Servidor é gov.br público.
  • Sem distinção particular/público — o shapefile não tem campo de tipo (era distinção do WFS legacy)
  • Tamanho de cache pode acumular GB — ver seção "Cache filesystem"