[GRASS-user] i.maxlik can't read signature from i.class

Hello everyone,

I’ve been trying to do a supervised classification from landsat8 imagery using i.class and then i.maxlik, but I’m getting an error when running i.maxlik saying it can’t read the signature file.

I tested my procedure on the NC sample dataset and I’m getting the same error, I’m using Grass 6.4.2 on Debian Wheezy, installed from the debian repo. Here’s the command set:

#Display RGB enhanced map
i.landsat.rgb blue=lsat7_2000_10 green=lsat7_2000_20 red=lsat7_2000_30

d.rgb blue=lsat7_2000_10 green=lsat7_2000_20 red=lsat7_2000_30
#“Real color” map
r.composite red=lsat7_2000_30 green=lsat7_2000_20 blue=lsat7_2000_10 output=lsat7_2000_RGB
#Group images to process
i.group group=lsat7_2000_RGB subgroup=lsat7_2000_RGB input=lsat7_2000_10,lsat7_2000_20,lsat7_2000_30

#Unsupervised classification

i.cluster group=lsat7_2000_RGB subgroup=lsat7_2000_RGB sigfile=clustlsat7 classes=20 report=rep_clust_lsat7.txt
i.maxlik group=lsat7_2000_RGB subgroup=lsat7_2000_RGB sigfile=clustlsat7 class=lsat7_classes reject=lsat7_classes_rej

#Supervised classification

i.class map=lsat7_2000_RGB group=lsat7_2000_RGB subgroup=lsat7_2000_RGB outsig=classlsat7
i.maxlik group=lsat7_2000_RGB subgroup=lsat7_2000_RGB sigfile=classlsat7 class=lsat7_class_sup

Here I get the error in which i.maxlik can’t read the signature file created by i.class (classlsat7) but read the one created by i.cluster flawlessly

This is what I’m selecting on the i.class monitor, I named it vegetation:
Imagen integrada 1

And the contents of the classlsat7 signature file are the following:

#vegetation

166

Am I doing something wrong or is it some kind of bug?

César Augusto Ramírez Franco

Laboratorio de Sistemas Complejos Naturales

Escuela de Geociencias

Facultad de Ciencias

Universidad Nacional de Colombia - Sede Medellín

Teléfono: (57-4) 430 9369 - 301 389 5607

Hi Augusto,

In GRASS-6.4.3, i.class only works on 8bit images. Since the Landsat 8 products are
12bit data, proper signature files cannot be produced by i.class.

You could try rescaling data to 8bit and see if i.class and i.maxlik works.

Best

Venka

P.S. I hope i.class will be support 12, 16bit images in future.

On 2013/11/27 0:47, Cesar Augusto Ramírez Franco wrote:

Hello everyone,

I've been trying to do a supervised classification from landsat8 imagery
using i.class and then i.maxlik, but I'm getting an error when running
i.maxlik saying it can't read the signature file.

I tested my procedure on the NC sample dataset and I'm getting the same
error, I'm using Grass 6.4.2 on Debian Wheezy, installed from the debian
repo. Here's the command set:

#Display RGB enhanced map
i.landsat.rgb blue=lsat7_2000_10 green=lsat7_2000_20 red=lsat7_2000_30
d.rgb blue=lsat7_2000_10 green=lsat7_2000_20 red=lsat7_2000_30
#"Real color" map
r.composite red=lsat7_2000_30 green=lsat7_2000_20 blue=lsat7_2000_10
output=lsat7_2000_RGB
#Group images to process
i.group group=lsat7_2000_RGB subgroup=lsat7_2000_RGB
input=lsat7_2000_10,lsat7_2000_20,lsat7_2000_30
#Unsupervised classification
i.cluster group=lsat7_2000_RGB subgroup=lsat7_2000_RGB sigfile=clustlsat7
classes=20 report=rep_clust_lsat7.txt
i.maxlik group=lsat7_2000_RGB subgroup=lsat7_2000_RGB sigfile=clustlsat7
  class=lsat7_classes reject=lsat7_classes_rej
#Supervised classification
i.class map=lsat7_2000_RGB group=lsat7_2000_RGB subgroup=lsat7_2000_RGB
outsig=classlsat7
i.maxlik group=lsat7_2000_RGB subgroup=lsat7_2000_RGB sigfile=classlsat7
class=lsat7_class_sup

Here I get the error in which i.maxlik can't read the signature file
created by i.class (classlsat7) but read the one created by i.cluster
flawlessly

This is what I'm selecting on the i.class monitor, I named it vegetation:
[image: Imagen integrada 1]

And the contents of the classlsat7 signature file are the following:

#

#vegetation

166

Am I doing something wrong or is it some kind of bug?

_______________________________________________
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user

Cesar Augusto Ramírez Franco wrote:

Hello everyone,

Hello,

I've been trying to do a supervised classification from landsat8 imagery
using i.class and then i.maxlik, but I'm getting an error when running
i.maxlik saying it can't read the signature file.

Just to double-check: verify that your "classes" don't overlay any NULL cells.
It might be completely irrelevant, I have, though, blurry memories of this
being a blocker actually (with i.smap at least).

I tested my procedure on the NC sample dataset and I'm getting the same
error, I'm using Grass 6.4.2 on Debian Wheezy, installed from the debian
repo. Here's the command set:

#Display RGB enhanced map
i.landsat.rgb blue=lsat7_2000_10 green=lsat7_2000_20 red=lsat7_2000_30
d.rgb blue=lsat7_2000_10 green=lsat7_2000_20 red=lsat7_2000_30

#"Real color" map
r.composite red=lsat7_2000_30 green=lsat7_2000_20 blue=lsat7_2000_10
output=lsat7_2000_RGB

#Group images to process
i.group group=lsat7_2000_RGB subgroup=lsat7_2000_RGB
input=lsat7_2000_10,lsat7_2000_20,lsat7_2000_30

#Unsupervised classification
i.cluster group=lsat7_2000_RGB subgroup=lsat7_2000_RGB sigfile=clustlsat7
classes=20 report=rep_clust_lsat7.txt

(I have never tried to feed a group that uses a single composite. I'll try it
out.)

i.maxlik group=lsat7_2000_RGB subgroup=lsat7_2000_RGB sigfile=clustlsat7
class=lsat7_classes reject=lsat7_classes_rej

Does the unsupervised classification work? i.cluster requires at least two
input raster maps. And, honestly, I have never tried it the way you did, i.e.
by using a composite map. Also, r.composite will use by default "32 levels"
whicih means that you loose important info for the subsequent classification,
if I am not wrong.

#Supervised classification
i.class map=lsat7_2000_RGB group=lsat7_2000_RGB subgroup=lsat7_2000_RGB
outsig=classlsat7
i.maxlik group=lsat7_2000_RGB subgroup=lsat7_2000_RGB sigfile=classlsat7
class=lsat7_class_sup

Here I get the error in which i.maxlik can't read the signature file
created by i.class (classlsat7) but read the one created by i.cluster
flawlessly

This is what I'm selecting on the i.class monitor, I named it vegetation:
[image: Imagen integrada 1]

Only on class? Can you try with more please?

And the contents of the classlsat7 signature file are the following:

#

#vegetation

166

Am I doing something wrong or is it some kind of bug?

Greets, Nikos

Hello Nikos,

···

2013/11/27 Nikos Alexandris <nik@nikosalexandris.net>

Cesar Augusto Ramírez Franco wrote:

Hello everyone,

Hello,

I’ve been trying to do a supervised classification from landsat8 imagery
using i.class and then i.maxlik, but I’m getting an error when running
i.maxlik saying it can’t read the signature file.

Just to double-check: verify that your “classes” don’t overlay any NULL cells.
It might be completely irrelevant, I have, though, blurry memories of this
being a blocker actually (with i.smap at least).

​There are no NULL cells on my classes, neither on my Landsat 8 images or the Landsat 7 in the North Carolina dataset

I tested my procedure on the NC sample dataset and I’m getting the same
error, I’m using Grass 6.4.2 on Debian Wheezy, installed from the debian
repo. Here’s the command set:

#Display RGB enhanced map
i.landsat.rgb blue=lsat7_2000_10 green=lsat7_2000_20 red=lsat7_2000_30
d.rgb blue=lsat7_2000_10 green=lsat7_2000_20 red=lsat7_2000_30

#“Real color” map
r.composite red=lsat7_2000_30 green=lsat7_2000_20 blue=lsat7_2000_10
output=lsat7_2000_RGB

#Group images to process
i.group group=lsat7_2000_RGB subgroup=lsat7_2000_RGB
input=lsat7_2000_10,lsat7_2000_20,lsat7_2000_30

#Unsupervised classification
i.cluster group=lsat7_2000_RGB subgroup=lsat7_2000_RGB sigfile=clustlsat7
classes=20 report=rep_clust_lsat7.txt

(I have never tried to feed a group that uses a single composite. I’ll try it
out.)

The composite is for the supervised clasification, the group and subgroup are made with the 3 RGB bands (1,2,3 in Landsat7 or 2,3,4 in Landsat8)​

i.maxlik group=lsat7_2000_RGB subgroup=lsat7_2000_RGB sigfile=clustlsat7
class=lsat7_classes reject=lsat7_classes_rej

Does the unsupervised classification work? i.cluster requires at least two
input raster maps. And, honestly, I have never tried it the way you did, i.e.
by using a composite map. Also, r.composite will use by default “32 levels”
whicih means that you loose important info for the subsequent classification,
if I am not wrong.

​The supervised classification does work, i.cluster generates a signature file and i.maxlik success to create the classes raster map

#Supervised classification
i.class map=lsat7_2000_RGB group=lsat7_2000_RGB subgroup=lsat7_2000_RGB
outsig=classlsat7
i.maxlik group=lsat7_2000_RGB subgroup=lsat7_2000_RGB sigfile=classlsat7
class=lsat7_class_sup

Here I get the error in which i.maxlik can’t read the signature file
created by i.class (classlsat7) but read the one created by i.cluster
flawlessly

This is what I’m selecting on the i.class monitor, I named it vegetation:
[image: Imagen integrada 1]

Only on class? Can you try with more please?

Yes, the error I’m getting is only with the i.class module

I’m doing some tests creating a test vector​​ with my classes as areas, then converting it to raster with v.to.rast, and then using that raster to generate statistics for i.smap with i.gensigset

I don’t know if I’m not using the i.class module the right way or if it’s broken

And the contents of the classlsat7 signature file are the following:

#vegetation

166

Am I doing something wrong or is it some kind of bug?

Greets, Nikos

​Thank you very much​

César Augusto Ramírez Franco

Laboratorio de Sistemas Complejos Naturales

Escuela de Geociencias

Facultad de Ciencias

Universidad Nacional de Colombia - Sede Medellín

Teléfono: (57-4) 430 9369 - 301 389 5607

Cesar Augusto Ramírez Franco wrote:

> > I've been trying to do a supervised classification from landsat8 imagery
> > using i.class and then i.maxlik, but I'm getting an error when running
> > i.maxlik saying it can't read the signature file.

Nikos Alexandris:

> Just to double-check: verify that your "classes" don't overlay any NULL
> cells. It might be completely irrelevant, I have, though, blurry memories
> of this being a blocker actually (with i.smap at least).

​There are no NULL cells on my classes, neither on my Landsat 8 images or
the Landsat 7 in the North Carolina dataset

ok

> > I tested my procedure on the NC sample dataset and I'm getting the same
> > error, I'm using Grass 6.4.2 on Debian Wheezy, installed from the debian
> > repo. Here's the command set:

> > #Display RGB enhanced map
> > i.landsat.rgb blue=lsat7_2000_10 green=lsat7_2000_20 red=lsat7_2000_30
> > d.rgb blue=lsat7_2000_10 green=lsat7_2000_20 red=lsat7_2000_30
> >
> > #"Real color" map
> > r.composite red=lsat7_2000_30 green=lsat7_2000_20 blue=lsat7_2000_10
> > output=lsat7_2000_RGB
> >
> > #Group images to process
> > i.group group=lsat7_2000_RGB subgroup=lsat7_2000_RGB
> > input=lsat7_2000_10,lsat7_2000_20,lsat7_2000_30
> >
> > #Unsupervised classification
> > i.cluster group=lsat7_2000_RGB subgroup=lsat7_2000_RGB
> > sigfile=clustlsat7
> > classes=20 report=rep_clust_lsat7.txt
>
> (I have never tried to feed a group that uses a single composite. I'll try
> it out.)

The composite is for the supervised clasification, the group and subgroup
are made with the 3 RGB bands (1,2,3 in Landsat7 or 2,3,4 in Landsat8)​

Right, I didn't pay much attention. Apologies.

> i.maxlik group=lsat7_2000_RGB subgroup=lsat7_2000_RGB sigfile=clustlsat7
> class=lsat7_classes reject=lsat7_classes_rej

> Does the unsupervised classification work? i.cluster requires at least
> two input raster maps. And, honestly, I have never tried it the way you
> did, i.e. by using a composite map. Also, r.composite will use by default
> "32 levels" whicih means that you loose important info for the subsequent
> classification, if I am not wrong.

Same error (of mine) as above, you correctly used a group with three bands.

​The supervised classification does work, i.cluster generates a signature
file and i.maxlik success to create the classes raster map

You mean the _un_supervised I guess.

> #Supervised classification
>
> > i.class map=lsat7_2000_RGB group=lsat7_2000_RGB subgroup=lsat7_2000_RGB
> > outsig=classlsat7
> > i.maxlik group=lsat7_2000_RGB subgroup=lsat7_2000_RGB sigfile=classlsat7
> > class=lsat7_class_sup
> >
> > Here I get the error in which i.maxlik can't read the signature file
> > created by i.class (classlsat7) but read the one created by i.cluster
> > flawlessly
> >
> > This is what I'm selecting on the i.class monitor, I named it
> > vegetation:
> > [image: Imagen integrada 1]
>
> Only on class? Can you try with more please?

Yes, the error I'm getting is only with the i.class module

Sorry for my typo -- I meant to write "only with 1 class?", "can you try with
more than 1 class, i.e. 3 or 4 classes?".

I'm doing some tests creating a test vector​​ with my classes as areas,

how many classes?

then converting it to raster with v.to.rast,

can you post the exact command? What values are you attributing to the
rasterised classes?

and then using that raster to generate statistics for i.smap with
i.gensigset

I don't know if I'm not using the i.class module the right way or if it's
broken

I don't think it is broken as it usually works/ed fine. But we'll try to nail
that down.

Nikos

2013/11/27 Nikos Alexandris <nik@nikosalexandris.net>

Cesar Augusto Ramírez Franco wrote:

> > > I've been trying to do a supervised classification from landsat8
imagery
> > > using i.class and then i.maxlik, but I'm getting an error when
running
> > > i.maxlik saying it can't read the signature file.

Nikos Alexandris:

> > Just to double-check: verify that your "classes" don't overlay any NULL
> > cells. It might be completely irrelevant, I have, though, blurry
memories
> > of this being a blocker actually (with i.smap at least).

> ​There are no NULL cells on my classes, neither on my Landsat 8 images or
> the Landsat 7 in the North Carolina dataset

ok

> > > I tested my procedure on the NC sample dataset and I'm getting the
same
> > > error, I'm using Grass 6.4.2 on Debian Wheezy, installed from the
debian
> > > repo. Here's the command set:

> > > #Display RGB enhanced map
> > > i.landsat.rgb blue=lsat7_2000_10 green=lsat7_2000_20
red=lsat7_2000_30
> > > d.rgb blue=lsat7_2000_10 green=lsat7_2000_20 red=lsat7_2000_30
> > >
> > > #"Real color" map
> > > r.composite red=lsat7_2000_30 green=lsat7_2000_20 blue=lsat7_2000_10
> > > output=lsat7_2000_RGB
> > >
> > > #Group images to process
> > > i.group group=lsat7_2000_RGB subgroup=lsat7_2000_RGB
> > > input=lsat7_2000_10,lsat7_2000_20,lsat7_2000_30
> > >
> > > #Unsupervised classification
> > > i.cluster group=lsat7_2000_RGB subgroup=lsat7_2000_RGB
> > > sigfile=clustlsat7
> > > classes=20 report=rep_clust_lsat7.txt
> >
> > (I have never tried to feed a group that uses a single composite. I'll
try
> > it out.)
>
> The composite is for the supervised clasification, the group and subgroup
> are made with the 3 RGB bands (1,2,3 in Landsat7 or 2,3,4 in Landsat8)​

Right, I didn't pay much attention. Apologies.

> > i.maxlik group=lsat7_2000_RGB subgroup=lsat7_2000_RGB
sigfile=clustlsat7
> > class=lsat7_classes reject=lsat7_classes_rej

> > Does the unsupervised classification work? i.cluster requires at least
> > two input raster maps. And, honestly, I have never tried it the way you
> > did, i.e. by using a composite map. Also, r.composite will use by
default
> > "32 levels" whicih means that you loose important info for the
subsequent
> > classification, if I am not wrong.

Same error (of mine) as above, you correctly used a group with three bands.

> ​The supervised classification does work, i.cluster generates a signature
> file and i.maxlik success to create the classes raster map

You mean the _un_supervised I guess.

Yes, I meant the unsupervised, with i.cluster​​

> #Supervised classification
> >
> > > i.class map=lsat7_2000_RGB group=lsat7_2000_RGB
subgroup=lsat7_2000_RGB
> > > outsig=classlsat7
> > > i.maxlik group=lsat7_2000_RGB subgroup=lsat7_2000_RGB
sigfile=classlsat7
> > > class=lsat7_class_sup
> > >
> > > Here I get the error in which i.maxlik can't read the signature file
> > > created by i.class (classlsat7) but read the one created by i.cluster
> > > flawlessly
> > >
> > > This is what I'm selecting on the i.class monitor, I named it
> > > vegetation:
> > > [image: Imagen integrada 1]
> >
> > Only on class? Can you try with more please?
>
> Yes, the error I'm getting is only with the i.class module

Sorry for my typo -- I meant to write "only with 1 class?", "can you try
with
more than 1 class, i.e. 3 or 4 classes?".

I was using two classes, vegetation and construction, I tried two more
classes and got the same error
​​

> I'm doing some tests creating a test vector​​ with my classes as areas,

how many classes?

> then converting it to raster with v.to.rast,

can you post the exact command? What values are you attributing to the
rasterised classes?

I used the grass gui to draw some polygons on a test vector with
​​cat(integer),class(integer),desc(varchar) and assigned 1 for
vegetation or 2 for constructions

Then issued
v.to.rast in=test out=test use=attr col=class labelcol=desc

And got a raster with those areas, then created the signature with
i.gensigset group=lsat7_2000_RGB subgroup=lsat7_2000_RGB sig=lsat7_testsig
training=test
i.smap group=lsat7_2000_RGB subgroup=lsat7_2000_RGB sig=lsat7_testsig
out=veg_const

and then using that raster to generate statistics for i.smap with
> i.gensigset

> I don't know if I'm not using the i.class module the right way or if it's
> broken

I don't think it is broken as it usually works/ed fine. But we'll try to
nail
that down.

Nikos

​I just tested with Grass7.0svn and the GUI tool for supervised
clasification (g.gui.iclass) generates a signature (with just one class)
that is read just fine by i.maxlik​

--
*César Augusto Ramírez Franco*
Laboratorio de Sistemas Complejos Naturales
Escuela de Geociencias
Facultad de Ciencias
Universidad Nacional de Colombia - Sede Medellín
Teléfono: (57-4) 430 9369 - 301 389 5607

Cesar Augusto Ramírez Franco wrote:

..

​I just tested with Grass7.0svn and the GUI tool for supervised
clasification (g.gui.iclass) generates a signature (with just one class)
that is read just fine by i.maxlik​

So it works with G7? Then maybe a bug after all?

Nikos

Hello Cesar,

···

On Tue, Nov 26, 2013 at 4:47 PM, Cesar Augusto Ramírez Franco <caesarivs@gmail.com> wrote:

Hello everyone,

I’ve been trying to do a supervised classification from landsat8 imagery using i.class and then i.maxlik, but I’m getting an error when running i.maxlik saying it can’t read the signature file.

I tested my procedure on the NC sample dataset and I’m getting the same error, I’m using Grass 6.4.2 on Debian Wheezy, installed from the debian repo. Here’s the command set:

#Display RGB enhanced map
i.landsat.rgb blue=lsat7_2000_10 green=lsat7_2000_20 red=lsat7_2000_30

d.rgb blue=lsat7_2000_10 green=lsat7_2000_20 red=lsat7_2000_30
#“Real color” map
r.composite red=lsat7_2000_30 green=lsat7_2000_20 blue=lsat7_2000_10 output=lsat7_2000_RGB
#Group images to process
i.group group=lsat7_2000_RGB subgroup=lsat7_2000_RGB input=lsat7_2000_10,lsat7_2000_20,lsat7_2000_30

#Unsupervised classification

i.cluster group=lsat7_2000_RGB subgroup=lsat7_2000_RGB sigfile=clustlsat7 classes=20 report=rep_clust_lsat7.txt
i.maxlik group=lsat7_2000_RGB subgroup=lsat7_2000_RGB sigfile=clustlsat7 class=lsat7_classes reject=lsat7_classes_rej

#Supervised classification

i.class map=lsat7_2000_RGB group=lsat7_2000_RGB subgroup=lsat7_2000_RGB outsig=classlsat7
i.maxlik group=lsat7_2000_RGB subgroup=lsat7_2000_RGB sigfile=classlsat7 class=lsat7_class_sup

I reproduced your example here (thanks for providing it, makes testing easy!).

Here I get the error in which i.maxlik can’t read the signature file created by i.class (classlsat7) but read the one created by i.cluster flawlessly

Here it went through (Fedora 19 64bit, 6.4.4svn).

GRASS 6.4.4svn (nc_spm_08):~ > i.class map=lsat7_2000_RGB group=lsat7_2000_RGB subgroup=lsat7_2000_RGB outsig=classlsat7

RESULT SIGNATURE

GRASS 6.4.4svn (nc_spm_08):~ > i.maxlik group=lsat7_2000_RGB subgroup=lsat7_2000_RGB sigfile=clustlsat7 class=lsat7_classes reject=lsat7_classes_rej --o
100%

This is what I’m selecting on the i.class monitor, I named it vegetation:

My map looked similar.

And the contents of the classlsat7 signature file are the following:

#vegetation

166

This is strange… Here I get

GRASS 6.4.4svn (nc_spm_08):~/grassdata/nc_spm_08/landsat/group/lsat7_2000_RGB/subgroup/lsat7_2000_RGB/sig > cat classlsat7

#lake
899
68.2458 49.1224 38.317
2.30345
1.26392 2.63753
1.82294 2.67163 5.90938
#vegetation
92
76.3804 66.6957 57.2391
120.414
116.029 116.236
160.886 158.447 222.206

Maybe you remove the unfortunate signature from the ASCII file and digitize it again?

Best,
Markus

Hello Markus, thanks for your response

I’ve tried deleting the signature from the ASCII file and doing the i.class again, I’ve tried deleting the signature file and creating it again, but I always get a kind of empty file:

GRASS (MAPSET: landsat - LOCATION: nc_spm_08):~/grassdata/nc_spm_08/landsat/group/lsat7_2000_RGB/subgroup/lsat7_2000_RGB/sig

···

2013/12/2 Markus Neteler <neteler@osgeo.org>

Hello Cesar,

César Augusto Ramírez Franco

Laboratorio de Sistemas Complejos Naturales

Escuela de Geociencias

Facultad de Ciencias

Universidad Nacional de Colombia - Sede Medellín

Teléfono: (57-4) 430 9369 - 301 389 5607

On Tue, Nov 26, 2013 at 4:47 PM, Cesar Augusto Ramírez Franco <caesarivs@gmail.com> wrote:

Hello everyone,

I’ve been trying to do a supervised classification from landsat8 imagery using i.class and then i.maxlik, but I’m getting an error when running i.maxlik saying it can’t read the signature file.

I tested my procedure on the NC sample dataset and I’m getting the same error, I’m using Grass 6.4.2 on Debian Wheezy, installed from the debian repo. Here’s the command set:

#Display RGB enhanced map
i.landsat.rgb blue=lsat7_2000_10 green=lsat7_2000_20 red=lsat7_2000_30

d.rgb blue=lsat7_2000_10 green=lsat7_2000_20 red=lsat7_2000_30
#“Real color” map
r.composite red=lsat7_2000_30 green=lsat7_2000_20 blue=lsat7_2000_10 output=lsat7_2000_RGB
#Group images to process
i.group group=lsat7_2000_RGB subgroup=lsat7_2000_RGB input=lsat7_2000_10,lsat7_2000_20,lsat7_2000_30

#Unsupervised classification

i.cluster group=lsat7_2000_RGB subgroup=lsat7_2000_RGB sigfile=clustlsat7 classes=20 report=rep_clust_lsat7.txt
i.maxlik group=lsat7_2000_RGB subgroup=lsat7_2000_RGB sigfile=clustlsat7 class=lsat7_classes reject=lsat7_classes_rej

#Supervised classification

i.class map=lsat7_2000_RGB group=lsat7_2000_RGB subgroup=lsat7_2000_RGB outsig=classlsat7
i.maxlik group=lsat7_2000_RGB subgroup=lsat7_2000_RGB sigfile=classlsat7 class=lsat7_class_sup

I reproduced your example here (thanks for providing it, makes testing easy!).

Here I get the error in which i.maxlik can’t read the signature file created by i.class (classlsat7) but read the one created by i.cluster flawlessly

Here it went through (Fedora 19 64bit, 6.4.4svn).

GRASS 6.4.4svn (nc_spm_08):~ > i.class map=lsat7_2000_RGB group=lsat7_2000_RGB subgroup=lsat7_2000_RGB outsig=classlsat7

RESULT SIGNATURE

GRASS 6.4.4svn (nc_spm_08):~ > i.maxlik group=lsat7_2000_RGB subgroup=lsat7_2000_RGB sigfile=clustlsat7 class=lsat7_classes reject=lsat7_classes_rej --o
100%

This is what I’m selecting on the i.class monitor, I named it vegetation:

My map looked similar.

And the contents of the classlsat7 signature file are the following:

#vegetation

166

This is strange… Here I get

GRASS 6.4.4svn (nc_spm_08):~/grassdata/nc_spm_08/landsat/group/lsat7_2000_RGB/subgroup/lsat7_2000_RGB/sig > cat classlsat7

#lake
899
68.2458 49.1224 38.317
2.30345
1.26392 2.63753
1.82294 2.67163 5.90938
#vegetation
92
76.3804 66.6957 57.2391
120.414
116.029 116.236
160.886 158.447 222.206

Maybe you remove the unfortunate signature from the ASCII file and digitize it again?

Best,
Markus