I am quite a beginner in respect to GIS and hopefully someone can help me out with the problem I have.

I have multiple digital surface models [DSMs] of the same area with all necessary geo-information (6 in total). However they are not exactly the same as they have been acquired on different days (row and cols of the raster are not identical). I already managed to align the DSMs, however now I need to find the intersecting area that is part of all six DSMs because I want to do some processing with this (which I indent to do in python). I found the following post:


This methods works fine for two DSMs, however the extension to more areas is not straightforward (at least not for me at the moment).

I guess this is a rather standard beginner problem, however I only ever found answers regarding exactly two areas.

1 Answer 1


Reclassify the six surface models so that all the elevation data values equal one and the non-data pixels equal 0. Multiply the 6 reclassified outputs together. The resulting raster will contain values of one or zero. Anyplace the output has a value of one will be that place where all six surface share data values.

Here is a GDAL link to get you started.

Here is a link to the reclassify tool in ArcGIS.

And here is a QGIS solution.

If you are interested in a Python solution you should still work it out in GIS first. Consider learning Model Builder in ArcGIS then export your model to Python once you have it working.

  • Thank you so much for your quick answer! I will have a look at ArcGIS and QGIS. However creating a binary mask would not work in my case, as the elevations can be quite sparse and would be even sparser with that appraoch. However for future reference I found a very quick and easy work-around: use gdal_merge.py with the seperate option (join each raster in a different band). This automatically does what I want and I can read each band separately afterwards!
    – dodo
    Commented Jul 17, 2018 at 12:30

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.