I am new in Machine Learning and in R. I am working in my Master thesis. I am trying to estimate the LULC of the years 1984, 1990, 2000, 2011, 2014 for characterizing the forest dynamics. I have for each year the bands corresponding to Landsat imageries. The images were corrected and I have calculated vegetation index (NDVI, EVI, SR) and Tasseled Cap Components(Brightness, Greenness, Wetness). All this was performed using i.landsat.toar, i.vi and i.tasscap commands in Grass 7, respectivelly.

I have as reference the year 2009 since there is a orthophoto and LiDAR data. Using the orthophoto I digitized training polygons for 5 classes (1. Crops, artificial, bareland; 2. pinus forest; 3. Mixed forest; 4. Quercus and 5. Shrubs).

I fitted a model using Random forest and my intention is to classify the other year datasets wich have 5 reflective bands, 3 vegetation indexes and 3 tasseled Cap Components as predictor variables.

The performance of the model is quite good, OOB 10.45% but within classes the Mixed forest achieved about 30 % of error. Thus, when I use the model to classify the other years the misclassification is very high.

Am I doing anything worng? Is the Random forest useful for this purpose? Is there any software, method or algorithm that i could use to estimate the landuse?


2 Answers 2


It is a difficult thing that you are attempting. Small subtle changes in reflectances caused by different acquisition dates will cause major errors to arise when using your approach. You will have to do more preprocessing of your data, in order to have your approach be reliable.
Normalizing the other years to your reference will most likely help, but it may not be enough.

Another approach would be to create training areas for each timestep and accept that the images are not directly comparable, but instead compare finished classifications. This obviously adds to the amount of user dependency and thus makes the study less reproducable.

  • Agreed, using a single training set for one time period will certainly cause class confusion when applied to different time periods. The OP will likely be able to improve the results for the original time period by including landform predictor variables, such as elevation, aspect, slope, etc.
    – Aaron
    May 13, 2015 at 12:05
  • In that sense, it also might be useful to consider assumptions for fixed land-use in limited areas, e.g. the heart of a big forest. It might also be feasible to seekk auxiliary data to support such assumptions. In short those can be used to calibrate training sets along years to overcome differnces stem from acquisition dates, sensor age, and sensor in general.
    – dof1985
    May 13, 2015 at 21:50
  • Yes, normalizing the data to the reference will do most of the job. I would add also that adding variables invariant to reflectance shifts will also help a lot, e.g. texture, local normalizations, and so on. Also, I think that seasonality in vegetation dynamics is a major issue that probably cannot be solved easily.
    – pixelmitch
    May 29, 2015 at 15:44

I would look at the support of you individual classes. If support for a given class is marginal in your fit model, the error may propagate in very undesirable ways.

I would also consider fitting a series of binary models and predicting probabilities of each class separately. You could then perform a sensitivity test on the probabilities and evaluate if there is multiple pixel membership (eg., pine forest transitioning into mixed).

You may be having issues with trying to validate a hard-boundary classification where fuzziness exists in the class margins. A probabilistic approach may allow you to evaluate the changes in the ecological gradients.

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.