opensr-model

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


License
MIT
Install
pip install opensr-model==1.0.3

Documentation

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

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), custom_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