Unified ROI->embedding interface for remote sensing foundation models.
Project description
rs-embed
One line code to get Any Remote Sensing Foundation Model (RSFM) embeddings for Any Place and Any Time
Get Start on I-GUIDE Today!
TL;DR
emb = get_embedding("prithvi", spatial=..., temporal=..., output=...)
Install
# base install
pip install rs-embed
# add [terratorch] only if you use terramind
pip install "rs-embed[terratorch]"
For local development:
git clone https://github.com/cybergis/rs-embed.git
cd rs-embed
pip install -e . # use -e ".[terratorch]" if you need terramind
If this is your first time using Google Earth Engine, authenticate once:
earthengine authenticate
Quick Example
from rs_embed import PointBuffer, TemporalSpec, OutputSpec, get_embedding
spatial = PointBuffer(lon=121.5, lat=31.2, buffer_m=2048)
temporal = TemporalSpec.range(
"2022-06-01",
"2022-09-01",
)
emb = get_embedding(
"prithvi",
spatial=spatial,
temporal=temporal,
output=OutputSpec.pooled(),
)
See the visualization helper and end-to-end notebook in the repository:
Main API
For new users, start with these primary APIs:
get_embedding(...): one ROI -> one embeddingget_embeddings_batch(...): many ROIs, same modelexport_batch(...): export datasets / experiments (single or multiple ROIs)inspect_provider_patch(...): inspect raw provider patches before inference
Supported Models
This is a convenience index with basic model info only (for quick scanning / links). For detailed I/O behavior and preprocessing notes, see Supported Models.
Precomputed Embeddings
| Model ID | Resolution | Time Coverage | Publication |
|---|---|---|---|
tessera |
10m | 2017-2025 | CVPR 2026 |
gse (Alpha Earth) |
10 m | 2017-2024 | arXiv 2025 |
copernicus |
0.25° | 2021 | ICCV 2025 |
On-the-fly Foundation Models
| Model ID | Primary Input | Resolution(Default) | Publication | Link |
|---|---|---|---|---|
satmae |
S2 RGB | 10m | NeurIPS 2022 | link |
satmaepp |
S2 RGB | 10m | CVPR 2024 | link |
satmaepp_s2_10b |
S2 SR 10-band | 10m | CVPR 2024 | link |
prithvi |
S2 6-band | 30m | arXiv 2023 | link |
scalemae |
S2 RGB (+ scale) | 10m | ICCV 2023 | link |
remoteclip |
S2 RGB | 10m | TGRS 2024 | link |
dofa |
Multi-band + wavelengths | 10m | arXiv 2024 | link |
satvision |
TOA 14-channel | 1000m | arXiv 2024 | link |
anysat |
S2 time series (10-band) | 10m | CVPR 2025 | link |
galileo |
S2 time series (10-band) | 10m | ICML 2025 | link |
wildsat |
S2 RGB | 10m | ICCV 2025 | link |
fomo |
S2 12-band | 10m | AAAI 2025 | link |
terramind |
S2 12-band | 10m | ICCV 2025 | link |
terrafm |
S2 12-band / S1 VV-VH | 10m | ICLR 2026 | link |
thor |
S2 10-band | 10m | arXiv 2026 | link |
agrifm |
S2 time series (10-band) | 10m | RSE 2026 | link |
Resolution here means the default provider/source fetch resolution used by the adapter, not the final resized tensor shape seen by the model.
Learn More
🧾 Release policy and versioning
🪄 Get Started: Try rs-embed Now
🪀 Use case: Maize yield mapping Illinois
Extending & Contributing
We welcome issues for new model integrations, extension ideas, bugs, and documentation gaps. If you have your own work, or a model or paper that you think would be valuable to include in rs-embed, please open an Issue and share the relevant links, context, and examples.
We also warmly welcome community contributions, including new model support, bug fixes, documentation improvements, and example notebooks. If you would like to contribute directly, please start with the extending guide and the contributing guide.
🎖 Acknowledgements
We would like to thank the following organizations and projects that make rs-embed possible: Google Earth Engine, TorchGeo, GeoTessera, TerraTorch, rshf, and the Copernicus-Embed.
This library also builds upon the incredible work of the Remote Sensing community!(Full list and citations available in our Documentation)
Citation
@article{ye2026modelplacetimeremote,
title={Any Model, Any Place, Any Time: Get Remote Sensing Foundation Model Embeddings On Demand},
author={Dingqi Ye and Daniel Kiv and Wei Hu and Jimeng Shi and Shaowen Wang},
year={2026},
eprint={2602.23678},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2602.23678},
}
License
This project is released under the Apache-2.0
Contributors
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rs_embed-0.1.1.tar.gz.
File metadata
- Download URL: rs_embed-0.1.1.tar.gz
- Upload date:
- Size: 287.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f7d85b80a4ea76ac0334855f74d6386d3b0a27b83174ad08dac9bb1da60a18f6
|
|
| MD5 |
a3438f8ccdc84c68df005e64b2cd44fc
|
|
| BLAKE2b-256 |
fbd6568ebf4755b8f8644a927ee0d460b50ab26db000f044c2798537379e71e5
|
Provenance
The following attestation bundles were made for rs_embed-0.1.1.tar.gz:
Publisher:
release.yml on cybergis/rs-embed
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rs_embed-0.1.1.tar.gz -
Subject digest:
f7d85b80a4ea76ac0334855f74d6386d3b0a27b83174ad08dac9bb1da60a18f6 - Sigstore transparency entry: 1207255024
- Sigstore integration time:
-
Permalink:
cybergis/rs-embed@5c51323d3f67d6139c835412376290fbbec4b2e6 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/cybergis
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@5c51323d3f67d6139c835412376290fbbec4b2e6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file rs_embed-0.1.1-py3-none-any.whl.
File metadata
- Download URL: rs_embed-0.1.1-py3-none-any.whl
- Upload date:
- Size: 379.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
307da7baaec3d2dfb6832f8120892bb370685b8e6b070cce716edc924f4e7d8b
|
|
| MD5 |
8ef631f69c5be71f84ba39dcc599a5ad
|
|
| BLAKE2b-256 |
d64a83a338e9110f6b4020e3276591377384d273175b2612f96faab60fc9396f
|
Provenance
The following attestation bundles were made for rs_embed-0.1.1-py3-none-any.whl:
Publisher:
release.yml on cybergis/rs-embed
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rs_embed-0.1.1-py3-none-any.whl -
Subject digest:
307da7baaec3d2dfb6832f8120892bb370685b8e6b070cce716edc924f4e7d8b - Sigstore transparency entry: 1207255077
- Sigstore integration time:
-
Permalink:
cybergis/rs-embed@5c51323d3f67d6139c835412376290fbbec4b2e6 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/cybergis
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@5c51323d3f67d6139c835412376290fbbec4b2e6 -
Trigger Event:
push
-
Statement type: