[GIS] Classification, change detection and NDVI using landsat 2 (MSS), landsat 5 (TM) and Landsat 7 (ETM)

arcgis-10.2change detectionland-classificationlandsatndvi

I have 3 Landsat images for the same area. One in 1972 (landsat 2 mss), one in 1996 (landsat 5 TM) and one in 2010 (landsat 7 ETM). I would like to detect changes in land cover and create diachronic maps. Also, I would like to calculate NDVIs and compare the results between the three dates. Landsat 5 and 7 are easily comparable because they have common bands. However I don't know what to do to make the Landsat 2 comparable…Normalized them?
Also I have another question. Do you usually run first a Maximum Likelihood Classifier and then calculate the NDVIs on the MLC resulting image? Or it should be a separate process?
I use ArcGIS 10.2

Best Answer

This is an interesting problem. I think that you should give a bit more details about the kind of changes you are looking for.

If you are going to work on "unsupervised" change detection, not having common bands may be a problem. However, I think that the MSS has some bands in common with the other sensors. You can manually select common bands and work on their multivariate difference to detect changes. An histogram match between them may be necessary to have the no change distribution at 0 mean distribution. Or at least subtract the mean from both images should help.

Otherwise, you can compute NDVI from each image and compare again their difference. You don't need to train a classifier for that, but just compute a normalized difference between the NIR and Red channels. This should give some information about the vegetation changes, not sure about other kind of changes.

Ideally, you can stack the difference of the NDVI to the difference in common spectral channels, run a clustering algorithm on the stack of differences and manually intepret each cluster spatially.

Another solution is to obtain a land cover classification map from each image by training a supervised classifier (for instance using the MLC as you mentioned) and then compare the map layers to obtain a transition matrix and map. However, this is prone to errors, since classification maps are obtained independently and temporal dependencies completely disregarded.

If you are not restricted to the ArcGIS environment but you can implement your own code, there exist some very interesting method that allow to transform the images prior to change detection. Their transformation maps the images into comparable spaces, and you can perform change detection in that space. In this case, reflectance values are transformed into a unitless value, but if you aim at obtaining a simple change map, this should not be a problem. One of these approach is called Multivariate Alteration Detection, by AA Nielsen and M Canty. The method works pretty well, in particular if the input images are too spectrally dissimilar. And it is supereasy to implement (basically 5 lines of matlab). I think Nielsen also provide codes for that on its personal webpage. There also exist some more complex extensions. EDIT yes they do http://www.imm.dtu.dk/~alan/software.html

Related Question