Skip to main content

Unified ROI->embedding interface for remote sensing foundation models.

Project description

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:

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

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

📢 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rs_embed-0.2.0.tar.gz (413.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rs_embed-0.2.0-py3-none-any.whl (512.3 kB view details)

Uploaded Python 3

File details

Details for the file rs_embed-0.2.0.tar.gz.

File metadata

  • Download URL: rs_embed-0.2.0.tar.gz
  • Upload date:
  • Size: 413.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rs_embed-0.2.0.tar.gz
Algorithm Hash digest
SHA256 526df2147e55e667d151700d84135b1c2dbb2ca920e2f203942e2804cbf37f09
MD5 edfbe93e64baac01b00cb8f576b6e885
BLAKE2b-256 4f1ac036e1f01ffce61e04088507b0c377dede97054abdf21c733a0cb31b49b7

See more details on using hashes here.

Provenance

The following attestation bundles were made for rs_embed-0.2.0.tar.gz:

Publisher: release.yml on cybergis/rs-embed

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rs_embed-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: rs_embed-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 512.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rs_embed-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ebc21d37a2bbc5a6323823a713f476fd6865b752677a5ec667a8912ee297b603
MD5 258abdf31e490336452522a126db8c1d
BLAKE2b-256 194ee81b102284d2645782c6c4c1a5d9fe18d42dcb7bcad98d04ad39444be99d

See more details on using hashes here.

Provenance

The following attestation bundles were made for rs_embed-0.2.0-py3-none-any.whl:

Publisher: release.yml on cybergis/rs-embed

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page