O Objetivo aqui será plotar dados das fronteiras das regiões brasileiras através de arquivos shapefiles coletados do IBGE.
A página web onde os links foram encontrados é este aqui e os últimos disponíveis são de 2021.
Importando bibliotecas do Python
from datetime import datetime
#necessárias para o download dos arquivos
import requests
#necessárias para processas os dados geoespaciais
import pandas as pd
import geopandas as gpd
import matplotlib.pyplot as plt
Definindo os dados
Neste artigo, construimos um dicionário com os links que encontramos no site do IBGE.
arquivos = {
'brasil': 'https://geoftp.ibge.gov.br/organizacao_do_territorio/malhas_territoriais/malhas_municipais/municipio_2021/Brasil/BR/BR_Pais_2021.zip',
'rga':'https://geoftp.ibge.gov.br/organizacao_do_territorio/malhas_territoriais/malhas_municipais/municipio_2021/Brasil/BR/BR_RG_Intermediarias_2021.zip',
'rgi':'https://geoftp.ibge.gov.br/organizacao_do_territorio/malhas_territoriais/malhas_municipais/municipio_2021/Brasil/BR/BR_RG_Imediatas_2021.zip',
'rgme':'https://geoftp.ibge.gov.br/organizacao_do_territorio/malhas_territoriais/malhas_municipais/municipio_2021/Brasil/BR/BR_Mesorregioes_2021.zip',
'rgmi':'https://geoftp.ibge.gov.br/organizacao_do_territorio/malhas_territoriais/malhas_municipais/municipio_2021/Brasil/BR/BR_Microrregioes_2021.zip',
'uf': 'https://geoftp.ibge.gov.br/organizacao_do_territorio/malhas_territoriais/malhas_municipais/municipio_2021/Brasil/BR/BR_UF_2021.zip',
'mun': 'https://geoftp.ibge.gov.br/organizacao_do_territorio/malhas_territoriais/malhas_municipais/municipio_2021/Brasil/BR/BR_Municipios_2021.zip'
}
Baixando arquivos
for i in arquivos:
arquivo = i+".zip"
remote_url = arquivos[i]
print("Coletando: "+remote_url)
data = requests.get(remote_url)
with open("./inputs/"+arquivo, 'wb') as file:
file.write(data.content)
Plotando as Regiões brasileiras
Agora que baixamos todos os arquivos, vamos plotar alguns exemplos
Arquivo de Estados (UF)
df = gpd.read_file('zip://inputs/uf.zip')
df.head()

df[df['NM_REGIAO']=='Nordeste'].plot()

Municípios
df = gpd.read_file('zip://inputs/mun.zip')
df.head()

df[df['SIGLA']=='MG'].plot(column="NM_MUN",cmap="YlGnBu")

Para ver o notebook: