O Serviço Geológico do Brasil (SGB, ex-CPRM) deu um passo histórico em 2025: passou a disponibilizar o Mapa Geológico do Brasil em shapefile gratuitamente, via portal GeoSGB. Isso é um divisor de águas para geólogos, engenheiros e cientistas de dados — a geologia oficial do país, aberta e pronta para análise espacial.
Neste tutorial prático, você vai aprender: onde baixar, como carregar com GeoPandas e Folium em Python, como lidar com CRS/EPSG e como cruzar esses dados com sondagens — o fluxo que usamos na IlhaGeo em projetos reais.
1. Onde baixar o Mapa Geológico do Brasil (shapefile)
Acesse o portal GeoSGB do SGB e navegue até as camadas do Mapa Geológico do Brasil. Em 2025, a disponibilização em shapefile foi amplamente divulgada no setor (ex.: MundoGEO) como um avanço para o uso de dados geoespaciais oficiais.
- Camadas típicas: litologia (polígonos), estruturas (linhas), recursos minerais (pontos), hidrogeologia e províncias;
- Formatos: Shapefile e GeoJSON, prontos para GIS e Python;
- Escalas: nacional (1:1.000.000) e folhas regionais mais detalhadas.
Você também encontra bases complementares gratuitas em fontes como o USGS e dados SRTM/ALOS para relevo.
2. Carregando o shapefile com GeoPandas
Instale as dependências e leia o shapefile em poucas linhas:
pip install geopandas folium matplotlib
import geopandas as gpd
# Carrega o Mapa Geológico (camada de litologia)
geo = gpd.read_file("geologia_brasil.shp")
print(geo.head())
print(geo.crs) # verifica o sistema de coordenadas
O GeoPandas estende o Pandas para dados geoespaciais: cada linha é uma feição e a
geometria vive na coluna geometry. A partir daí, você pode filtrar, agrupar por litologia
e reprojetar.
3. Trabalhando com CRS/EPSG (não pule esta etapa!)
Erro clássico: plotar camadas em sistemas de coordenadas diferentes e o mapa "não bate". No Brasil, os casos mais comuns:
- SIRGAS 2000 — datum oficial brasileiro (EPSG:4674 em graus);
- UTM — projeção por zona (ex.: EPSG:31982–31984 para SC/RS);
- WGS 84 — usado por GPS e webmaps (EPSG:4326).
# Reprojeta para SIRGAS 2000 (graus) e depois para UTM 22S
geo = geo.to_crs(epsg=4674)
geo_utm = geo.to_crs(epsg=31982) # UTM zona 22S (SC)
print(geo.crs, geo_utm.crs)
Regra de ouro: antes de qualquer análise espacial, garanta que todas as camadas estejam
no mesmo CRS. O to_crs() resolve isso em uma linha.
4. Criando um mapa interativo com Folium
Para apresentar os dados no navegador (e encantar clientes), o Folium (Leaflet.js) é imbatível:
import folium
m = folium.Map(location=[-27.6, -48.5], zoom_start=8)
# Adiciona as camadas de litologia como GeoJson
folium.GeoJson(geo.to_crs(epsg=4326).__geo_interface__,
name="Litologia").add_to(m)
folium.LayerControl().add_to(m)
m.save("mapa_geologico.html")
O resultado é um mapa interativo com zoom, camadas e estilos — ideal para relatórios, laudos e portfólio.
5. Cruzando o mapa geológico com sondagens
A aplicação mais valiosa: descobrir qual litologia cada sondagem atravessa. Com o
sjoin (join espacial), o cruzamento é direto:
# sondagens: GeoDataFrame de pontos (coordenadas dos furos)
sondagens = gpd.read_file("sondagens.shp").to_crs(epsg=4674)
geo = geo.to_crs(epsg=4674)
# Join espacial: cada furo herda a litologia do polígono
cruzado = gpd.sjoin(sondagens, geo, how="left", predicate="within")
print(cruzado[["cod_furo", "LITO_ESTRAT", "geometry"]].head())
Esse cruzamento embasa perfis geológicos, laudos de fundação e prospecção — e é um diferencial técnico enorme frente a quem trabalha só com dados pontuais.
6. Fontes e referências
- GeoSGB — banco de dados geoinformacionais do SGB
- SGB disponibiliza Mapa Geológico do Brasil em shapefile (MundoGEO, 2025)
- Como baixar dados no portal GeoSGB (ClickGeo)
- GeoPandas — Plotting with Folium (docs oficiais)
- GeoPandas Basics (Real Python)
7. Perguntas frequentes
Preciso saber programar para usar esses dados?
Para o fluxo completo (GeoPandas/Folium), sim — Python é o caminho. Mas dá para visualizar no QGIS (gratuito) sem programar. A IlhaGeo faz os dois para você.
Os dados do SGB são realmente gratuitos?
Sim. Os dados do SGB/CPRM são públicos. Recomenda-se citar a fonte e respeitar a escala de precisão do mapa.
Qual a diferença entre Shapefile e GeoJSON?
São formatos vetoriais: o shapefile é o formato clássico de GIS (múltiplos arquivos); o GeoJSON é um formato aberto JSON, mais simples para web e Python. O GeoPandas lê ambos.