Improving RF classification


I am new to analyzing satellite images, but I need to make a land use map (from a Sentinel 1A image). I have drawn polygons from ground trotting training points and ran a supervised Random Forest classification. My issue is that I clearly see that the accuracy is not create. Especially, it classifies some areas as “cropland” in protected area where there is none. I also made sure to only the classes with a good-looking sprectum. And in the case of “cropland”, I also added polygons in areas I could see it was cropland from a higher-quality Binge map; so I have quite a few extra points.
How can I improve the classification?

Thanks in advance!

Do you use GHD S1 images , or SLC images, did you classify coherence or intensity?

Take a look at this tutorial

Urban classification with S1

And this one

Deforestation monitoring with S1


Actually I am using an Sentinel 2 image, sorry. And i think it is SLC…? I’m not sure…

I’ll take a look at the tutorials, thank you!

Be sure which products, you’re using, because the preparing and processing data are different, SAR images S1 , and optical images S2.

It’s named S2A_MSIL24, so it is definitely a S2 image

Then please take a look at,

Crop mapping with Sentinel 2

And also this topic is important to you,

Classification based on spectral library

This thread is discussed in here,

Supervised and unsupervised classification

Thanks! So the idea is to either do a multi-temporal RF classification, or to edit the raster in QGIS (but that seems like a bad idea given that I have quite a lot of “misclassified as cropland” areas)?

I think you could re-select the cropland class from different part of your area and then use it as a new cropland class.

Would you please to share in more details what steps are you doing, in this case I could help more,

You mean having two cropland classes then?

Yes, sure, here are the steps I followed:

  • download S2 image from sentinel open access hub (2A product)


  • subset to clip the scene to a smaller area

  • resample to make all bands at same resolution, using band 5 as a reference (20m resolution)

  • unsupervised classification for first inspection

Supervised classification:

  • import training points (shape file)
  • reprojection of the dataset
  • digitize polygons (also using a Bing map with higher resolution)
  • run a RF (which did way better than ML)

I think those are all the steps I followed!

There is no problem with those steps you are following, but I think you could apply the re-sample to the resolution you desired (I think 10 m is much higher than 20).

Do the re-sample first and then subset your AOI,

I think using Bing map to identify the training area to feeding your supervise classification is good step, but remember that the resolution and scale is different to the sentinel -2 even when you use re-sample to 10 meter, in this case you could adjust the resolution of Bing map to be close to the pixel resolution of your S-2 and then delineate your training area, for example, you could adjust to number 3, 4

this is the reason you have mentioned before concerning miss-classified area,

But now, I think you could do what I explained to you and we will see,

Ok, I resampled my scene to 10m, re-drew the polygons, and re-ran the RF classification, but it didn’t change much… I still have a lot of cropland where there should be none… Should I target those areas and do some groundtruthing to help the algorithm to understand how to not classify them as cropland?

Other solution for your training area, is to use QGIS, or ArcMap, and then delineate the cropland with polygon, choose random points within polygon, use these points as the training area for the cropland, or as you mentioned,

Yes, it’s possible to do so,