Skip to main content

icon rs-embed

One line code to get Any Remote Sensing Foundation Model (RSFM) embeddings for Any Place and Any Time

arXiv Docs Python PyTorch 2.7

Visitors Last Commit License PyPI Downloads

Docs · StartNow · Releases · Changelog · UseCase · Paper

Get Start on I-GUIDE Today!

TL;DR

emb = get_embedding("prithvi", spatial=..., temporal=..., output=...)

Install

# base install (always use the latest version for best experience)
pip install --upgrade rs-embed

# add [terratorch] only if you use terramind
pip install --upgrade "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(),
)

Tip: Default settings are designed as a trade-off between compute cost and embedding quality. If you have sufficient compute resources, check Choosing Settings and individual model pages to get the best results.

See the visualization helper and end-to-end notebook in the repository:

Bring Your Own Data

🆕 New: you can now compute embeddings from imagery you already have (your own patches, GeoTIFFs, training cubes), with no Google Earth Engine fetch and no provider auth.

Register the pixels once as UserData (raw provider values plus collection, band names, and optionally where/when they were acquired), then embed with just a model name:

from rs_embed import UserData, get_embedding_from_data, list_models_for_data

data = UserData(patch, collection="s2")  # patch: [12, H, W] Sentinel-2 L2A, raw DN
# or read pixels + CRS + transform straight from a GeoTIFF:
# data = UserData.from_raster("scene.tif", collection="s2")

list_models_for_data(data)                    # which models can use this data, and why not
emb = get_embedding_from_data("galileo", data)

Bands are matched to each model automatically (a 12-band cube serves RGB, 6-band, and 10-band models alike), and a model your data cannot satisfy is refused with the exact missing band instead of producing silently wrong embeddings. See the User-Provided Data guide and examples/bring_your_own_data.ipynb.

Main API

For new users, start with these primary APIs:

  • get_embedding(...): one ROI -> one embedding
  • get_embeddings_batch(...): many ROIs, same model
  • export_batch(...): export datasets / experiments (single or multiple ROIs)
  • inspect_provider_patch(...): inspect raw provider patches before inference
  • get_embedding_from_data(...) / get_embeddings_batch_from_data(...): embed your own imagery (see Bring Your Own Data)

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
olmoearth S2 L2A 12-band / S1 VV-VH 10m CVPR 2026 link
agrifm S2 time series (10-band) 10m RSE 2026 link
thor S2 10-band 10m arXiv 2026 link
terrafm S2 12-band / S1 VV-VH 10m ICLR 2026 link
terramind S2 12-band 10m ICCV 2025 link
galileo S2 time series (10-band) 10m ICML 2025 link
wildsat S2 RGB 10m ICCV 2025 link
anysat S2 time series (10-band) 10m CVPR 2025 link
fomo S2 12-band 10m AAAI 2025 link
prithvi S2 6-band 30m arXiv 2024 link
satvision TOA 14-channel 1000m arXiv 2024 link
dofa Multi-band + wavelengths 10m arXiv 2024 link
clay S2 L2A 10-band (+ latlon/time/gsd/wavelengths) 10m model release v1.5, 2024 link
satmaepp S2 RGB (modality=rgb, default) or S2 SR 10-band (modality=s2_10b) 10m CVPR 2024 link
remoteclip S2 RGB 10m TGRS 2024 link
scalemae S2 RGB (+ scale) 10m ICCV 2023 link
satmae S2 RGB 10m NeurIPS 2022 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

📚 Full documentation

🪄 Get Started: Try rs-embed Now

🪀 Use case: Maize yield mapping Illinois

🗂️ Bring your own data: embed your own imagery

📢 Disscusion

🧾 Release policy and versioning

📌 Project changelog

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

Metadata

Release files for rs-embed 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rs-embed 0.3.1
File Size Uploaded
rs_embed-0.3.1.tar.gz 436.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for rs-embed 0.3.1
File Interpreter ABI Platform
rs_embed-0.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 969.5 kB

Release files / rs_embed-0.3.1.tar.gz

Download URL rs_embed-0.3.1.tar.gz
Size 436.4 kB
Tags Source
SHA-256 checksum
How to use checksums
371352a7c4fda91cc8f2b69310281e7532e4014d51fcebec85797e5982c278a8
BLAKE2b-256 checksum
How to use checksums
c8c256a72301af5af221e1e520ed77b30365206556cb7f2e4f96ff3f77c8894a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release files / rs_embed-0.3.1-py3-none-any.whl

Download URL rs_embed-0.3.1-py3-none-any.whl
Size 533.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b1e55a0bc3ccc31929c9e47bbc1e97d22ca603651d0828bb11cfe1d4921f3291
BLAKE2b-256 checksum
How to use checksums
74374495da0d0d8d7ccf96eb5dcab19bc6870331ed1eb18ad57a6dab9ea8998a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.1 This release

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page