[GRASSLIST:182] imagery classification tools for classification of terrian types

Hi everyone,

Attempting to do some simple geomorphologic classification based on parameters
calculated from a DEM.

I have tried a couple permutations of i.cluster i.gensig, and i.maxlik without
success here are the commands that I used in my tests:

#1. training data based classification

i.group group=terrain subgroup=terrain
input=slope_n,er9,profc,maxic,minic,longc

r.digit --->terrain.train

i.gensig trainingmap=terrain.train group=terrain subgroup=terrain
signaturefile=terrain.sig

#results in:
Finding training classes ...
100%
3 classes.
Calculating class means ...
100%
Calculating class covariance matrices...
100%
Signature [1] not invertible.
Signature [2] not invertible.
Signature [3] not invertible.
Writing signature file [terrain.sig]

#i.maxlik dies with:
ERROR: Can't read signature file [terrain.sig].

2. unsupervised classification:
i.cluster group=terrain subgroup=terrain sigfile=terrain.sig classes=5

#results in:
Iteration 1: % Convergence: 100.00 (0s elapsed, 0s left)

i.maxlik group=terrain subgroup=terrain sigfile=terrain.sig
class=terrain.class

#results in a map with all cells set to 1

I am using GRASS6.1-CVS and all of my input maps are FCELL or DCELL .... could
this be the cause of my problems?

As a side note, this little adventure was started after reading a past paper
by Roger Bivand on the use of R for a simple cluster-based approach to
classifying terrain [1]. In his paper he goes over the aspects of getting
data to move between GRASS and R, leaving the interpretation of the results
to a geomorphologist. The R-approach seemed ideal, however I thought that I
would try it with the GRASS classification commands first.

[1] Roger Bivand. Integrating GRASS 5.0 and R: GIS and modern statistics for
data analysis. Internal Paper (?)

Thanks!

--
Dylan Beaudette
Soils and Biogeochemistry Graduate Group
University of California at Davis
530.754.7341

Markus,

Thanks for the tips. I have been able to get these two commands that you
suggested to work in the past... but this time no luck:

i.gensigset trainingmap=terrain.train group=terrain subgroup=terrain
signaturefile=terrain.sig

Finding training classes ... 100%
3 classes
Reading image data ... 100%
Clustering class 1, with 103499 pixels
Warning: Removed a singular subsignature; number 1; 9 remain
Warning: Removed a singular subsignature; number 1; 8 remain
Warning: Removed a singular subsignature; number 1; 7 remain
Warning: Removed a singular subsignature; number 1; 6 remain
Warning: Removed a singular subsignature; number 1; 5 remain
Warning: Removed a singular subsignature; number 1; 4 remain
Warning: Removed a singular subsignature; number 1; 3 remain
Warning: Removed a singular subsignature; number 1; 2 remain
Warning: Removed a singular subsignature; number 1; 1 remain

Error: unreliable clustering
try a smaller initial number of clusters
Warning: Removed a singular subsignature; number 1; -1 remain

Error: unreliable clustering
try a smaller initial number of clusters
Subclasses = 0; Rissanen = 0.000000; Solution: Number of subclasses is 0
Clustering class 2, with 732 pixels
Warning: Removed a singular subsignature; number 1; 9 remain
Warning: Removed a singular subsignature; number 1; 8 remain
Warning: Removed a singular subsignature; number 1; 7 remain
Warning: Removed a singular subsignature; number 1; 6 remain
Warning: Removed a singular subsignature; number 1; 5 remain
Warning: Removed a singular subsignature; number 1; 4 remain
Warning: Removed a singular subsignature; number 1; 3 remain
Warning: Removed a singular subsignature; number 1; 2 remain
Warning: Removed a singular subsignature; number 1; 1 remain

Error: unreliable clustering
try a smaller initial number of clusters
Warning: Removed a singular subsignature; number 1; -1 remain

Error: unreliable clustering
try a smaller initial number of clusters
Subclasses = 0; Rissanen = 0.000000; Solution: Number of subclasses is 0
Clustering class 3, with 45545 pixels
Warning: Removed a singular subsignature; number 1; 9 remain
Warning: Removed a singular subsignature; number 1; 8 remain
Warning: Removed a singular subsignature; number 1; 7 remain
Warning: Removed a singular subsignature; number 1; 6 remain
Warning: Removed a singular subsignature; number 1; 5 remain
Warning: Removed a singular subsignature; number 1; 4 remain
Warning: Removed a singular subsignature; number 1; 3 remain
Warning: Removed a singular subsignature; number 1; 2 remain
Warning: Removed a singular subsignature; number 1; 1 remain

Error: unreliable clustering
try a smaller initial number of clusters
Warning: Removed a singular subsignature; number 1; -1 remain

Error: unreliable clustering
try a smaller initial number of clusters
Subclasses = 0; Rissanen = 0.000000; Solution: Number of subclasses is 0

.. could this be a result of my training data being too coarse ?

this results in a segfault in i.smap ....

thoughts?

Dylan

On Thursday 16 March 2006 12:43 pm, Markus Neteler wrote:

Dylan,

try
i.gensigset
i.smap

works FAR better IMHO...
The training areas may not be too small (few pixels).

good luck

Markus

On Thu, Mar 16, 2006 at 12:29:49PM -0800, Dylan Beaudette wrote:
> Hi everyone,
>
> Attempting to do some simple geomorphologic classification based on
> parameters calculated from a DEM.
>
> I have tried a couple permutations of i.cluster i.gensig, and i.maxlik
> without success here are the commands that I used in my tests:
>
> #1. training data based classification
>
> i.group group=terrain subgroup=terrain
> input=slope_n,er9,profc,maxic,minic,longc
>
> r.digit --->terrain.train
>
> i.gensig trainingmap=terrain.train group=terrain subgroup=terrain
> signaturefile=terrain.sig
>
> #results in:
> Finding training classes ...
> 100%
> 3 classes.
> Calculating class means ...
> 100%
> Calculating class covariance matrices...
> 100%
> Signature [1] not invertible.
> Signature [2] not invertible.
> Signature [3] not invertible.
> Writing signature file [terrain.sig]
>
> #i.maxlik dies with:
> ERROR: Can't read signature file [terrain.sig].
>
>
> 2. unsupervised classification:
> i.cluster group=terrain subgroup=terrain sigfile=terrain.sig classes=5
>
> #results in:
> Iteration 1: % Convergence: 100.00 (0s elapsed, 0s left)
>
> i.maxlik group=terrain subgroup=terrain sigfile=terrain.sig
> class=terrain.class
>
> #results in a map with all cells set to 1
>
> I am using GRASS6.1-CVS and all of my input maps are FCELL or DCELL ....
> could this be the cause of my problems?
>
>
> As a side note, this little adventure was started after reading a past
> paper by Roger Bivand on the use of R for a simple cluster-based approach
> to classifying terrain [1]. In his paper he goes over the aspects of
> getting data to move between GRASS and R, leaving the interpretation of
> the results to a geomorphologist. The R-approach seemed ideal, however I
> thought that I would try it with the GRASS classification commands first.
>
> [1] Roger Bivand. Integrating GRASS 5.0 and R: GIS and modern statistics
> for data analysis. Internal Paper (?)
>
> Thanks!
>
>
>
> --
> Dylan Beaudette
> Soils and Biogeochemistry Graduate Group
> University of California at Davis
> 530.754.7341

--
Dylan Beaudette
Soils and Biogeochemistry Graduate Group
University of California at Davis
530.754.7341