Introdução ao GeoMakie.jl
O GeoMakie.jl é um pacote da lignuagem Julia voltado para a criação de visualizações geográficas, funcionando como uma extensão do Makie.jl. Ele permite a manipulação e o plote de dados espaciais com suporte a diversas projeções cartográficas e formatos de dados geográficoss. Vale ressaltar que a biblioteca está em constante desenvolvimento.
Configuração Inicial
Para adicionar o GeoMakie ao seu ambiente Julia, utilize o gerenciador de pacotes padrão:
using Pkg
Pkg.add("GeoMakie")
Para verificar a versão instalada, você pode consultar o status do pacote:
Pkg.status("GeoMakie")
Exemplo Básico: Traçando Linhas Costeiras
O código a seguir demonstra como inicializar uma figura, configurar um eixo geográfico com a projeção Winkel Tripel e desenhar as linhas costeiras globais:
using GeoMakie
using GLMakie
# Inicializa a figura
fig_base = Figure()
# Configura o eixo geográfico definindo a projeção de destino
axis_geo = GeoAxis(fig_base[1, 1]; dest = "+proj=wintri")
# Adiciona as linhas costeiras ao gráfico
lines!(axis_geo, GeoMakie.coastlines())
# Renderiza o resultado
fig_base
Casos de Uso e Aplicações Práticas
Mapeamento de Superfícies Climáticas
Para visualizar dados contínuos, como a distribuição de temperaturas globais, podemos utilizar a função surface! com uma matriz de dados espaciais:
using GeoMakie
using GLMakie
# Geração de dados simulados de temperatura
lon_vals = -180:180
lat_vals = -90:90
temp_grid = [sin(deg2rad(lon)) * cos(deg2rad(lat)) for lon in lon_vals, lat in lat_vals]
# Criação da estrutura gráfica
fig_temp = Figure()
ax_eqearth = GeoAxis(fig_temp[1, 1]; dest = "+proj=eqearth")
# Plote da superfície térmica
surface!(ax_eqearth, lon_vals, lat_vals, temp_grid; colormap = :thermal)
fig_temp
Visualização de Polígonos Geográficos
Para renderizar fronteiras de países ou regiões, o GeoMakie oferece suporte a geometrias de polígonos através da função poly!:
using GeoMakie
using GLMakie
fig_poly = Figure()
ax_natearth = GeoAxis(fig_poly[1, 1]; dest = "+proj=natearth")
# Carrega os limites territoriais
world_borders = GeoMakie.countries()
# Desenha os primeiros 10 polígonos com cores variadas
poly!(ax_natearth, world_borders[1:10]; color = 1:10, colormap = :viridis)
fig_poly
Ecossistema e Integrações
Makie.jl
Como biblioteca base, o Makie.jl fornece a infraestrutura de renderização e o sistema de layout flexível que suporta diversos tipos de gráficos, desde dispersões até superfícies 3D.
Proj4.jl
Este pacote é o responsável pelas transformações matemáticas de coordenaads, permitindo que o GeoMakie converta entre diferentes sistemas de projeção cartográfica de forma eficiente.
GeoJSON.jl
Para leitura e manipulação de dados no formato GeoJSON, este pacote se integra perfeitamente, permitindo importar conjuntos de dados geográficos complexos para visualização no Makie.