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.
🧪 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:
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
Examples on S2NAIP training dataset
Status
This repository has left the experimental stage with the publication of v1.0.0.
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e7febeb16af86459fa24a4a11720ebd189bbb6e1dcbdf1c3a467c8def7277612
|
|
| MD5 |
a165a4782cecb32cfbc8721986fc96b0
|
|
| BLAKE2b-256 |
1bf0f87973528cf955cbfdac854f511b7d17c767cd589ba052163a6b801bda45
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b070ff8ad6f7438f5a6b21fa54e51cf1c76f126013eb7d75fc1168edcbb584d3
|
|
| MD5 |
428e5b82a34bd7af809900b7db08592c
|
|
| BLAKE2b-256 |
f1b3146d5bff8b15bc1f0378151c92b8e1752835a4a7a161d0d8e88018ae62dd
|