I am training a convolutional neural network to classify landcover and I would like to ingest both Landsat 8 and Sentinel-1 into my classifier.

Currently it is working reasonably well for Landsat 8 but I want to get Sentinel-1 data, ideally at the same resolution and pixel locations. Is there any library that already does this or can you think of a good approach ? I'm using rasterio in python for most of my raster processing.

I'm downloading my Sentinel-1 data from Sentinel-Hub.

2 Answers 2


Take a look at rasterio's virtual warping. You could e.g. take the higher resolution Sentinel-1 image as a template raster from which you get the "vrt_options" dictionary with a specified crs, transform, pixel width/height etc. Then use that to read in both the Sentinel-1 and Landsat images, rasterio warps them on the fly to the specified options (be aware that this forces resampling of the lower-res/different grid Landsat images).

  • This worked like a charm!
    – clifgray
    Commented Apr 30, 2019 at 20:44
  • How is this different from just using rasterio reproject with the Sentinel-1 image as the destination raster?\ and Lansat 8 as the source one? Commented May 7, 2021 at 17:44

If you work with the snappy modules (libraries of SNAP) you can use the collocate module to resample Sentinel-1 onto the resolution of Landsat-8. But the S1 data is delivered as GRD product which means that it has to be geocoded first. In case of 30 m are sufficient, multi-lookig to 30 meters is also an option. Depends on how far pre-processed the Sentinel-1 products you use are.

An example for its use is given here: https://eodag.readthedocs.io/en/latest/tutorials/tuto_burnt_areas_snappy.html

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.