[GRASS-user] Semi-automatic classification of old thematic map

Moritz Lennert mlennert at club.worldonline.be
Tue Nov 6 04:52:29 PST 2018


On 06/11/18 13:38, Markus Neteler wrote:
> Hi,
> 
> On Tue, Nov 6, 2018 at 11:24 AM Giuseppe Cillis <giucillis at gmail.com> wrote:
>>
>> Dear all,
>> I would like to classify in a semi-automatic way, an old scanned thematic map of land use.
>> The different classes of land use are represented by polygons of different colors.
>> Which module can I use to identify the different land use classes?
> 
> In this case it might make sense to apply OBIA techniques:
> 
> https://grasswiki.osgeo.org/wiki/Image_classification#Object-based_classification_and_image_segmentation
> 
> After segmentation, classification methods can be applied.
> Of course there may be other approaches as well.

Next to the info given by Markus, you could also try i.superpixels.slic 
to segment the map.

If the colors of the different classes are very homogeneous internally 
and you do not have to many land use classes, you could also do a simple 
manual reclassification using r.mapcalc (assuming here that your scanned 
map is imported as three bands red, green and blue):

if(map.red > 10 && map.res < 15 && map.green > 55 && map.green < 70 [etc],
	1, # classify as class 1
	if([add rules], # else
		2,
		if([add rules] # else
etc.

To homogenize your objects, you could also try to regroup very similar 
(but not strictly identical) adjacent pixels into objects using r.clump 
with the threshold parameter and then recreate homogenized red, green 
and blue bands by calculating the mean of each band in each clump using 
r.stats.zonal and then use some rule system as above, or some supervised 
technique such as r.learn.ml or its OBIA equivalents to classify.

Moritz




More information about the grass-user mailing list