The zero-shot geospatial moment just got concrete
Allen AI's OlmoEarth Studio now exports embedding vectors—compact numerical representations of Earth observation data that you can download as Cloud-Optimized GeoTIFFs and throw at any downstream task you want. This matters because embeddings are usually locked inside proprietary platforms or require non-trivial infrastructure to compute yourself. OlmoEarth makes them a first-class export format.
The pitch is simple: pick your area of interest, time range, encoder variant (Nano at 128-dim, Tiny at 192-dim, or Base at 768-dim), resolution, and imagery sources (Sentinel-1, Sentinel-2, or both), and get back a COG with one band per embedding dimension. Values are quantized to signed 8-bit integers for portability. Everything is computed on-demand rather than pulled from a pre-computed archive, so you get exactly the temporal composites you care about—monthly embeddings for seasonal dynamics, not just annual snapshots.
What's quietly radical here is that this is open foundation models meeting geospatial tooling without requiring a PhD in either. The model weights, source code, and research paper are all public. The embeddings export as standard rasters that work with QGIS, GDAL, or rasterio. And the examples they ship with are legitimately simple.
Similarity search: finding "more like this" with a dot product
The first use case is almost embarrassingly straightforward. Pick a query pixel, extract its embedding, compute cosine similarity against every other pixel, and you get a heatmap of where the landscape looks most and least like your query.
In one example, they query a pixel near Merced, California—an urban center. Urban fabric and road corridors light up coherently while agricultural parcels stay dark. The model distinguishes built-up surfaces from cropland without any labels, just learned representations from pretraining.
Switch the query to a small agricultural window, and suddenly irrigated fields score highest (cosine similarity above 0.89). The least similar patches? An airport with surrounding bare ground, a reservoir with dry terrain, and arid rangeland. All cosine similarities near zero. No training data, no labels, just a dot product in embedding space.
This is the promise of foundation models cashed out in the most literal way possible: you get semantic similarity for free because the pretraining did the work.
Few-shot segmentation: 60 pixels → wall-to-wall land cover
Similarity search is neat for exploration, but sometimes you need discrete labels across a region. The few-shot segmentation example is where things get spicy.
They labeled just 60 pixels over Ca Mau, Vietnam—a coastal mangrove region. That's 20 pixels per class for three classes: mangrove, water, and other. Labels came from ESA WorldCover 2021. They trained a logistic regression with per-feature standardization and predicted every pixel in the region.
Weighted F1 score: 0.84. From 60 labeled pixels.
The classifier saturates quickly—increasing from 30 to 300 labels barely changes accuracy. The embeddings are doing the heavy lifting. This is a linear probe, the standard foundation model evaluation. The fact that logistic regression over 192 dimensions (the Tiny encoder) recovers land-cover boundaries from so few labels means the encoder organized these ecological distinctions during pretraining.
The core code is a few lines of Python:
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)
That's it. Mangrove stands, tidal channels, and open water delineated across the entire region from 60 training pixels and a linear model.
Change detection: spotting the Park Fire with cosine distance
Because Studio can generate embeddings at monthly resolution, you can compare two time periods directly to identify where surface conditions changed. They computed monthly Sentinel-2 embeddings for the same region in September 2023 and September 2024, then measured per-pixel cosine distance.
The Park Fire burn scar in Butte County, California—active July-September 2024—lights up immediately. No labels, no training, just two embedding COGs and a few lines of Python. The change signal falls straight out of the learned representations.
This is the kind of thing that used to require custom spectral indices, careful cloud masking, threshold tuning, and domain expertise. Now it's cosine distance between frozen embeddings.
Unsupervised exploration: PCA as a false-color view
Sometimes you have no query location, no reference labels, and no specific change event. You just want to see what structure exists in the embeddings. Principal Component Analysis (PCA) reduces to three dimensions, maps to RGB, and displays as a false-color image. Similar embeddings get similar colors automatically.
They show Flevoland in the Netherlands—a reclaimed polder landscape with a regular grid of agricultural parcels. The PCA false-color image reproduces those boundaries with high fidelity. Different crop types, water bodies, and urban areas each get distinct hues. The embedding internalized landscape structure without ever being told what a parcel or crop is.
This is unsupervised structure discovery as a visualization primitive. It's a quick diagnostic for seeing what the model picked up across your area of interest.
The engineering is the accessibility
What makes this announcement notable isn't a SOTA benchmark score (though they mention strong performance in internal and independent evaluations). It's that the infrastructure around foundation models for Earth observation is starting to look like infrastructure for NLP or vision: export the embeddings, use standard tools, compose your own pipeline.
The exported GeoTIFFs are lightweight and easy to share. The quantization to int8 keeps file sizes manageable. The source code for dequantization is public (dequantize_embeddings in olmoearth_pretrain). The examples all use the Tiny encoder (192-dim, 6.2M params), which is lightweight but highly performant. You can swap for Base (768-dim, 89M params) if you need richer representations at the cost of higher compute and storage.
For end-to-end reproduction, they ship an embeddings tutorial with working code for similarity search, few-shot segmentation, change detection, and PCA visualization. There's also a Colab notebook for hands-on experimentation without local setup.
When frozen embeddings aren't enough: supervised fine-tuning
All the examples in the post use frozen embeddings with no task-specific training. That's the point—embeddings are a fast, cost-effective entry point for leveraging OlmoEarth. They work well in resource-constrained environments and are easy to share.
But if your application requires higher performance, OlmoEarth Studio also supports supervised fine-tuning (SFT), training a task-specific model head on your own labels. Fine-tuning typically outperforms linear probes on frozen features, but it requires more infrastructure, more labels, and more iteration.
The embeddings-first workflow is smart positioning: lower the barrier to getting value, then offer a premium tier for applications that justify the investment.
What's still uncertain
The announcement is forthright about limitations. Performance depends on input imagery quality—persistent cloud cover, atmospheric artifacts, or missing observations in the composite period can affect the resulting vectors. They recommend checking embedding quality for your use case using the techniques described (similarity search, PCA, linear probes).
The global clustering visualization is striking—colors indicate 15 k-means clusters in a PCA-reduced embedding space over 1.1 million samples—but it's not clear how well these clusters generalize across different regions, sensor configurations, or temporal windows. The examples all use Sentinel-2 L2A imagery from the European Space Agency via Microsoft Planetary Computer, so domain shift remains an open question.
And while the few-shot segmentation results are impressive, the evaluation uses ESA WorldCover 2021 as the label source. That's a high-quality reference, but it's also a product of models and human interpretation. The 60-pixel experiment is a proof of concept, not a production validation.
The boring revolution
The real story here isn't flashy. It's that Allen AI built export infrastructure for embeddings as a first-class product feature, shipped public documentation, published the model weights and code, and wrote a blog post with four worked examples that each take a few lines of Python.
That's what productionizing foundation models looks like: not a benchmark table, but a workflow that makes the technology boring enough to use. Custom embedding exports are available now for OlmoEarth Studio users. Instructions for using the publicly available models to compute your own embeddings are also available.
The geospatial ML stack is getting simpler. That's the headline.