AlphaEarth
Visualize AlphaEarth satellite embeddings in 3D
Google DeepMind has released a new satellite embedding dataset called AlphaEarth. This dataset contains annual satellite embeddings from 2017 to 2024, with each pixel representing a 10x10 meter area. The dataset is available on Google Earth Engine, and can be used to train machine learning models to classify satellite imagery.
- News release: https://deepmind.google/discover/blog/alphaearth-foundations-helps-map-our-planet-in-unprecedented-detail/
- Dataset: https://developers.google.com/earth-engine/datasets/catalog/GOOGLE_SATELLITE_EMBEDDING_V1_ANNUAL#description
- Paper: https://storage.googleapis.com/deepmind-media/DeepMind.com/Blog/alphaearth-foundations-helps-map-our-planet-in-unprecedented-detail/alphaearth-foundations.pdf
- Blog post: https://medium.com/google-earth/ai-powered-pixels-introducing-googles-satellite-embedding-dataset-31744c1f4650
- Tutorials: https://developers.google.com/earth-engine/tutorials/community/satellite-embedding-01-introduction
- Similarity search: https://earthengine-ai.projects.earthengine.app/view/embedding-similarity-search
- Clustering: https://code.earthengine.google.com/b0871454add885294f633f731b90f946
Uncomment the following line to install leafmap if needed.
In [ ]:
Copied!
# %pip install -U leafmap
# %pip install -U leafmap
In [ ]:
Copied!
import ee
import leafmap.maplibregl as leafmap
import ee
import leafmap.maplibregl as leafmap
To use the AlphaEarth satellite embeddings, you will need to authenticate with Earth Engine.
If you don't have an Earth Engine account, you can create one at https://earthengine.google.com.
Once you have an Earth Engine account, you can authenticate with Earth Engine by running the following code:
In [ ]:
Copied!
ee.Authenticate()
ee.Initialize(project="your-ee-project")
ee.Authenticate()
ee.Initialize(project="your-ee-project")
In [ ]:
Copied!
m = leafmap.Map(projection="globe", sidebar_visible=True)
m.add_basemap("USGS.Imagery")
m.add_alphaearth_gui()
m
m = leafmap.Map(projection="globe", sidebar_visible=True)
m.add_basemap("USGS.Imagery")
m.add_alphaearth_gui()
m
In [ ]:
Copied!
m = leafmap.Map(projection="globe", sidebar_visible=True)
m.add_basemap("USGS.Imagery")
m
m = leafmap.Map(projection="globe", sidebar_visible=True)
m.add_basemap("USGS.Imagery")
m
In [ ]:
Copied!
lon = -121.8036
lat = 39.0372
m.set_center(lon, lat, zoom=12)
lon = -121.8036
lat = 39.0372
m.set_center(lon, lat, zoom=12)
In [ ]:
Copied!
point = ee.Geometry.Point(lon, lat)
dataset = ee.ImageCollection("GOOGLE/SATELLITE_EMBEDDING/V1/ANNUAL")
point = ee.Geometry.Point(lon, lat)
dataset = ee.ImageCollection("GOOGLE/SATELLITE_EMBEDDING/V1/ANNUAL")
In [ ]:
Copied!
image1 = dataset.filterDate("2017-01-01", "2018-01-01").filterBounds(point).first()
image2 = dataset.filterDate("2024-01-01", "2025-01-01").filterBounds(point).first()
image1 = dataset.filterDate("2017-01-01", "2018-01-01").filterBounds(point).first()
image2 = dataset.filterDate("2024-01-01", "2025-01-01").filterBounds(point).first()
In [ ]:
Copied!
vis_params = {"min": -0.3, "max": 0.3, "bands": ["A01", "A16", "A09"]}
m.add_ee_layer(image1, vis_params, name="Year 1 embeddings")
m.add_ee_layer(image2, vis_params, name="Year 2 embeddings")
vis_params = {"min": -0.3, "max": 0.3, "bands": ["A01", "A16", "A09"]}
m.add_ee_layer(image1, vis_params, name="Year 1 embeddings")
m.add_ee_layer(image2, vis_params, name="Year 2 embeddings")
In [ ]:
Copied!
dot_prod = image1.multiply(image2).reduce(ee.Reducer.sum())
dot_prod = image1.multiply(image2).reduce(ee.Reducer.sum())
In [ ]:
Copied!
vis_params = {"min": 0, "max": 1, "palette": ["white", "black"]}
m.add_ee_layer(dot_prod, vis_params, name="Similarity")
m
vis_params = {"min": 0, "max": 1, "palette": ["white", "black"]}
m.add_ee_layer(dot_prod, vis_params, name="Similarity")
m