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?