Skip to content

DadosAbertosBrasil v0.3.1

Compare
Choose a tag to compare
@GusFurtado GusFurtado released this 19 Sep 21:02
· 99 commits to master since this release

Este release trás um pouco de história para o DadosAbertosBrasil.

O módulo ibge for expandido com novas funções e classes para coleta de textos e fotos históricos de todas as localidades do Brasil. Convenientemente, a função ibge.localidade foi atualizada para facilitar a busca pelos códigos das localidades.

DadosAbertosBrasil.ibge.Historia

Captura textos da história e fundação da localidade desejada. Veja o exemplo onde o histórico de Belo Horizonte é instanciado na variável bh contendo atributos como fonte, autor, ano, etc.

>>> from DadosAbertosBrasil import ibge
>>> bh = ibge.Historia(localidade=310620)
>>> bh.historico
'Foi à procura de ouro que, no distante 1701, o bandeirante João Leite...'

>>> bh.historico_fonte
'Belo Horizonte (MG). Prefeitura. 2014. Disponível em: ...'

Confira todos os parâmetros e atributos na documentação.

help(ibge.Historia)

DadosAbertosBrasil.ibge.Galeria

Cria uma galeria de fotografia da localidade desejada.
A galeria é uma lista de objetos Fotografia, onde cada uma contém seus metadados, incluindo a URL para visualizá-la na web.
Veja o exemplo em que pegamos a URL da primeira foto da galeria de fotos de Fortaleza.

>>> galeria = ibge.Galeria(2304400)
>>> foto = galeria.fotografias[0]

A variável galeria é um objeto do tipo Galeria, cujo atributo fotografias é uma lista de objetos Fotografia.

>>> print(foto)
<DadosAbertosBrasil.ibge: Fotografia 35389>

Chamamos o método url do objeto Fotografia para obter um link para acessá-lo:

>>> foto.url(altura=500)
'https://servicodados.ibge.gov.br/api/v1/resize/image?maxwidth=500&max...'

DadosAbertosBrasil.ibge.localidade

A função localidades foi expandida para facilitar e melhorar a performance da busca por localidades.
Agora é possível definir o nível geográficos das localidades buscadas, filtrar e ordenar dados e definir as subdivisões.

Captura todos os estados do Brasil

>>> ibge.localidades(nivel='estados')
    id sigla                 nome  regiao_id regiao_sigla   regiao_nome
0   11    RO             Rondônia          1            N         Norte
1   12    AC                 Acre          1            N         Norte
2   13    AM             Amazonas          1            N         Norte
3   14    RR              Roraima          1            N         Norte
4   15    PA                 Pará          1            N         Norte
.. ...   ...                  ...        ...          ...           ...

Captura todos os distritos do Brasil, colocando o ID como index.

>>> ibge.localidades(index=True)
                          nome  municipio_id  ... regiao_sigla   regiao_nome
id                                            ...                           
520005005      Abadia de Goiás       5200050  ...           CO  Centro-Oeste
310010405  Abadia dos Dourados       3100104  ...           SE       Sudeste
520010005            Abadiânia       5200100  ...           CO  Centro-Oeste
520010010       Posse d'Abadia       5200100  ...           CO  Centro-Oeste
310020305               Abaeté       3100203  ...           SE       Sudeste
...                        ...           ...  ...          ...           ...

Captura todos os municípios do estado do Rio de Janeiro (localidade=33)

>>> ibge.localidades(nivel='estados', divisoes='municipios', localidade=33)
         id                nome  microrregiao_id           microrregiao_nome  \
0   3300100      Angra dos Reis            33013         Baía da Ilha Grande   
1   3300159             Aperibé            33002      Santo Antônio de Pádua   
2   3300209            Araruama            33010                       Lagos   
3   3300225               Areal            33005                   Três Rios   
4   3300233  Armação dos Búzios            33010                       Lagos   
..      ...                 ...              ...                         ...

DadosAbertosBrasil.ibge.malha

A função malha foi atualizada com a nova versão da API do IBGE, permitindo uma parametrização de subdivisões semelhantes à da função ibge.localidades. Além disso, há agora a opção de gerar uma URL para a malha em formato SVG ou gerar um arquivo JSON nos formatos TopoJSON ou GeoJSON.

Captura a malha do Distrito Federal (localidade=53) em formato GeoJSON.

>>> ibge.malha(localidade=53, formato='geojson')
{'type': 'FeatureCollection',
    'features': [{'type': 'Feature',
        'geometry': {'type': 'Polygon',
            'coordinates': [[[-47.31, -16.0363], ...

Captura a malha de Joinville em formato SVG com qualidade mínima.

>>> ibge.malha(
...     nivel = 'municipios',
...     localidade = 4209102,
...     formato = 'svg',
...     qualidade = 'minima'
... )
'https://servicodados.ibge.gov.br/api/v3/malhas/municipios/4209102?...'

Captura a malha do Brasil subdividido por UF em formato TopoJSON.

>>> ibge.malha(
...     nivel = 'paises',
...     localidade = 'BR',
...     divisoes = 'uf',
...     formato = 'json'
... )
{'type': 'Topology',
    'arcs': [[[32967, 111009], [-821, 372]],
        [[32146, 111381],
        [133, 124],
        [15, 106], ...

Remoção da dependência do openpyxl

Anteriormente, a função ibge.coordenadas dependia do pacote openpyxl (ou qualquer engine de Excel) para executar o pd.read_excel no arquivo contendo as coordenadas. Esse arquivo foi substituído por um .csv e a função foi substituída por pd.read_csv sem a necessidade de uma engine para leitura.

Reestruturação interna no módulo ibge

O módulo ibge foi quebrado em quatro submódulos para facilitar a expansão do módulo e categorizar os diversos serviços do IBGE. Os módulos são:

  • _ibge.cidades;
  • _ibge.sidra;
  • _ibge.nomes;
  • _ibge.misc.

Na prática, não fará diferença, pois eles são importados automaticamente com o módulo ibge.

>>> from DadosAbertosBrasil import ibge

DadosAbertosBrasil.UF

Foram adicionados os métodos historia e galeria ao objeto UF.

>>> from DadosAbertosBrasil import UF
>>> ac = UF('acre')
>>> historia = ac.historia()
>>> galeria = ac.galeria()