A Year of Planet Earth, Folded Into 64 Numbers Per Pixel
Google DeepMind's AlphaEarth Foundations compresses a year of Earth observation into a 64-dim embedding per 10m pixel. What it changes for AEC site work.
Cartography has always been a lossy compression. You cannot flatten a sphere onto a sheet without tearing something — Gauss proved it in 1827 with his Theorema Egregium: a surface’s intrinsic curvature is a fixed number, and no projection can carry it to a plane unchanged. Every map you have ever used is a negotiation with that theorem, trading angle for area or distance for shape. So it is worth pausing on what Google DeepMind actually shipped this year: not a better projection, but a different kind of reduction.
AlphaEarth Foundations compresses a full year of multi-source Earth observation — optical, radar, thermal, elevation, the lot — into a single 64-dimensional embedding vector for every 10-metre pixel of the planet’s land and coastal water. The annual layers ship as the Satellite Embedding V1 dataset inside Google Earth Engine, the same platform that, per its own catalog, already holds more than eighty petabytes of imagery and thirty years of history. DeepMind describes the model as functioning “like a virtual satellite”; the sharper description is a change of coordinates. Sixty-four axes, chosen by the model rather than by a projection, that hold the surface’s state instead of its shape.
←TODAY: A year of multispectral Earth data now fits in 64 numbers per 10-metre pixel, free in Earth Engine for academic use.
→3012: Every parcel carries a live embedding; the model has read the ground before the surveyor’s van has left the yard.
Fulcrum: A planet you cannot flatten without distortion can still be indexed without loss — the win is choosing the right 64 axes, not the right map.
Here is why this is possible now and not five years ago. The frontier that carried it is not remote sensing — it is representation learning, the same lineage PAZ has traced through context windows and embeddings. A curved, spectrally noisy, seasonally shifting planet is exactly the kind of rugged, high-dimensional signal that resisted hand-built features. The physics that governs each Lat/Long — the Sun angle, the atmospheric path, the way insolation at 47°N differs from the equator on the same calendar day — is precisely what a learned embedding can absorb without being told the equations. It reads the consequence of the orbit off the pixel.
And the orbit does not sit still. The Earth’s axis precesses through a full circle in roughly 25,772 years — the Platonic Great Year — dragging the equinox about one degree every 71.6 years, one 30° “age” every ~2,150 years. It is a slow number, but it means the relationship between a place and the Sun that lit it is itself a moving target. Any planetary index worth a century of decisions has to know it is measuring a system in motion, not a photograph.
Atelier: For a Büro doing site or competition work, the embedding is a georeferenced feature vector you can pull straight into GIS before the ground survey. It will not replace the Vermessung, but it will let you cluster a site against its neighbours and flag what changed — quietly, over years — that no site visit in September would reveal. Monday move: pull the Satellite Embedding layer for your next competition site’s coordinates in Earth Engine and cluster it against the surrounding parcels; treat the outliers as questions, not answers.
Hack: Measure how much a site changed between two years as the angle between its embeddings, not the difference between two pictures. The Satellite Embedding vectors ship unit-length, so their dot product is the cosine similarity — 1 means the surface held its state, near 0 means it transformed. Pull both annual images, multiply them band-by-band, and sum across the 64 axes to read one number.
import ee; ee.Initialize()
emb = ee.ImageCollection('GOOGLE/SATELLITE_EMBEDDING/V1/ANNUAL')
site = ee.Geometry.Point([8.541, 47.376]) # Zurich HB, 10 m pixel
a, b = [emb.filterDate(f'{y}-01-01', f'{y}-12-31').first() for y in (2021, 2023)]
print(a.multiply(b).reduce('sum').reduceRegion(ee.Reducer.first(), site, 10).getInfo()) # unit vectors: 1 = held, 0 = transformedFrom the vantage of the late 2070s, one warning about indices like this: the failure mode of my generation was never the demo — it was scaling a compression before we knew what it dropped. Sixty-four axes is a lot of information and also a decision about what to discard, and the model does not hand you the error bar per pixel. DeepMind reports more than 50 partner organisations already classifying ecosystems and tracking deforestation with it; that is real, and it is also exactly the moment to keep one number in your pocket. Before you let an embedding stand in for a survey on a hundred-year building, verify it against ground truth on the parcels you know — and keep the raw bands, so a future team can ask a question these 64 numbers were never trained to answer.
Open Earth Engine, pull one pixel you understand, and read what the model saw. That is the whole discipline: check the compression against a truth you can walk to.
Sources & Further Reading
SOURCE · ↗
PAZ Kaffi · multidisciplinary editorial, led by PAZ Academy