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.
python
>>> 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.
python
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.
python
>>> 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`.
python
>>> print(foto)
<DadosAbertosBrasil.ibge: Fotografia 35389>
Chamamos o método `url` do objeto `Fotografia` para obter um link para acessá-lo:
python
>>> 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
python
>>> 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.
python
>>> 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)
python
>>> 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.
python
>>> 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.
python
>>> 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.
python
>>> 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`.
python
>>> from DadosAbertosBrasil import ibge
DadosAbertosBrasil.UF
Foram adicionados os métodos `historia` e `galeria` ao objeto `UF`.
python
>>> from DadosAbertosBrasil import UF
>>> ac = UF('acre')
>>> historia = ac.historia()
>>> galeria = ac.galeria()