Skip to main content

ESA OpenSR Diffusion model package for Super-Resolution of Senintel-2 Imagery

Project description

Latent Diffusion Super-Resolution - Sentinel 2 (LDSR-S2)

This repository contains the code of the paper Trustworthy Super-Resolution of Multispectral Sentinel-2 Imagery with Latent Diffusion.

🚀 Google Colab Demos – Interactive Notebooks

Run LDSR-S2 directly in Google Colab! These notebooks let you fetch Sentinel-2 imagery, apply super-resolution, and save results — with or without writing code.

Notebook Name Description Link
LDSR-S2 No-Code 🔘 No coding required — chose point on a map and download SR results as GeoTIFFs Open In Colab
LDSR-S2 Walkthrough 🧪 Code-level walkthrough with uncertainty estimation and advanced plotting Open In Colab
LDSR-S2 & SEN2SR 🔄 Use LDSR-S2 alongside SEN2SR to compare results on 10m + 20m bands Open In Colab

🧪 Status: LDSR-S2 has exited the experimental phase as of v1.0.0

📌 For super-resolving 20m bands, check out SEN2SR, or use it alongside LDSR-S2 in the third notebook.

Citation

If you use this model in your work, please cite

@ARTICLE{ldsrs2,
  author={Donike, Simon and Aybar, Cesar and Gómez-Chova, Luis and Kalaitzis, Freddie},
  journal={IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing}, 
  title={Trustworthy Super-Resolution of Multispectral Sentinel-2 Imagery With Latent Diffusion}, 
  year={2025},
  volume={18},
  number={},
  pages={6940-6952},
  doi={10.1109/JSTARS.2025.3542220}}

Install and Usage - Local

pip install opensr-model

Minimal Example

# Get Config
from io import StringIO
import requests
from omegaconf import OmegaConf
config_url = "https://raw.githubusercontent.com/ESAOpenSR/opensr-model/refs/tags/v0.3.1/opensr_model/configs/config_10m.yaml"
response = requests.get(config_url)
config = OmegaConf.load(StringIO(response.text))

# Get Model
import torch
device = "cuda" if torch.cuda.is_available() else "cpu" # set device
import opensr_model # import pachage
model = opensr_model.SRLatentDiffusion(config, device=device) # create model
model.load_pretrained(config.ckpt_version) # load checkpoint
sr = model.forward(torch.rand(1,4,128,128), sampling_steps=100) # run SR

Run the 'demo.py' file to gain an understanding how the package works. It will SR and example tensor and save the according uncertainty map. Output of demo.py file: example
example

Weights and Checkpoints

The model should load automatically with the model.load_pretrained command. Alternatively, the checkpoints can be found on HuggingFace

Description

This package contains the latent-diffusion model to super-resolute 10 and 20m bands of Sentinel-2. This repository contains the bare model. It can be embedded in the "opensr-utils" package in order to be applied to Sentinel-2 Imagery.

S2 Examples

Example on real S2 image example2

Examples on S2NAIP training dataset example

Status

This repository has left the experimental stage with the publication of v1.0.0.

PyPI Downloads

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

opensr_model-1.0.8.tar.gz (50.9 kB view details)

Uploaded Source

Built Distribution

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

opensr_model-1.0.8-py3-none-any.whl (53.6 kB view details)

Uploaded Python 3

File details

Details for the file opensr_model-1.0.8.tar.gz.

File metadata

  • Download URL: opensr_model-1.0.8.tar.gz
  • Upload date:
  • Size: 50.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for opensr_model-1.0.8.tar.gz
Algorithm Hash digest
SHA256 e7febeb16af86459fa24a4a11720ebd189bbb6e1dcbdf1c3a467c8def7277612
MD5 a165a4782cecb32cfbc8721986fc96b0
BLAKE2b-256 1bf0f87973528cf955cbfdac854f511b7d17c767cd589ba052163a6b801bda45

See more details on using hashes here.

File details

Details for the file opensr_model-1.0.8-py3-none-any.whl.

File metadata

  • Download URL: opensr_model-1.0.8-py3-none-any.whl
  • Upload date:
  • Size: 53.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for opensr_model-1.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 b070ff8ad6f7438f5a6b21fa54e51cf1c76f126013eb7d75fc1168edcbb584d3
MD5 428e5b82a34bd7af809900b7db08592c
BLAKE2b-256 f1b3146d5bff8b15bc1f0378151c92b8e1752835a4a7a161d0d8e88018ae62dd

See more details on using hashes here.

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