I'm working on surface water identification in Northern Kenya. I'm using Landsat 5TM and Landsat 8OLI data in ENVI 5. I've masked clouds using the QA band (although have also tried the fmask tool- with default settings), and then run NDWI (Green-SWIR)/(Green + SWIR). However where the fmask has not masked all of the clouds and particularly shadows, I now get a lot of areas classified as water when actually they're clouds as shown in screen shot below. The image of the left is the cloud masked NDWI image, the middle is the NDWI image with a threshold set of -0.08, and the image of the right is the true colour image. It shows how the cloud shadow has not been masked and results in incorrect identification of water.

I have tried using different thresholds but there are cloud shadow pixels in the NDWI image that have the same value as water pixels. I am aware that I may not be able to 100% mask all cloud and cloud shadow. How can I improve my identification as I have a lot of pixels falsy identified as water; Is there a better way to make a distinction between cloud shadow and water?

Many thanks in advance. enter image description here

  • I do not know the ENVI software so I don't know what tools are available. But would some kind of dilation operation help to enlarge the mask around the clouds? Commented May 1, 2020 at 12:22
  • @PythonStudent This sounds like something that could work, what software do you use to do this? I also have access to ArcGIS? Commented May 1, 2020 at 12:59
  • For morphological operations like dilation I use scipy.ndimage in Python. I do not use ArcGIS but I know it has morphology tools as well if you have the licence. Commented May 1, 2020 at 13:33


Your Answer

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