Leveraging NDVI to calculate other indices in Image Analysis window

The NDVI (Normalized Difference Vegetation Index) tool in the Image Analysis Window calculates how vigorous the vegetation is in an area. But it’s not the only index available, although it may be the most widely used.

NDVI button

When indices have the same format as NDVI, which is to say (Band X – Band Y)/(Band X + Band Y) you can substitute any of the bands and the tool will still work. For example, to calculate the Normalized Difference Built-up Index (NDBI), select the near infrared and the shortwave infrared bands. For Landsat 7, band 4 is near infrared and band 5 is shortwave infrared. For Landsat 8, band 5 and 6 showed the most contrast (in a limited observation of Landsat 8 here at Redlands). Choose the appropriate bands and click the NDVI button, and your output will be the NDBI. NDBI is great for showing impervious surfaces and is really useful for detecting the growth of cities.

NDBI output

The reason this works is because the NDVI tool is programmed; see last week’s blog for more background on what the tool is doing. Urban areas are the lighter blues, green is forest, and the deep blues are water. Here’s what the NDBI looks like—can you guess what city this is?

Written by Kevin J Butler

This entry was posted in Imagery and tagged , , , , . Bookmark the permalink.

Leave a Reply


  1. shaimaagamal2010 says:

    nice topic thanks a lot

  2. ubop says:

    Can this method also be use to calculate temperature (land surface temperature)?

    • kevin_butler says:

      Calculating LST is dependent on the type of vegetation present, so I guess you could use it as a way to identify bare ground (which is where I would put impervious surfaces). You would still need NDVI to calculate the percentage vegetation however. Does this answer your question? There’s a pretty thorough paper about where the science behind calculating LST using thermal bands is (and isn’t).

  3. 4strdave says:

    Perhaps someone could help me. I am mapping scotch broom in a watershed. I have aerial photography that shows the scotch broom in its bright yellow bloom. I have used ISO Cluster and Maximum Likelihood Classification to created a shapefile with some success but I really don’t understand the settings in those two tools. Any suggestions? Thanks, Dave.

    • kevin_butler says:

      Here’s a help doc on ML Classification:

      In a nutshell, here’s what the parameters in ML Classification are–
      Input signature file – this is derived from a shapefile that you create to delineate where the broom is. There’s a bit of an art/science in doing this. If your training sites are too “pure” you’ll miss some mixed pixels in the classificaiton. If they’re too mixed, your classification will include too much other stuff in the broom category. You also need to decide what your legend will ultimately be. You can’t just have “broom” and “other” as your categories because computers aren’t smart enough to classify “other” that way. The number of categories depends on what’s in your image (i.e. water, impervious surfaces, grass, trees, etc).

      Output classified raster is what you want the output file to be called.

      Reject fraction is the percentage of cells that don’t have to be classified. You can think of this as related to how confident you are in your training sites and your imagery. If you set it 0.0, then every pixel will be classified. This is a parameter that you have a lot of leway with because it sounds like you’re only looking for one class and don’t really care if you miss some of the other stuff.

      Probability weighting decides how to allocate mixed pixels. Say you have a bunch of pixels that are half water and half broom, if this is set to equal, then half of those pixels will be called water and half will be called broom. If you set it to sample, then the proportion of water and broom will be based on the size of your training sites. So if the area for your broom training sites are twice the size of your water training sites, then twice as many pixels will be called broom. File just means that you create an ascii file that says which categories will have which proportion of the pixels. If you choose this option, then you would select the file in the option below.

      Output confidence raster will tell you for each pixel how confident the tool is in its output. I’d recommend using this if you’re new to classification, because it will show you where you need to either redo a training site, or create a new class, or maybe even aggregate a couple of classes together.

      A word on isocluster. It’s useful if you don’t know a lot about the area that you’re looking at. Basically you tell the computer how many classes you think there are in your imagery and it finds that many classes based on spectral characteristics. I would give it a go just to see if it works well. But with only visible imagery, I doubt that it will perform better than ML Classification because there’s probably not enough spectral information for it to work from. Also, it sounds like you know this area well enough to accurately delineate training sites.

      Hope this helps. Also, if you’ve never used the Results Window under the Geoprocessing tab, now is a great time to start. When it’s open you can double click on the last tool you’ve used and it will bring up the tool window with all of your parameters loaded, so you can iteratively change things to optimize your results.

  4. sbatt110 says:

    Hi, Kevin. Thanks for posting such informative stuff. I am trying to detect temporal (two time points) vegetation change using landsat5 TM data. I am able to calaculate NDVI for each raster and also the difference between the two NDVIs. Please tell how to interpret/read the difference data/image. Thanks


    • kevin_butler says:

      Well, the theory behind NDVI stipulates that there should be a one-to-one ratio between the index and the amount of vegetation. It doesn’t really work that elegantly in practice; however, if your dates are from the same week/month, then you can just subtract them and have somewhat meaningful results. If you want to examine the changes over a season, check out my latest blog, and read the paper that’s referenced in it. It lays out a more robust technique for measuring changes in NDVI over seasons.