I have been using NDVIs with limited success to identify trees in the central Great Plains region of the USA. The problem I have been encountering is that reflectance from farm fields/pastures have essentially the same spectral signature as the trees I am identifying. Is there a vegetation index which can be generated from 4-band NAIP imagery that can do a better job at isolating tree cover mixed throughout agricultural areas? Perhaps a pre/post processing step may be most effective?

NDVI Example

  • Is one of the bands near Infra Red? Jul 20 '12 at 16:24
  • Yes, band 4 = NIR for the NAIP imagery.
    – Aaron
    Jul 20 '12 at 16:28
  • What does the image look like when you use the NIR? Would this not help better isolate the tree cover? Although vegetation will appear red I find that it is often easier to spot different patterns. Can you post the same image in NIR? Is this a manual process or are you running the imagery trough some type of algorithm that identifies the trees? Jul 20 '12 at 16:36
  • @Jakub: I am using an automated process that identifies trees based on an object-oriented algorithm. Sorry I forgot which image was used for the example, however, the base imagery is standard 4-band NAIP with NIR and RGB.
    – Aaron
    Jul 20 '12 at 18:18

I've used Enhanced Vegetation Index (EVI) data extensively for analyzing agricultural areas. Although I've never used it with NAIP imagery, all you need is red, blue, and IR data.

For your purposes, the biggest advantage of EVI is that it does not "saturate" as easily as NDVI--it offers more contrast (dynamic range) when examining highly vegetated areas like cultivated agricultural fields. The trade-off is that the contrast between low-EVI areas (like deserts or fallow fields) and cultivated areas is not as great. But for your purposes, this doesn't matter.

In this histogram of NDVI data, you can see how most of the agricultural pixels are in far right end of the distribution. There's a lot of dynamic range between 0 and 0.5 that is being wasted. This is akin to having a photograph with improperly adjusted levels. Your tree cover and agricultural fields are probably both in that hump, but because it's all compressed into one little region they look the same color gray.

NDVI histogram


In this histogram of the exact same area but calculated with EVI, you can see how the distribution is more even. The disparity in intensity and coverage of vegetation is represented by a broader swath of values, making it easier to conduct classifications. This will make your trees and agricultural fields have more disparate shades of gray.

EVI histogram


  • 3
    @Aaron You can use anything: ENVI, IDL, ArcGIS, NumPy, MATLAB, etc. Calculating EVI is not a particularly complicated formula, the equation is on the Wikipedia page. You just need to use the red, blue, and IR bands and then it's just plug-and-chug.
    – dmahr
    Jul 25 '12 at 20:51
  • @Aaron Did EVI end up working for the tree identification task?
    – dmahr
    Aug 1 '12 at 13:45
  • EVI which were produced from one set of naip imagery worked fantastically. Strangely though, EVI produced from a different state's naip imagery resulted in salt and pepper. Thanks again.
    – Aaron
    Aug 2 '12 at 11:57
  • @Aaron The salt and pepper issue could be due to different labeling in bands. All vegetation indices utilize the "red edge" of vegetation in the near infrared wavelengths.
    – dmahr
    Aug 2 '12 at 13:46

Do you have access to another image from the same year but referenced to a different maturity stage? Imagine your image is from the spring, if you have an image from late summer, you'll get the changes in crops and those would help distinguish Agriculture from Forest.

Anyway you have a lot of Vegetation indices options,

most common are:

less common:

  • Perpendicular Vegetation Index Soil
  • Adjusted Vegetation Index
  • Atmospherically Resistant Vegetation Index
  • Global Environment Monitoring Index
  • Thanks for the reply. Unfortunately, these datasets are only available leaf-on in the middle of the growing season. I am exploring, with some initial success, using EVIs.
    – Aaron
    Jul 27 '12 at 18:51

Here is a raster algebra statement that will get you the EVI.

( ("band4" - "Band1") / ("Band4" + 6 * "Band1" - 7.5 * "Band3" + 1) ) * 2.5

  • 1
    I think that for ArcGIS you will need a Float statement to make sure that the results are kept floating point. ( Float("band4" - "Band1") / Float("Band4" + 6 * "Band1" - 7.5 * "Band3" + 1) ) * 2.5 Jul 25 '12 at 22:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.