Anyone knows step-by-step tutorials for incorporating NDVI and texture metrics in land cover classification with ArcMap?

I've been doing supervised classification of Sentinel-2 with the assistance of segments resulted from Object Based Image Analysis to help me select the training sample.

However, many sources suggest to incorporate NDVI in the analysis as well as texture metrics since the spatial resolution of the image is quite high. For this matter, i would like to know how do you 'incorporate' NDVI and texture metrics practically in the software. Are there any calculations? or is it only a matter of visual assistance? Can i do it in ArcMap?

  • Hi @birdseye77, what version of ArcMap do you have access to? This is definitely possible. Are you looking to find out how the texture metrics and NDVI are calculated from your Sentinel imagery?
    – AWGIS
    Oct 2, 2018 at 12:26
  • dear @AWGIS my version is 10.5.1. yes, i'm looking forward to see how it's done practically in arcmap.
    – birdseye77
    Oct 2, 2018 at 12:37
  • You just add these metrics to the raster stack that you are using for the classification. Just google how to calculate ndvi and a common textural metric is a focal standard deviation. This is normally done on the nir band. Oct 2, 2018 at 13:37
  • hi @JeffreyEvans thanks for the feedback. are you indicating that all i need to do is to add NDVI and metric raster as an input in Maximum Likelihood Classification window? So there's gonna be 5 images as an input? (R,G,B,NDVI, texture metrics)
    – birdseye77
    Oct 2, 2018 at 14:24
  • 1
    @birdseye77, yes you want to directly include these metrics as bands in the classification. Although, maximum likelihood does not perform well on high resolution imagery and can be a bit wonky with different distributions. You are going through the step of segmentation, why not classify your image objects? Oct 2, 2018 at 14:44

1 Answer 1


An image segmentation approach can provide an interesting analytical framework for remote sensing classification problems as well as dealing with some nuisance aspects of hyper-variable data (eg., very high resolution). The idea behind object-oriented classification is to perform, what is commonly referred to as, an image segmentation with the intent of producing image objects (polygons) representing homogeneous regions of multivariate information in the image stack. This can include ancillary data such as vegetation (eg., NDVI) and textural (eg., grey-level co-occurrence or STVD of NIR) metrics. Some approaches, such a eCognition, include a measure of contrast and texture in their algorithm negating the need for textural data so, be aware of the statistic you are using in segmenting the image.

Regardless of the algorithm applied, the end result should be a set of image objects that minimize within unit variance and maximize between unit variance. The interesting aspect of these types of approaches is that they can be hierarchical, with various levels of generalization created based on varying the segmentation model parameters. In simplest terms you could create something like a 1st level of forests and non-forest with a 2nd level (finer-grained polygons) representing forest species composition.

In using image objects for classification, you are functionally smoothing the variation to better represent the patterns associated with your modeled process. Very high resolution imagery can be very problematic for certain statistics, due to the autocorrelation/lack of independence, and the pixel-level variation does not necessarily match the classification schema. The end result often produces an estimate that better represents the pattern of your process and reduces error which can be quite notable in pixel-level validations.

A common analytical workflow for this type of classification would be:

  1. Define your hierarchy and associated classification schema
  2. Apply a segmentation algorithm generating image objects for each level in the hierarchy
  3. Collect band statistics for the image objects. This can be done using a zonal statistics approach and should include statistics that represent the central tendency (eg., mean, median) and variation (eg., variance, standard deviation, MAD) for each band.
  4. Assign the band statistics to the training data that defines the classification schema.
  5. Apply an appropriate statistical model, for classifying the image objects, utilizing the training data. This model can then be estimated to the band summaries for the image objects.

Stepping into a statistical software for this they of analysis, once you have the image objects created and summarized, opens many possibilities in available models as well as providing a robust validation and simulation platform. A fairly simple model to implement for this type of problem, in R, would be Random Forests. There is very clear methodology for building the classification model, validation and predicting it to a set of image-object rasters or vector polygons. Here is a very basic example.

  • the input format for zonal statistics in arc is in integer meanwhile my data is surface reflectance image stack (32 unsigned float). what would you suggest for this issue? should i multiply each image by 1000 to change it into integer and then run the zonal statistics for each band separately?
    – birdseye77
    Oct 7, 2018 at 15:18
  • sorry to keep asking. what do you mean by 'training data that defines the classification schema'? what do you refer the classification schema to? can you elaborate on point number 4?
    – birdseye77
    Oct 7, 2018 at 16:28

Your Answer

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

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