[GIS] Converting Landsat 8 to TOA for NDWI calculation

arcgis-10.2arcgis-desktoplandsat 8normalized-difference-water-index

I am trying to use Landsat to identify small-scale water bodies in Eastern Africa. I first pansharpened a composite image of bands 2-7 to improve the resolution. Bands 2-4 are now at a resolution of 15m, and bands 5-7 remain at 30m resolution but with a cell size of 15m. Visually, bands 5-7 appear to be 30m resolution, but they are really just four 15mX15m cells with the same value.

I used the USGS Landsat 8 website (http://landsat.usgs.gov/Landsat8_Using_Product.php) to calculate TOA reflectance values for each band. As an example, my TOA results for band 4 range from -0.1217 to 1.420. The negative values are either along the dead space outside the image itself or in densely vegetated areas.

I then used the formula suggested by Xu (2006) for the modified NDWI: MNDWI=(Green-MIR)/(Green+MIR), where Green is band 3, and MIR is band 6 in Landsat 8. This step results in NDWI ranging from 2.85e7 to -1.63e7. According to what I have read, NDWI should range from -1 to 1. I tried the MNDWI formula using just the pansharpened DN images and got NDWI values ranging from -1 to 1.

I understand that you can directly download surface reflectance values from EarthExplorer, but this Landsat data does not include a panchromatic layer. I really need to pansharpen my data since I am looking at small-scale features. Most do not show up at a 30m resolution.

Any insight into why the NDWI calculated from TOA values is so wrong? Am I missing a big step or understanding the data wrong? Has anyone else had similar issues?

The scene I am working with is:

LANDSAT_SCENE_ID = "LC81680612015005LGN00"

WRS_PATH = 168

WRS_ROW = 61

DATE_ACQUIRED = 2015-01-05

Best Answer

  1. TOA should be applied to data before the pan-sharpening for better results.
  2. Your results extreme values are probably due to the blank part of the image (border area) being calculated along with the rest of image. It is recommended to remove NoData and/or crop to area of interest before applying any indice. Use a stretch command (standard deviations, percent crop etc) to really see the value range and elliminate extreme ones. To check if your results are normal (for NDWI in this example), zoom in a sub-area and check there the value range. I think your results should be OK (assuming previous steps were done correctly).
Related Question