DadosAbertosBrasil ._ibge .misc
Submódulo IBGE contendo funções diversas.
Este submódulo é importado automaticamente com o módulo
ibge
.
>>> from DadosAbertosBrasil import ibge
View Source
"""Submódulo IBGE contendo funções diversas. Este submódulo é importado automaticamente com o módulo `ibge`. >>> from DadosAbertosBrasil import ibge """ from typing import Optional, Union import pandas as pd import requests from DadosAbertosBrasil._utils import parse from DadosAbertosBrasil._utils.errors import DAB_LocalidadeError from DadosAbertosBrasil._utils.get_data import get_data _normalize = pd.io.json.json_normalize \ if pd.__version__[0] == '0' else pd.json_normalize def populacao( projecao: Optional[str] = None, localidade: Optional[int] = None ) -> Union[dict, int]: """Obtém a projecao da população referente ao Brasil. Parameters ---------- projecao : {'populacao', 'nascimento', 'obito', 'incremento'}, optional - 'populacao' obtém o valor projetado da população total da localidade; - 'nascimento' obtém o valor projetado de nascimentos da localidade - 'obito' obtém o valor projetado de óbitos da localidade; - 'incremento' obtém o incremento populacional projetado. - None obtém um dicionário com todos os valores anteriores. localidade : int, optional Código da localidade desejada. Por padrão, obtém os valores do Brasil. Utilize a função `ibge.localidades` para identificar a localidade desejada. Returns ------- dict Dicionário de projeções. int Valor projetado para o indicador escolhido. Raises ------ DAB_LocalidadeError Caso código da localidade seja inválido. ValueError Caso o argumento `projecao` seja inválido. Examples -------- Projeção de óbito do Brasil. >>> ibge.populacao('obito') 45000 Obter dados do Rio de Janeiro (localidade 33) >>> ibge.populacao(localidade=33) { 'localidade': '33', 'horario': '03/07/2021 19:15:48', 'projecao': { 'populacao': 17459953, 'periodoMedio': { 'incrementoPopulacional': 330508 } } } """ localidade = parse.localidade(localidade, '') query = f'https://servicodados.ibge.gov.br/api/v1/projecoes/populacao/{localidade}' r = requests.get(query).json() if projecao == None: return r elif projecao == 'populacao': return r['projecao']['populacao'] elif projecao == 'nascimento': return r['projecao']['periodoMedio']['nascimento'] elif projecao == 'obito': return r['projecao']['periodoMedio']['obito'] elif projecao == 'incremento': return r['projecao']['periodoMedio']['incrementoPopulacional'] else: raise ValueError('''O argumento 'projecao' deve ser um dos seguintes valores tipo string: - 'populacao'; - 'nascimento'; - 'obito'; - 'incremento'.''') def localidades( nivel: str = 'distritos', divisoes: Optional[str] = None, localidade: Union[int, str, list] = None, ordenar_por: Optional[str] = None, index: bool = False ) -> pd.DataFrame: """Obtém o conjunto de localidades do Brasil e suas intrarregiões. Parameters ---------- nivel : str, default='distritos' Nível geográfico dos dados. divisoes : str, optional Subdiviões intrarregionais do nível. Se None, captura todos os registros do `nivel`. localidade : int or str or list, optional ID (os lista de IDs) da localidade que filtrará o `nivel`. ordenar_por : str, optional Coluna pela qual a tabela será ordenada. index : bool, default=False Se True, defina a coluna 'id' como index do DataFrame. Returns ------- pandas.core.frame.DataFrame DataFrame contendo os localidades desejadas. Raises ------ DAB_LocalidadeError Caso o nível geográfico seja inválido. Examples -------- 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 .. ... ... ... ... References ---------- .. [1] https://servicodados.ibge.gov.br/api/docs/localidades """ NIVEIS = { 'distritos', 'estados', 'mesorregioes', 'microrregioes', 'municipios', 'regioes-imediatas', 'regioes-intermediarias', 'regioes', 'paises' } nivel = nivel.lower() if nivel not in NIVEIS: raise DAB_LocalidadeError(f'''Nível inválido: Preencha o argumento `nivel` com um dos seguintes valores: {NIVEIS}''') path = ['localidades', nivel] params = {} if localidade is not None: if isinstance(localidade, list): localidade = '|'.join([str(loc) for loc in localidade]) path.append(localidade) if divisoes is not None: divisoes = divisoes.lower() if divisoes not in NIVEIS: raise DAB_LocalidadeError(f'''Subdivisões inválida: Preencha o argumento `divisoes` com um dos seguintes valores: {NIVEIS}''') if nivel != divisoes: path.append(divisoes) if ordenar_por is not None: params['orderBy'] = ordenar_por data = get_data( endpoint = 'https://servicodados.ibge.gov.br/api/v1/', path = path, params = params ) df = _normalize(data) def _loc_columns(x: str) -> str: y = x.replace('-', '_').split('.') return f'{y[-2]}_{y[-1]}' if len(y)>1 else y[0] df.columns = df.columns.map(_loc_columns) if index: df.set_index('id', inplace=True) return df def malha( localidade: int, nivel: str = 'estados', divisoes: Optional[str] = None, periodo: int = 2020, formato: str = 'svg', qualidade: str = 'minima' ) -> Union[str, dict]: """Obtém a URL para a malha referente ao identificador da localidade. Parameters ---------- localidade : int, optional Código da localidade desejada. Utilize a função `ibge.localidades` para identificar a localidade. nivel : str, default='estados' Nível geográfico dos dados. divisoes : str, optional Subdiviões intrarregionais do nível. Se None, apresenta a malha sem subdivisões. periodo : int, default=2020 Ano da revisão da malha. formato : {'svg', 'json', 'geojson'}, default='svg' Formato dos dados da malha. qualidade : {'minima', 'intermediaria', 'maxima'}, default='minima' Qualidade de imagem da malha. Returns ------- str Se formato='svg', retorna a URL da malha da localidade desejada. dict Se formato='json', retorna a malha em formato TopoJSON. dict Se formato='geojson', retorna a malha em formato GeoJSON. Raises ------ DAB_LocalidadeError Caso o nível geográfico seja inválido. References ---------- .. [1] https://servicodados.ibge.gov.br/api/docs/malhas?versao=3 Examples -------- 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], ... """ FORMATOS = { 'svg': 'image/svg+xml', 'geojson': 'application/vnd.geo+json', 'json': 'application/json' } NIVEIS = { 'estados', 'mesorregioes', 'microrregioes', 'municipios', 'regioes-imediatas', 'regioes-intermediarias', 'regioes', 'paises' } DIVISOES = { 'uf', 'mesorregiao', 'microrregiao', 'municipio', 'regiao-imediata', 'regiao-intermediaria', 'regiao' } nivel = nivel.lower() if nivel not in NIVEIS: raise DAB_LocalidadeError(f'''Nível inválido: Preencha o argumento `nivel` com um dos seguintes valores: {NIVEIS}''') path = ['malhas', nivel, localidade] params = { 'periodo': periodo, 'qualidade': qualidade.lower(), 'formato': FORMATOS[formato.lower()] } if divisoes is not None: divisoes = divisoes.lower() if divisoes not in DIVISOES: raise DAB_LocalidadeError(f'''Subdivisões inválida: Preencha o argumento `divisoes` com um dos seguintes valores: {DIVISOES}''') if nivel != divisoes: params['intrarregiao'] = divisoes url = 'https://servicodados.ibge.gov.br/api/v3/' url += '/'.join([str(p) for p in path]) data = requests.get( url = url, params = params ) if formato.lower().endswith('json'): return data.json() else: return data.url def coordenadas() -> pd.DataFrame: """Obtém as coordenadas de todas as localidades brasileiras, incluindo latitude, longitude e altitude. Returns ------- pandas.core.frame.DataFrame DataFrame das coordenadas de todas as localidade brasileiras. Examples -------- >>> ibge.coordenadas() GM_PONTO ID CD_GEOCODIGO TIPO CD_GEOCODBA NM_BAIRRO ... 0 NaN 1 110001505000001 URBANO 1.100015e+11 Redondo ... 1 NaN 2 110001515000001 URBANO NaN NaN ... 2 NaN 3 110001520000001 URBANO NaN NaN ... 3 NaN 4 110001525000001 URBANO NaN NaN ... 4 NaN 5 110001530000001 URBANO NaN NaN ... .. ... .. ... ... ... ... ... """ return pd.read_csv( r'https://raw.githubusercontent.com/GusFurtado/DadosAbertosBrasil/master/data/coordenadas.csv', sep = ';' )
#  
def
populacao( projecao: Union[str, NoneType] = None, localidade: Union[int,
NoneType] = None ) -> Union[dict, int]:
View Source
def populacao( projecao: Optional[str] = None, localidade: Optional[int] = None ) -> Union[dict, int]: """Obtém a projecao da população referente ao Brasil. Parameters ---------- projecao : {'populacao', 'nascimento', 'obito', 'incremento'}, optional - 'populacao' obtém o valor projetado da população total da localidade; - 'nascimento' obtém o valor projetado de nascimentos da localidade - 'obito' obtém o valor projetado de óbitos da localidade; - 'incremento' obtém o incremento populacional projetado. - None obtém um dicionário com todos os valores anteriores. localidade : int, optional Código da localidade desejada. Por padrão, obtém os valores do Brasil. Utilize a função `ibge.localidades` para identificar a localidade desejada. Returns ------- dict Dicionário de projeções. int Valor projetado para o indicador escolhido. Raises ------ DAB_LocalidadeError Caso código da localidade seja inválido. ValueError Caso o argumento `projecao` seja inválido. Examples -------- Projeção de óbito do Brasil. >>> ibge.populacao('obito') 45000 Obter dados do Rio de Janeiro (localidade 33) >>> ibge.populacao(localidade=33) { 'localidade': '33', 'horario': '03/07/2021 19:15:48', 'projecao': { 'populacao': 17459953, 'periodoMedio': { 'incrementoPopulacional': 330508 } } } """ localidade = parse.localidade(localidade, '') query = f'https://servicodados.ibge.gov.br/api/v1/projecoes/populacao/{localidade}' r = requests.get(query).json() if projecao == None: return r elif projecao == 'populacao': return r['projecao']['populacao'] elif projecao == 'nascimento': return r['projecao']['periodoMedio']['nascimento'] elif projecao == 'obito': return r['projecao']['periodoMedio']['obito'] elif projecao == 'incremento': return r['projecao']['periodoMedio']['incrementoPopulacional'] else: raise ValueError('''O argumento 'projecao' deve ser um dos seguintes valores tipo string: - 'populacao'; - 'nascimento'; - 'obito'; - 'incremento'.''')
Obtém a projecao da população referente ao Brasil.
Parameters
-
projecao ({'populacao', 'nascimento', 'obito',
'incremento'}, optional):
- 'populacao' obtém o valor projetado da população total da localidade;
- 'nascimento' obtém o valor projetado de nascimentos da localidade
- 'obito' obtém o valor projetado de óbitos da localidade;
- 'incremento' obtém o incremento populacional projetado.
- None obtém um dicionário com todos os valores anteriores.
-
localidade (int, optional): Código da localidade
desejada. Por padrão, obtém os valores do Brasil. Utilize a função
ibge.localidades
para identificar a localidade desejada.
Returns
- dict: Dicionário de projeções.
- int: Valor projetado para o indicador escolhido.
Raises
- DAB_LocalidadeError: Caso código da localidade seja inválido.
-
ValueError: Caso o argumento
projecao
seja inválido.
Examples
- Projeção de óbito do Brasil.
>>> ibge.populacao('obito')
45000
- Obter dados do Rio de Janeiro (localidade 33).
>>> ibge.populacao(localidade=33)
{
'localidade': '33',
'horario': '03/07/2021 19:15:48',
'projecao': {
'populacao': 17459953,
'periodoMedio': {
'incrementoPopulacional': 330508
}
}
}
#  
def
localidades( nivel: str = 'distritos', divisoes: Union[str, NoneType]
= None, localidade: Union[int, str, list] = None, ordenar_por:
Union[str, NoneType] = None, index: bool = False ) ->
pandas.core.frame.DataFrame:
View Source
def localidades( nivel: str = 'distritos', divisoes: Optional[str] = None, localidade: Union[int, str, list] = None, ordenar_por: Optional[str] = None, index: bool = False ) -> pd.DataFrame: """Obtém o conjunto de localidades do Brasil e suas intrarregiões. Parameters ---------- nivel : str, default='distritos' Nível geográfico dos dados. divisoes : str, optional Subdiviões intrarregionais do nível. Se None, captura todos os registros do `nivel`. localidade : int or str or list, optional ID (os lista de IDs) da localidade que filtrará o `nivel`. ordenar_por : str, optional Coluna pela qual a tabela será ordenada. index : bool, default=False Se True, defina a coluna 'id' como index do DataFrame. Returns ------- pandas.core.frame.DataFrame DataFrame contendo os localidades desejadas. Raises ------ DAB_LocalidadeError Caso o nível geográfico seja inválido. Examples -------- 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 .. ... ... ... ... References ---------- .. [1] https://servicodados.ibge.gov.br/api/docs/localidades """ NIVEIS = { 'distritos', 'estados', 'mesorregioes', 'microrregioes', 'municipios', 'regioes-imediatas', 'regioes-intermediarias', 'regioes', 'paises' } nivel = nivel.lower() if nivel not in NIVEIS: raise DAB_LocalidadeError(f'''Nível inválido: Preencha o argumento `nivel` com um dos seguintes valores: {NIVEIS}''') path = ['localidades', nivel] params = {} if localidade is not None: if isinstance(localidade, list): localidade = '|'.join([str(loc) for loc in localidade]) path.append(localidade) if divisoes is not None: divisoes = divisoes.lower() if divisoes not in NIVEIS: raise DAB_LocalidadeError(f'''Subdivisões inválida: Preencha o argumento `divisoes` com um dos seguintes valores: {NIVEIS}''') if nivel != divisoes: path.append(divisoes) if ordenar_por is not None: params['orderBy'] = ordenar_por data = get_data( endpoint = 'https://servicodados.ibge.gov.br/api/v1/', path = path, params = params ) df = _normalize(data) def _loc_columns(x: str) -> str: y = x.replace('-', '_').split('.') return f'{y[-2]}_{y[-1]}' if len(y)>1 else y[0] df.columns = df.columns.map(_loc_columns) if index: df.set_index('id', inplace=True) return df
Obtém o conjunto de localidades do Brasil e suas intrarregiões.
Parameters
- nivel (str, default='distritos'): Nível geográfico dos dados.
-
divisoes (str, optional): Subdiviões
intrarregionais do nível. Se None, captura todos os registros do
nivel
. -
localidade (int or str or list, optional): ID (os
lista de IDs) da localidade que filtrará o
nivel
. - ordenar_por (str, optional): Coluna pela qual a tabela será ordenada.
- index (bool, default=False): Se True, defina a coluna 'id' como index do DataFrame.
Returns
- pandas.core.frame.DataFrame: DataFrame contendo os localidades desejadas.
Raises
- DAB_LocalidadeError: Caso o nível geográfico seja inválido.
Examples
- 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
.. ... ... ... ...
#  
def
malha( localidade: int, nivel: str = 'estados', divisoes:
Union[str, NoneType] = None, periodo: int = 2020, formato: str =
'svg', qualidade: str = 'minima' ) -> Union[str,
dict]:
View Source
def malha( localidade: int, nivel: str = 'estados', divisoes: Optional[str] = None, periodo: int = 2020, formato: str = 'svg', qualidade: str = 'minima' ) -> Union[str, dict]: """Obtém a URL para a malha referente ao identificador da localidade. Parameters ---------- localidade : int, optional Código da localidade desejada. Utilize a função `ibge.localidades` para identificar a localidade. nivel : str, default='estados' Nível geográfico dos dados. divisoes : str, optional Subdiviões intrarregionais do nível. Se None, apresenta a malha sem subdivisões. periodo : int, default=2020 Ano da revisão da malha. formato : {'svg', 'json', 'geojson'}, default='svg' Formato dos dados da malha. qualidade : {'minima', 'intermediaria', 'maxima'}, default='minima' Qualidade de imagem da malha. Returns ------- str Se formato='svg', retorna a URL da malha da localidade desejada. dict Se formato='json', retorna a malha em formato TopoJSON. dict Se formato='geojson', retorna a malha em formato GeoJSON. Raises ------ DAB_LocalidadeError Caso o nível geográfico seja inválido. References ---------- .. [1] https://servicodados.ibge.gov.br/api/docs/malhas?versao=3 Examples -------- 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], ... """ FORMATOS = { 'svg': 'image/svg+xml', 'geojson': 'application/vnd.geo+json', 'json': 'application/json' } NIVEIS = { 'estados', 'mesorregioes', 'microrregioes', 'municipios', 'regioes-imediatas', 'regioes-intermediarias', 'regioes', 'paises' } DIVISOES = { 'uf', 'mesorregiao', 'microrregiao', 'municipio', 'regiao-imediata', 'regiao-intermediaria', 'regiao' } nivel = nivel.lower() if nivel not in NIVEIS: raise DAB_LocalidadeError(f'''Nível inválido: Preencha o argumento `nivel` com um dos seguintes valores: {NIVEIS}''') path = ['malhas', nivel, localidade] params = { 'periodo': periodo, 'qualidade': qualidade.lower(), 'formato': FORMATOS[formato.lower()] } if divisoes is not None: divisoes = divisoes.lower() if divisoes not in DIVISOES: raise DAB_LocalidadeError(f'''Subdivisões inválida: Preencha o argumento `divisoes` com um dos seguintes valores: {DIVISOES}''') if nivel != divisoes: params['intrarregiao'] = divisoes url = 'https://servicodados.ibge.gov.br/api/v3/' url += '/'.join([str(p) for p in path]) data = requests.get( url = url, params = params ) if formato.lower().endswith('json'): return data.json() else: return data.url
Obtém a URL para a malha referente ao identificador da localidade.
Parameters
-
localidade (int, optional): Código da localidade
desejada. Utilize a função
ibge.localidades
para identificar a localidade. - nivel (str, default='estados'): Nível geográfico dos dados.
- divisoes (str, optional): Subdiviões intrarregionais do nível. Se None, apresenta a malha sem subdivisões.
- periodo (int, default=2020): Ano da revisão da malha.
- formato ({'svg', 'json', 'geojson'}, default='svg'): Formato dos dados da malha.
- qualidade ({'minima', 'intermediaria', 'maxima'}, default='minima'): Qualidade de imagem da malha.
Returns
- str: Se formato='svg', retorna a URL da malha da localidade desejada.
- dict: Se formato='json', retorna a malha em formato TopoJSON.
- dict: Se formato='geojson', retorna a malha em formato GeoJSON.
Raises
- DAB_LocalidadeError: Caso o nível geográfico seja inválido.
Examples
- 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], ...
View Source
def coordenadas() -> pd.DataFrame: """Obtém as coordenadas de todas as localidades brasileiras, incluindo latitude, longitude e altitude. Returns ------- pandas.core.frame.DataFrame DataFrame das coordenadas de todas as localidade brasileiras. Examples -------- >>> ibge.coordenadas() GM_PONTO ID CD_GEOCODIGO TIPO CD_GEOCODBA NM_BAIRRO ... 0 NaN 1 110001505000001 URBANO 1.100015e+11 Redondo ... 1 NaN 2 110001515000001 URBANO NaN NaN ... 2 NaN 3 110001520000001 URBANO NaN NaN ... 3 NaN 4 110001525000001 URBANO NaN NaN ... 4 NaN 5 110001530000001 URBANO NaN NaN ... .. ... .. ... ... ... ... ... """ return pd.read_csv( r'https://raw.githubusercontent.com/GusFurtado/DadosAbertosBrasil/master/data/coordenadas.csv', sep = ';' )
Obtém as coordenadas de todas as localidades brasileiras, incluindo latitude, longitude e altitude.
Returns
- pandas.core.frame.DataFrame: DataFrame das coordenadas de todas as localidade brasileiras.
Examples
>>> ibge.coordenadas()
GM_PONTO ID CD_GEOCODIGO TIPO CD_GEOCODBA NM_BAIRRO ...
0 NaN 1 110001505000001 URBANO 1.100015e+11 Redondo ...
1 NaN 2 110001515000001 URBANO NaN NaN ...
2 NaN 3 110001520000001 URBANO NaN NaN ...
3 NaN 4 110001525000001 URBANO NaN NaN ...
4 NaN 5 110001530000001 URBANO NaN NaN ...
.. ... .. ... ... ... ... ...