Task: Determining different crop types from satellite imagery.

Tools at hand

  • Training data set which includes RGB, longitude and latitude, NDVI and crop type for each pixel (10m by 10m)
  • Test data set containing RGB, longitude and latitude, NDVI values but no crop type.
  • Data from Sentinel-2
  • I do not know all crop types I am trying to identify. As an example, my training data-set may include 2 different crop types (tomatoes and potatoes), but I may come across a different crop in my test-data set which was not seen during training but I need to be able to correctly identify that a new crop was detected.

I need to choose the correct statistical learning model to correctly predict or identify (not sure which is the correct term to use) different crop types from my test data set.

I am not certain as to what type of statistical learning methodology should be used in this case.

On the one hand I am trying to predict a categorical or qualitative output (classification) but on the other hand I am also predicting similarities (clustering).

Classification Examples:

  1. Linear Classifiers: Logistic Regression, Naive Bayes Classifier
  2. Support Vector Machines
  3. Decision Trees
  4. Boosted Trees
  5. Random Forest
  6. Nearest Neighbor

Clustering Examples:

  1. KMeans
  2. Mean Shift

Above I have listed some of the most popular algorithms of each category.

I am also aware (see supervised vs unsupervised classification in identification of region of interest) that if this is indeed a classification problem, I need to decide whether a supervised or unsupervised approach should be used.


I am looking for a high-level approach to such a task with explanations as to why this particular approach was suggested, and why the algorithms chosen are a better choice than others.

For example, should cluster analysis be performed followed by classification, or would classification without clustering be adequate? If classification alone is adequate, which algorithms should be considered and why?

  • Do you know what types (species) of crops you want to identify? Or are you trying to differentiate between different crop types of unknown species? – LMB Sep 2 '18 at 13:46
  • @LMB, I don't know if this makes sense but a mixture of both. I know some of the species I want to identify (Ex: potatoes and tomatoes) but in some cases crop species may be unknown. Excuse my lack of understanding here, but could you explain why I would be using different statistical approaches depending on whether I know what crop types I am trying to differentiate between? if I know crop types - classification and if crop types are unknown - clustering? – Rrz0 Sep 2 '18 at 13:58
  • 1
    As a side note, classification and clustering are two separate classes of digital image processing tasks. I would recommend using an object oriented approach where you first create image objects (clusters) of similar pixels and then classify those image objects using a supervised classification algorithm such as random forests using your training data. – Aaron Sep 3 '18 at 1:28
  • 1
    @Aaron I edited my question. Any suggestions to improve the quality of the question such that is no longer on hold? I am looking for an overview of how one should tackle such a problem which is basically what you wrote in your second comment. I would gladly accept a similar answer with more detail. – Rrz0 Sep 3 '18 at 6:00
  • 1
    @JohnPowellakaBarça, I am not sure whether supervised classification would be more useful than clustering to determine different crop types, hence the question. The training data set is ground-truth data as well as information from image processing the sentinel-2 imagery – Rrz0 Sep 3 '18 at 15:01