I'm trying to make a supervised classification in Grass 6.4.3 under Linuxmint 16.

After digitizing the training areas, I transformed them from vector to raster. Then I've done the following: just in case: g.region rast=train_area_2013_03_05_raster@PERMANENT,2013_03_05_toar4@PERMANENT


i.group group=group subgroup=sub_group input=2013_03_05_toar4@PERMANENT,2013_03_05_toar5@PERMANENT,2013_03_05_toar3@PERMANENT


i.gensig trainingmap=train_area_2013_03_05_raster@PERMANENT group=group@PERMANENT subgroup=sub_group signaturefile=superv_class

but the resulting signature file, only contains one character: "#".

The output of i.gensig in the console is the following:

Finding training classes...
3 classes found
Calculating class means...
Calculating class covariance matrices...
Signature 1 not invertible
Signature 2 not invertible
Signature 3 not invertible
i.gensig complete.

Obviously if I try: i.maxlik group=group@PERMANENT subgroup=sub_group sigfile=superv_class class=results_class

I obtain the following error message:

ERROR: Unable to read signature file <superv_class>

I've been searching, but I couldn't find the solution.

I've tried: this Problem running i.gensigset in Grass. Any ideas?

My problem is similar to this: i.maxlik cannot read i.class output signature file. But here, there's no solution suggested. As in this case, I also used i.cluster to generate an unsupervised signature file and i.maxlik reads this perfectly well.

Here there's another similar question, but again, with no solution...

What does Signature X not invertible means?

Any idea? Thanks for your help!

  • If you found a solution to your question, why not post it as an answer instead of an edit?
    – Joseph
    Jul 3 '14 at 12:26

Joseph, you're right. Here is the solution to MY problem. May be someone could add some more detail, but this is how I solved it:

  • The region of my interest was about a quarter of the original image so, I clipped the Landsat image to a smaller size, leaving out a big region in which I'm not interested BEFORE start classifying (I was planning to do it at the end of the process).
  • I re-digitized the training areas paying attention to, as someone told me: "Training areas should be big enough to contain a significant number of pixels, but small enough to be homogeneous".
  • After that, I've done all the process (v.to.rast, i.gensig, i.maxlik) again, and with no problems!

  • Besides the size of the image and that I had all the training areas in a small region of it, I think that my previous digitized training-areas weren't too small, but most probably, they weren't homogeneous.

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.