/DSen2

Super-Resolution of Sentinel-2 Images: Learning a Globally Applicable Deep Neural Network

Primary LanguageJupyter NotebookGNU General Public License v3.0GPL-3.0

DSen2

Deep Sentinel-2

Super-Resolution of Sentinel-2 Images: Learning a Globally Applicable Deep Neural Network

Contact: Charis Lanaras, charis.lanaras@alumni.ethz.ch

Requirements

  • tensorflow-gpu (or tensorflow)
  • keras
  • nupmy
  • scikit-image
  • argparse
  • imageio
  • matplotlib (optional)
  • GDAL >= 2.2 (optional)

Training

See the detailed description in the training directory. Use the --resume option with your application related Sentinel-2 tiles to refine the provided network weights.

Using the Trained Network

The network can be used directly on downloaded Sentinel-2 tiles. See details in the s2_tiles_supres.py file. An example follows:

 python s2_tiles_supres.py /path/to/S2A_MSIL1C_20161230T074322_N0204_R092_T37NCE_20161230T075722.SAFE/MTD_MSIL1C.xml /path/to/output_file.tif --roi_x_y "100,100,2000,2000"

Point to the .xml file of the uzipped S2 tile. You must also provide an output file -- consider using a .tif extension that is easily read by QGIS. If you want to also copy the high resolution (10m bands) you can do so, with the option --copy_original_bands. To also predict the lowest resolution bands (60m) use the --run_60 option.

MATLAB Demo

The demo is also ported to MATLAB: demoDSen2.m. However, MATLAB 2018a or newer is needed to run. It utilizes the Neural Network toolbox that can be accelerated with the Parallel Computing Toolbox.

Used Sentinel-2 tiles

The Sentinel-2 tiles used for training and testing are listed in:

  • S2_tiles_training.txt
  • S2_tiles_testing.txt

They can be downloaded from the Copernicus Open Access Hub.