agrobr¶
Dados agrícolas brasileiros em uma linha de código
O que é o agrobr?¶
Infraestrutura Python para dados agrícolas brasileiros com camada semântica sobre 25 fontes públicas.
v0.11.3 — 3692+ testes | 84% cobertura | 25/25 golden tests | retry centralizado 25/25 clients
- CEPEA/ESALQ: 20 indicadores de preços (soja, milho, boi, café, algodão, trigo, arroz, açúcar, etanol, frango, suíno, leite, laranja)
- CONAB: Safras, balanço oferta/demanda, custos de produção e série histórica
- IBGE/SIDRA: PAM (anual) e LSPA (mensal)
- NASA POWER: Climatologia gridded diária (temperatura, precipitação, radiação, umidade, vento)
- BCB/SICOR: Crédito rural por cultura e UF com dimensões SICOR (programa, fonte, seguro, modalidade, atividade) + fallback BigQuery
- ComexStat: Exportações agrícolas por NCM
- ANDA: Entregas de fertilizantes por UF
- ABIOVE: Exportação do complexo soja (volume e receita mensal)
- USDA PSD: Estimativas internacionais de produção/oferta/demanda
- IMEA: Cotações e indicadores para Mato Grosso (6 cadeias produtivas)
- DERAL: Condição das lavouras do Paraná (semanal)
- INMET: Dados meteorológicos por estação (requer token
AGROBR_INMET_TOKEN) - Notícias Agrícolas: Cotações agrícolas (fallback CEPEA)
- Queimadas/INPE: Focos de calor por satélite (6 biomas, 13 satélites)
- Desmatamento PRODES/DETER: Desmatamento consolidado + alertas em tempo real
- MapBiomas: Cobertura e uso da terra por município (1985-presente)
- CONAB Progresso: Progresso semanal de plantio/colheita por cultura e UF
- CONAB CEASA/PROHORT: Precos diarios de atacado hortifruti em 43 CEASAs (48 produtos)
- B3 Futuros Agro: Ajustes diarios (settlement) + posicoes em aberto (open interest) de futuros e opcoes agro
- UN Comtrade: Comercio bilateral + trade mirror (exportacoes vs importacoes por HS code, ~200 paises)
- ANTAQ: Movimentacao portuaria de carga (granel solido/liquido, carga geral, conteiner, 2010+)
- ANP Diesel: Precos de revenda e volumes de venda de diesel por UF/municipio (proxy atividade mecanizada)
- ANTT Pedagio: Fluxo de veiculos em pracas de pedagio rodoviario (ANTT Dados Abertos, CC-BY, 2010+)
- MAPA PSR: Apolices e sinistros do seguro rural com subvencao federal (SISSER/MAPA, 2006+)
- SICAR: Cadastro Ambiental Rural — registros de imoveis rurais por UF via WFS (7.4M+ imoveis, 27 UFs)
Datasets — Camada Semântica¶
Peça o que quer, a fonte é detalhe interno:
| Dataset | Descrição | Fontes (fallback automático) |
|---|---|---|
preco_diario |
Preços diários spot | CEPEA → Notícias Agrícolas → cache |
producao_anual |
Produção anual consolidada | IBGE PAM → CONAB |
estimativa_safra |
Estimativas safra corrente | CONAB → IBGE LSPA |
balanco |
Oferta/demanda | CONAB |
credito_rural |
Crédito rural por cultura (programa, seguro, modalidade) | BCB/SICOR → BigQuery |
exportacao |
Exportações agrícolas | ComexStat → ABIOVE |
fertilizante |
Entregas de fertilizantes | ANDA |
custo_producao |
Custos de produção | CONAB |
pecuaria_municipal |
Rebanhos e produção animal | IBGE PPM |
abate_trimestral |
Abate de bovinos, suínos e frangos | IBGE Abate |
cadastro_rural |
Cadastro Ambiental Rural (imóveis rurais) | SICAR/GeoServer WFS |
censo_agropecuario |
Censo Agropecuário 1995/2006/2017 (10 temas) | IBGE Censo Agro |
censo_agropecuario_legado |
Censo Agropecuário 1995/96 — 6 temas legados | IBGE FTP |
censo_agropecuario_historico |
Série histórica Censo Agropecuário 1920-2006 (9 temas) | IBGE SIDRA |
from agrobr import datasets
df = await datasets.preco_diario("soja")
df = await datasets.producao_anual("soja", ano=2023)
df = await datasets.estimativa_safra("soja", safra="2024/25")
df = await datasets.balanco("soja")
Instalação¶
pip install agrobr
# Com Playwright (para fontes que requerem JavaScript)
pip install agrobr[browser]
playwright install chromium
Uso Rápido¶
from agrobr import cepea, conab, ibge, nasa_power
# CEPEA - Indicadores de preços
df = await cepea.indicador('soja', inicio='2024-01-01')
# CONAB - Safras
df = await conab.safras('soja', safra='2024/25')
# IBGE - PAM
df = await ibge.pam('soja', ano=2023, nivel='uf')
# NASA POWER - Clima
df = await nasa_power.clima_uf('MT', ano=2025)
Versão Síncrona¶
from agrobr.sync import cepea, nasa_power
df = cepea.indicador('soja')
df = nasa_power.clima_uf('MT', ano=2025)
Diferenciais¶
| Problema | Solução agrobr |
|---|---|
| Download manual de planilhas | Uma linha de código |
| Layouts inconsistentes | Parsing robusto com fallback |
| Scripts que quebram | Fingerprinting detecta mudanças |
| Sem histórico | Cache DuckDB com acumulação |
| Encoding caótico | Fallback chain automático |
| Escolher fonte | Datasets abstraem a fonte |
Quality & Reliability¶
| Métrica | Valor |
|---|---|
| Testes | 3692+ passando |
| Cobertura | 84% |
| Golden tests | 25/25 fontes |
| Resiliência HTTP | Retry centralizado + 429/Retry-After |
| Benchmarks | Memory, volume, cache, async, rate limiting |
| Bugs corrigidos (v0.10.1) | DuckDB thread-safety, parser NA semanal, ANDA ano_real |
Features¶
- 25 fontes públicas — CEPEA, CONAB, IBGE, NASA POWER, BCB/SICOR, ComexStat, ANDA, ABIOVE, USDA, IMEA, DERAL, INMET, Notícias Agrícolas, Queimadas/INPE, Desmatamento, MapBiomas, CONAB Progresso, CONAB CEASA/PROHORT, B3 Futuros Agro, UN Comtrade, ANTAQ, ANP Diesel, MAPA PSR, ANTT Pedagio, SICAR
- 25/25 golden tests — validação automatizada contra dados de referência
- Resiliência HTTP —
retry_on_status()/retry_async()centralizado, Retry-After, 429 handling - Camada semântica — datasets com fallback automático entre fontes
- Contratos públicos — schema versionado com garantias de estabilidade
- Modo determinístico — reprodutibilidade total para papers/auditorias
- Async-first com sync wrapper para uso simples
- Cache DuckDB com histórico permanente
- Suporte pandas + polars (
as_polars=True) - CLI completa (
agrobr cepea indicador soja --formato csv) - Validação — Pydantic v2 + sanity checks estatísticos + fingerprinting
- Monitoramento — health checks diários + alertas Discord/Slack
Próximos Passos¶
- Guia Rápido — Tutorial completo
- Datasets — Contratos e garantias
- API Reference — Documentação detalhada
- Fontes — Proveniência e rastreabilidade
- Exemplos — Scripts de exemplo
— Notebook interativo com todas as fontes
Licença¶
MIT License — veja LICENSE