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.

🎯 TL;DR: dados oficiais gratuitos + Python = mapas geológicos e análises espaciais de alto nível, sem depender de softwares caros. O segredo é dominar CRS e saber cruzar camadas.

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.

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:

# 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.

🧠 Diferencial IlhaGeo: integramos dados abertos do SGB/CPRM a sondagens, geofísica e modelos de IA. Transformamos dados brutos em mapas interativos e análises que aceleram decisões de engenharia.

6. Fontes e referências

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.