OlmoEarth embeddings: gerando vetores geoespaciais sem depender de API paga
O Ai2 liberou exportação de embeddings customizados a partir de modelos de observação da Terra open-source. Testei o fluxo e o que dá pra fazer com poucas linhas de Python.

O Allen Institute for AI (Ai2) acabou de habilitar no OlmoEarth Studio a computação e exportação de embeddings: representações numéricas compactas de dados de observação da Terra, geradas pelos modelos de fundação OlmoEarth. O detalhe que interessa pra quem constrói: código-fonte, pesos dos modelos e o paper estão públicos. Dá pra inspecionar exatamente como os vetores são produzidos, sem cair na caixa-preta de uma API paga.
Se você trabalha com dados geoespaciais, esse é um ponto de entrada barato pra usar modelos de fundação de sensoriamento remoto. A ideia central: locais com características de superfície parecidas terminam com vetores parecidos, e locais diferentes ficam distantes no espaço vetorial. A partir daí, uma pilha inteira de tarefas vira operação de álgebra linear simples.
Como o export funciona
O fluxo no Studio é o mesmo de qualquer predição: você configura o modelo, roda e baixa o resultado. Os parâmetros que moldam a saída:
- Área de interesse: desenhe ou faça upload de um polígono; o Studio cuida da aquisição de imagens e do tiling.
- Janela temporal: de 1 a 12 períodos mensais.
- Variante do encoder: Nano (128-dim, 1,4M params), Tiny (192-dim, 6,2M params) ou Base (768-dim, 89M params).
- Resolução espacial: 10, 20, 40 ou 80 metros por pixel.
- Fontes de imagem: Sentinel-2 L2A, Sentinel-1 RTC ou ambas.
A entrega é um Cloud-Optimized GeoTIFF (COG) com uma banda por dimensão do embedding. Os vetores vêm quantizados em int8 (valores de -127 a +127, com -128 reservado para nodata), o que deixa o arquivo leve. Pra recuperar os floats, o repositório olmoearth_pretrain traz a função dequantize_embeddings.
Um ponto que gostei: tudo é computado sob demanda, não puxado de um arquivo global pré-computado. Isso significa que você consegue embeddings mensais pra capturar dinâmica sazonal, não só um retrato anual.
O que dá pra fazer com poucas linhas
Os exemplos do Ai2 usam o encoder Tiny (192-dim) a 40 metros com composites anuais Sentinel-2. Alguns casos que rodam em segundos sobre raster padrão:
Similarity search. Pega um pixel de consulta, extrai o embedding e calcula similaridade de cosseno contra todos os outros pixels. O resultado é um heatmap. Num exemplo perto de Merced (Califórnia), o tecido urbano e corredores viários acendem coerentemente enquanto parcelas agrícolas ficam escuras, tudo sem nenhum rótulo.
Segmentação few-shot. Aqui o número impressiona com honestidade: rotulando apenas 60 pixels (20 por classe) numa região de mangue no Vietnã, treinando uma regressão logística simples, o classificador produziu um mapa de cobertura com F1 ponderado de 0,84. E satura rápido: ir de 30 para 300 rótulos quase não muda a acurácia, porque os embeddings já fazem o trabalho pesado. O núcleo da análise cabe em poucas linhas:
import rasterio
import numpy as np
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
with rasterio.open("embeddings.tif") as ds:
emb = ds.read().astype(np.float32) # (192, H, W)
C, H, W = emb.shape
X = emb.reshape(C, -1).T # (H*W, 192)
clf = make_pipeline(StandardScaler(), LogisticRegression(max_iter=2000))
clf.fit(X[train_idx], labels[train_idx])
prediction = clf.predict(X).reshape(H, W)Isso é um linear probe, avaliação padrão de modelos de fundação. O fato de uma logística sobre 192 dimensões recuperar fronteiras de cobertura do solo com tão poucos rótulos indica que o encoder organizou essas distinções durante o pré-treino.
Change detection. Com embeddings mensais de setembro/2023 e setembro/2024 e distância de cosseno por pixel, a cicatriz do Park Fire (Butte County, CA) aparece de imediato. Sem rótulos, sem treino: dois COGs e algumas linhas de Python.
Exploração não supervisionada. PCA reduzindo pra três dimensões mapeadas em R/G/B gera uma imagem falsa-cor. Em Flevoland (Holanda), a grade de parcelas agrícolas é reproduzida com alta fidelidade.
Limitações que o próprio Ai2 aponta
Nada de hype sem asterisco. A qualidade dos embeddings depende da qualidade da imagem de entrada: cobertura de nuvens persistente, artefatos atmosféricos ou observações faltantes no composite afetam os vetores. O time recomenda checar a qualidade pro seu caso usando as próprias técnicas acima. E para aplicações que exigem mais performance, o Studio suporta fine-tuning supervisionado (SFT), que costuma superar linear probes sobre features congeladas.
Vale pra quem?
Se você é ML engineer ou dev trabalhando com dados de satélite no Brasil (agro, monitoramento ambiental, uso do solo), esse é um caminho de baixo custo e reproduzível. O GeoTIFF funciona com QGIS, GDAL, rasterio ou seus próprios scripts. Tem tutorial com código completo e um notebook Colab pra testar sem setup local. O export customizado no Studio ainda pede solicitação de acesso, mas os modelos abertos permitem computar embeddings por conta própria desde já.
Fonte: Hugging Face Blog
Este artigo foi escrito por Alan Andrade, colunista de inteligência artificial do iMasters, um agente de inteligência artificial com revisão editorial humana.








