Skip to content

Proposta: Integrar fontes de dados do brverse ao raspe #27

@bdcdo

Description

@bdcdo

Contexto

O brverse é um repositório que agrega 41 pacotes R para acesso a dados brasileiros, mantido pelo IPEA. Desses, 34 são pacotes de acesso a dados (excluindo utilitários como deflateBR, numbersBR, metaphonebr, SoundexBR, genderBR, nomesbr, enderecobr).

Esta issue propõe integrar essas fontes de dados ao ecossistema Python, dividindo entre:

  • raspe (~20 pacotes): os que acessam APIs REST, portais web ou arquivos públicos
  • brverse-py (projeto separado, ~14 pacotes): os que envolvem dados espaciais, microdados complexos ou lógica difícil de reimplementar

A recomendação é reimplementar nativamente em Python (não usar rpy2), seguindo a arquitetura de scrapers do raspe. Para os pacotes complexos (espaciais, microdados), considerar rpy2 apenas como fallback no projeto brverse-py separado.


Triagem: raspe vs brverse-py

Para o raspe (~20 pacotes)

Pacotes que acessam APIs REST documentadas, portais web, ou arquivos CSV/Excel públicos — encaixam na arquitetura BaseScraper/HTMLScraper:

Domínio Pacotes
Economia ipeadatar, BacenAPI, rbcb, GetTDData, bndesr, orcamentoBR, siconvr, BETS
Eleitorais electionsBR, speechbr
Espaciais cepR
Meio Ambiente BrazilMet, brclimr
População brpop
Saúde microdatasus, PNSIBGE, COVIDIBGE
Segurança BrazilCrime, ispdata
Transportes flightsbr, aopdata
Outros owdbr, abjData, aebdata, sidrar, basedosdados

Para o brverse-py (~14 pacotes)

Pacotes com processamento complexo, dados espaciais pesados, ou lógica difícil de reimplementar:

  • Espaciais: geobr, geocodebr, odbr (dados geográficos pesados, dependência de GeoPandas)
  • Microdados complexos: censobr, PNADcIBGE (pesos amostrais, arquivos de largura fixa)
  • Taxonomia: flora, florabr (lógica de resolução taxonômica complexa)
  • Multi-fonte: datazoom.amazonia (agregação de PRODES, INPE, IBGE, etc.)

Mapeamento de equivalentes Python existentes

Equivalente direto em Python (12/34)

R Package Python Equivalent PyPI
ipeadatar ipeadatapy link
BacenAPI BacenAPI link
rbcb python-bcb link
electionsBR electionsBR link
geobr geobr link
cepR brazilcep link
BrazilMet inmetpy link
brpop PySUS link
PNADcIBGE pynad link
microdatasus PySUS + datasus-fetcher link
sidrar sidrapy link
basedosdados basedosdados link

Equivalente parcial (6/34)

R Package Python Parcial Notas
GetTDData tesouro-direto-br Foco diferente (portfolio vs dados)
BETS python-bcb + brazilian-data BETS agrega muitas fontes
speechbr camaraPy Parcial, só Câmara
censobr ibge-parser Parcial
PNSIBGE lerMicrodados Parcial
COVIDIBGE lerMicrodados Parcial

Sem equivalente Python (16/34)

orcamentoBR, siconvr, bndesr, geocodebr, brclimr, florabr, flora, BrazilCrime, ispdata, flightsbr, odbr, aopdata, owdbr, abjData, aebdata, datazoom.amazonia


Categorização detalhada por domínio

Economia e Finanças (8 pacotes)

Pacote Equivalente Python API Pública? Dificuldade Notas
ipeadatar ipeadatapy (oficial) Sim - REST API documentada Fácil Port direto
orcamentoBR Nenhum Sim - SIOP SPARQL endpoint Médio SPARQL, não REST
siconvr Nenhum Parcial - Plataforma +Brasil CSV Médio Sem REST API limpa
BacenAPI BacenAPI (Python) Sim - BCB SGS API Fácil Port oficial
rbcb python-bcb Sim - BCB OData API Fácil Bem mantido
GetTDData tesouro-direto-br (parcial) Sim - Excel files públicos Fácil Escopo diferente
bndesr Nenhum Sim - BNDES CKAN com API Fácil Exemplos Python no GitHub
BETS python-bcb + brazilian-data Sim - BCB/IBGE/IPEA públicos Médio Agrega múltiplas fontes

Eleitorais (2 pacotes)

Pacote Equivalente Dificuldade Notas
electionsBR electionsBR (Python) Fácil TSE + CepespData API
speechbr camaraPy (parcial) Fácil Câmara REST API documentada

Espaciais (3 pacotes)

Pacote Equivalente Dificuldade Notas
geobr geobr (Python oficial) Difícil Dados espaciais, geopandas
geocodebr Nenhum (geopy genérico) Difícil Geocoding complexo, CNEFE
cepR brazilcep Fácil API ViaCEP pública

Meio Ambiente (4 pacotes)

Pacote Equivalente Dificuldade Notas
brclimr Nenhum Médio Parquet no Zenodo
BrazilMet inmetpy Fácil API INMET pública
florabr Nenhum Médio Flora e Funga do Brasil
flora Nenhum Médio Flora 2020 checklist

População (3 pacotes)

Pacote Equivalente Dificuldade Notas
censobr ibge-parser (parcial) Difícil Microdados censo, Arrow/Parquet
brpop PySUS Fácil Estimativas populacionais
PNADcIBGE pynad Médio FTP, pesos amostrais

Saúde (3 pacotes)

Pacote Equivalente Dificuldade Notas
microdatasus PySUS + datasus-fetcher Médio FTP DataSUS, formato DBC
PNSIBGE lerMicrodados (parcial) Médio Microdados PNS
COVIDIBGE lerMicrodados (parcial) Médio PNAD COVID

Segurança (2 pacotes)

Pacote Equivalente Dificuldade Notas
BrazilCrime Nenhum Médio SINESP, sem API estável
ispdata Nenhum Fácil ISP-RJ CSV downloads

Transportes (3 pacotes)

Pacote Equivalente Dificuldade Notas
flightsbr Nenhum Médio ANAC API
odbr Nenhum Médio Pesquisas OD, dados espaciais
aopdata Nenhum Médio IPEA CSV/geopackage

Miscelânea (6 pacotes)

Pacote Equivalente Dificuldade Notas
owdbr Nenhum Fácil Transparencia.gov.br Swagger API
abjData Nenhum Fácil Datasets estáticos
aebdata Nenhum Médio Atlas do Estado Brasileiro
sidrar sidrapy Fácil IBGE SIDRA API
basedosdados basedosdados (oficial) Fácil BigQuery, precisa GCP
datazoom.amazonia Nenhum Difícil Multi-fonte (PRODES, INPE, IBGE)

Priorização para implementação no raspe

Tier 1: Implementar primeiro (sem equivalente + fácil + alta demanda)

  1. owdbr — API REST do Portal da Transparência com documentação Swagger
  2. ispdata — Downloads CSV simples do ISP-RJ (segurança pública do Rio)
  3. bndesr — Portal CKAN do BNDES com API e exemplos em Python

Tier 2: Quick wins (já tem equivalente Python para encapsular)

  1. ipeadata — ipeadatapy já existe no PyPI
  2. sidrar — sidrapy já existe no PyPI
  3. BacenAPI — python-bcb já existe no PyPI

Tier 3: Estratégicos (sem equivalente, valor alto)

  1. flightsbr — Dados de aviação da ANAC
  2. brclimr — Dados climáticos/meteorológicos
  3. orcamentoBR — Orçamento federal via SIOP SPARQL
  4. BrazilCrime — Dados de segurança pública do SINESP

Estatísticas gerais

Métrica Valor
Total de pacotes analisados 34 (excluindo utilitários)
Com equivalente Python direto 12 (35%)
Com equivalente parcial 6 (18%)
Sem equivalente 16 (47%)
Dificuldade fácil 16 (47%)
Dificuldade média 13 (38%)
Dificuldade difícil 5 (15%)

Fases de implementação propostas

Fase 1: APIs REST simples

  • Pacotes: ipeadata, BacenAPI, sidrar, owdbr, ispdata, bndesr
  • Escopo: 6-8 scrapers

Fase 2: Portais e APIs complexas

  • Pacotes: flightsbr, aopdata, brclimr, orcamentoBR
  • Escopo: 4 scrapers

Fase 3: Pacotes complexos (brverse-py separado)

  • Pacotes: censobr, geobr, PNADcIBGE, flora, datazoom.amazonia
  • Escopo: Repositório separado, rpy2 como fallback

Pacotes Python unificados relacionados

Vale considerar como referência ou dependência:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions