Agrobr
Pacote Python production-grade que abstrai toda a complexidade e entrega DataFrames limpos, padronizados, validados e documentados.
Install / Use
/learn @bruno-portfolio/AgrobrREADME
agrobr
<p align="center"> <a href="https://htmlpreview.github.io/?https://github.com/bruno-portfolio/agrobr/blob/main/docs/canopy.html"> <img src="docs/canopy.svg" width="100%" /> </a> </p>Dados agrícolas brasileiros em uma linha de código
Infraestrutura Python para dados agrícolas brasileiros com camada semântica sobre 39 fontes públicas: CEPEA, CONAB, IBGE, NASA POWER, BCB/SICOR, ComexStat, ANDA, ABIOVE, USDA PSD, IMEA, DERAL, INMET, Notícias Agrícolas, Queimadas/INPE, Desmatamento PRODES/DETER, MapBiomas, CONAB Progresso, B3 Futuros Agro, CONAB CEASA/PROHORT, UN Comtrade, ANTAQ, ANP Diesel, MAPA PSR, ANTT Pedágio, SICAR, ZARC, Agrofit/MAPA (Defensivos), FUNAI, ICMBio, INCRA, IBAMA, MapBiomas Alerta, Lista Suja, ANA/SNIRH, SFB, RNC/CultivarWeb, EMBRAPA Solos, Fundação Rio Verde e Acervo Fundiário/INCRA.
v1.0.5 — 6000+ testes, 92% cobertura, 39/39 fontes com golden tests, retry centralizado em 39/39 clients.
Demo
Instalação
pip install agrobr
Com extras opcionais:
pip install agrobr[pdf] # pdfplumber para ANDA, Lista Suja, Rio Verde
pip install agrobr[polars] # Suporte a Polars
pip install agrobr[browser] # Playwright (opcional, para fontes com JS)
pip install agrobr[bigquery] # Base dos Dados (fallback BCB/SICOR)
pip install agrobr[geo] # GeoPandas (geometria PRODES + DETER + SICAR + FUNAI + ICMBio + INCRA + IBAMA + Queimadas + MapBiomas Alerta + ANA + SFB + EMBRAPA Solos + Acervo Fundiário)
pip install agrobr[all] # Tudo incluído
Docker
docker build -t agrobr .
docker run -it --rm agrobr
>>> from agrobr.sync import cepea
>>> df = cepea.indicador('soja', inicio='2024-01-01')
# CLI
docker run --rm agrobr agrobr cepea indicador boi
# Persistir cache entre execuções
docker run -it --rm -v agrobr-cache:/home/agrobr/.agrobr agrobr
# Com extras adicionais (EXTRAS substitui o default "browser,pdf")
docker build --build-arg EXTRAS="browser,pdf,polars" -t agrobr:extras .
# Rodar script local
docker run --rm -v "$(pwd)":/work agrobr python /work/analise.py
A imagem default inclui Playwright + Chromium (CONAB) e pdfplumber (ANDA). Veja o guia Docker para extras adicionais.
Uso Rápido
CEPEA - Indicadores de Preços
import asyncio
from agrobr import cepea
async def main():
# Série histórica de soja
df = await cepea.indicador('soja', inicio='2024-01-01')
print(df.head())
# Último valor disponível
ultimo = await cepea.ultimo('soja')
print(f"Soja: R$ {ultimo.valor}/sc em {ultimo.data}")
# Produtos disponíveis
print(await cepea.produtos()) # ['soja', 'milho', 'boi_gordo', 'cafe', ...]
asyncio.run(main())
CONAB - Safras e Balanço
from agrobr import conab
async def main():
# Dados de safra por UF
df = await conab.safras('soja', safra='2024/25')
print(df[['uf', 'area_plantada', 'producao', 'produtividade']])
# Balanço oferta/demanda
balanco = await conab.balanco('soja')
print(balanco)
# Total Brasil
brasil = await conab.brasil_total()
print(brasil)
IBGE - PAM, LSPA, PPM, Abate, PEVS, Leite, PIB e Censo Agro
from agrobr import ibge
async def main():
# PAM - Produção Agrícola Municipal (anual)
df = await ibge.pam('soja', ano=2023, nivel='uf')
print(df[['localidade', 'area_plantada', 'producao']])
# LSPA - Levantamento Sistemático (mensal)
df = await ibge.lspa('soja', ano=2024, mes=6)
print(df)
# PPM - Pesquisa da Pecuária Municipal (anual)
df = await ibge.ppm('bovino', ano=2023, nivel='uf')
print(df[['localidade', 'especie', 'valor', 'unidade']])
# Produção de origem animal
df = await ibge.ppm('leite', ano=2023)
# Abate Trimestral — bovino, suíno, frango
df = await ibge.abate('bovino', trimestre='202303')
df = await ibge.abate('frango', trimestre='202303', uf='PR')
# PAM por município (filtrando UF para reduzir volume)
df = await ibge.pam('cafe', ano=2023, nivel='municipio', uf='PA')
# Censo Agropecuário 1995/2006/2017 — 10 temas
df = await ibge.censo_agro('efetivo_rebanho')
df = await ibge.censo_agro('uso_terra', uf='MT')
df = await ibge.censo_agro('lavoura_temporaria', nivel='municipio', uf='PR')
# Manejo de solo e irrigação (2006 + 2017)
df = await ibge.censo_agro('preparo_solo', ano=2017, uf='SP')
df = await ibge.censo_agro('irrigacao') # ambos os anos
df = await ibge.censo_agro('adubacao', ano=2006)
# Censo Agropecuário 1995/96 — temas legados (FTP)
df = await ibge.censo_agro_legado('tecnologia')
df = await ibge.censo_agro_legado('pessoal_ocupado', uf='SP')
# Censo Agropecuário — série histórica 1920-2006 (9 temas, até UF)
df = await ibge.censo_agro_historico('estabelecimentos_area')
df = await ibge.censo_agro_historico('efetivo_animais', uf='SP')
df = await ibge.censo_agro_historico('uso_terra', nivel='brasil')
# Censo Agropecuário 1985 — dados municipais (53 temas, 22 UFs, OCR de PDFs)
df = await ibge.censo_agro_municipal_1985('propriedade_terras', uf='SP')
df = await ibge.censo_agro_municipal_1985('bovinos', nivel='municipio')
# Múltiplos anos
df = await ibge.pam('milho', ano=[2020, 2021, 2022, 2023])
# PEVS — Silvicultura (eucalipto, pinus, carvão)
df = await ibge.silvicultura('madeira_tora', ano=2023)
df = await ibge.silvicultura('eucalipto', variavel='area') # área plantada
# PEVS — Extração vegetal (açaí, castanha, erva-mate)
df = await ibge.extracao_vegetal('acai', ano=2023, nivel='uf')
# Leite trimestral (aquisição + industrialização + preço)
df = await ibge.leite_trimestral(trimestre='202303', uf='MG')
# PIB Agropecuário trimestral
df = await ibge.pib_agro(trimestre='202501', setor='agropecuaria')
Datasets - Camada Semântica
Peça o que quer, fonte é detalhe interno:
from agrobr import datasets
async def main():
# Preço diário (CEPEA com fallback automático)
df = await datasets.preco_diario("soja")
# Produção anual (IBGE PAM → CONAB)
df = await datasets.producao_anual("soja", ano=2023)
# Estimativa de safra corrente (CONAB → IBGE LSPA)
df = await datasets.estimativa_safra("soja", safra="2024/25")
# Balanço oferta/demanda (CONAB)
df = await datasets.balanco("soja")
# Crédito rural (BCB/SICOR com fallback BigQuery)
df = await datasets.credito_rural("soja", safra="2024/25")
# Exportações (ComexStat → ABIOVE)
df = await datasets.exportacao("soja", ano=2024)
# Fertilizantes (ANDA)
df = await datasets.fertilizante(ano=2024, uf="MT")
# Custos de produção (CONAB)
df = await datasets.custo_producao("soja", uf="MT", safra="2024/25")
# Com metadados de proveniência
df, meta = await datasets.preco_diario("soja", return_meta=True)
print(meta.source, meta.contract_version)
# Pecuária municipal (IBGE PPM)
df = await datasets.pecuaria_municipal("bovino", ano=2023)
# Censo Agropecuário 1995/2006/2017 (IBGE Censo Agro — 10 temas)
df = await datasets.censo_agropecuario("efetivo_rebanho")
df = await datasets.censo_agropecuario("preparo_solo")
# Cadastro Ambiental Rural (SICAR)
df = await datasets.cadastro_rural("DF")
df = await datasets.cadastro_rural("MT", municipio="Sorriso", status="AT")
# SICAR com geometria (requer pip install agrobr[geo])
gdf = await agrobr.alt.sicar.imoveis_geo("DF")
# Silvicultura (IBGE PEVS)
df = await datasets.silvicultura("madeira_tora", ano=2023)
# Extrativismo vegetal (IBGE PEVS)
df = await datasets.extrativismo_vegetal("acai", ano=2023)
# Leite industrial (IBGE Leite Trimestral)
df = await datasets.leite_industrial(trimestre="202303")
# Série histórica de safras (CONAB — 32 culturas)
df = await datasets.serie_historica_safra("soja", inicio=2020, fim=2024)
# Preços de atacado (CONAB CEASA/PROHORT)
df = await datasets.preco_atacado("TOMATE")
# Seguro rural (MAPA PSR — apólices e sinistros)
df = await datasets.seguro_rural(tipo="apolices", uf="MT", ano=2023)
df = await datasets.seguro_rural(tipo="sinistros", evento="SECA")
# Clima (INMET → NASA POWER)
df = await datasets.clima(uf="SP", ano=2024)
df = await datasets.clima(estacao="A301", inicio="2024-01-01", fim="2024-12-31")
# Futuros agrícolas B3 (ajustes, histórico, posições)
df = await datasets.futuros_agricolas("boi", data="2025-03-05")
df = await datasets.futur
Related Skills
node-connect
349.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.5kCreate 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.
openai-whisper-api
349.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
349.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
