[GIS] Resampling GeoTIFF images to same resolution using QGIS

qgisrasterresampling

I have two geotiff images that I would like to resample the same resolution.

If I use ArcGIS Desktop this is easy to do but how do I do this using QGIS?

Best Answer

This is easy in QGIS too, though a little less obvious. There are a couple of ways you can do it:

  • Raster Calculator - simply use the raster calculator and you can set the resolution and extent there and can make them match another raster by selecting the raster band you want to match in the Raster Bands list and then clicking the "Current layer extent" button. The columns and rows fields will let you set the resolution. However, this method gives you no control over the resampling method.
  • Using GDAL_Warp - this tool lets you set the output resolution either by specifying the width and height of the output raster or by specifying the -tr switch (see the documentation). You can get to the GDAL_warp tool by going Raster->Projections->Warp (I did say it wasn't obvious from a resampling point of view!).

    • (v2.x) If you want to use the -tr switch, fill in all the boxes for input raster and output etc (your source and target SRS values will presumably be the same in this case - though don't have to be if you're reprojecting as well). Then click the little pencil icon at the bottom and edit the auto-generated gdal-warp commandline to include your -tr switch. Gdal_wrap lets you specif the algorithm you want to use for the resampling and so is a little less of a blunt instrument than using the raster calculator.
    • (v3.x) The -tr switch is enabled by using the Output file resolution in target georeferenced units box. For example, to downsample a 1m DEM to a 2m DEM, you can enter 2 in that field. However, there is no option to pass two different arguments for non-square pixels. Say your target pixel size is 0.3125,0.25, meaning the xres is 0.3125 and the yres is 0.25. If you now pass the value 0.3125 in that box, it will set -tr 0.3125 0.3125 in the command. To counter this limitation, simply copy the code, paste to the command line, edit the -tr flag and run. For example:

      gdalwarp -t_srs EPSG:4326 -tr 0.3125 0.25 -r near -te 71.40625 24.875 84.21875 34.375 -te_srs EPSG:4326 -of GTiff foo.tiff bar.tiff

      (depending on your instalation and environment variables, you may also need to explicitly state the path to gdalwarp).

Related Question