[GRASS-user] i.maxlik can't read signature from i.class
Nikos Alexandris
nik at nikosalexandris.net
Wed Nov 27 13:20:56 PST 2013
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
More information about the grass-user
mailing list