JSPSR: Joint Spatial Propagation Super-Resolution Networks for Enhancement of Bare-Earth Digital Elevation Models from Global Data
Docker Image:
nvcr.io/nvidia/pytorch:23.10-py3
Within Docker:
Python 3.10
CUDA 12.4
cuDNN 9.0.0
PyTorch 2.1.0
Torchvision 0.16
OpenCV 4.7.0
The Dockerfile is provided in the repository for easy setup.
DFC30: DFC2022 + FABDEM/FathomDEM + Copernicus GLO-30
DFC30 dataset is available at here and the data structure is:
.
├── DFC30_source
│ ├── City_1
│ │ ├── BDORTHO (RGB images, resolution: 0.5m)
│ │ ├── RGEALTI (DEMs, resolution: 1m)
│ │ ├── UA2012 (Land use masks, resolution: 1m)
│ │ ├── CHM (HighResCanopyHeight canopy height map, resolution: 1m)
│ │ ├── COP30 (Copernicus GLO-30 DEMs, resolution: around 30m)
│ │ ├── FABDEM (FABDEM DEMs, resolution: around 30m)
│ │ └── FATHOM (Fathom DEMs, resolution: around 30m)
│ ├── ...
│ └── City_16
│ ├── ...
│ └── FATHOM
├── DFC30_3m
│ ├── City_1
│ │ ├── BDORTHO (RGB images, resolution: 3m)
│ │ ├── RGEALTI (DEMs, resolution: 3m)
│ │ ├── UA2012 (Land use masks, resolution: 3m)
│ │ ├── CHM (HighResCanopyHeight canopy height map, resolution: 3m)
│ │ ├── COP30 (Copernicus GLO-30 DEMs, resolution: 3m)
│ │ ├── FABDEM (FABDEM DEMs, resolution: 3m)
│ │ └── FATHOM (Fathom DEMs, resolution: 3m)
│ ├── ...
│ └── City_16
│ ├── ...
│ └── FATHOM
└── DFC30_8m
├── City_1
│ ├── BDORTHO (RGB images, resolution: 8m)
│ ├── RGEALTI (DEMs, resolution: 8m)
│ ├── UA2012 (Land use masks, resolution: 8m)
│ ├── CHM (HighResCanopyHeight canopy height map, resolution: 8m)
│ ├── COP30 (Copernicus GLO-30 DEMs, resolution: 8m)
│ ├── FABDEM (FABDEM DEMs, resolution: 8m)
│ └── FATHOM (Fathom DEMs, resolution: 8m)
├── ...
└── City_16
├── ...
└── FATHOM
# train JSPSR model
# 8m resolution - image guidance
python main.py --config configs/jspsr_r8_img.yml
# 3m resolution - image and mask guidance
python main.py --config configs/jspsr_r3_img_msk.yml# test JSPSR model weight
# 8m resolution - image guidance
python main.py --config configs/jspsr_r8_img.yml --val
# 3m resolution - image and mask guidance
python main.py --config configs/jspsr_r3_img_msk.yml --valNote: Specify the path to the pretrained checkpoint file in the config file before validation.
| Methods | Pretrained Weight | Task | Guidance | RMSE[m] | PSRN[dB] |
|---|---|---|---|---|---|
| JSPSR2b | download link | 30m to 8m | Image | 1.1087 | 58.4640 |
| JSPSR3b | download link | 30m to 8m | Image+Mask | 1.0741 | 58.7396 |
| JSPSR2b | download link | 30m to 3m | Image | 1.1197 | 58.4157 |
| JSPSR3b | download link | 30m to 3m | Image+Mask | 1.1150 | 58.4524 |
This work was supported by the Geospatial Research Institute at the University of Canterbury. The authors would like to thank Matthew Wilson for his invaluable supervision and guidance. We also extend our sincere thanks to Maria Vega Corredor for her expert project management and support throughout this research. Finally, we are grateful to the anonymous reviewers for their insightful comments and constructive feedback, which helped to improve this manuscript.
This repository is built on contributions from many open-source projects in the fields of digital elevation models, super-resolution, depth completion, and multi-task learning. Thanks to all the open-source projects that have effectively promoted further research! We are especially grateful to LRRU and DKN, for their novel work and the excellent open source code! We also appreciate Multi-Task Learning for providing a solid foundation for the training platform.
We did not list all the reference works here, but we sincerely thank all the authors for their outstanding contributions.
@article{cai2025jspsr,
title={JSPSR: Joint Spatial Propagation Super-Resolution Networks for Enhancement of Bare-Earth Digital Elevation Models from Global Data},
author={Cai, Xiandong and Wilson, Matthew D},
journal={Remote Sensing},
volume={17},
number={21},
pages={3591},
year={2025},
publisher={MDPI}
}
