[GRASS-dev] Re: [GRASS-user] low radiance values after i.atcor and i.topo.corr

Markus Neteler neteler at osgeo.org
Tue Jun 24 16:19:00 EDT 2008


On Mon, Jun 23, 2008 at 11:49 PM, Glynn Clements
<glynn at gclements.plus.com> wrote:
> Markus Neteler wrote:
...
>>  r.mapcalc b10=lsat7_2000_10/10000.
>
> [snip]
>
>> Error: unreliable clustering
>> try a smaller initial number of clusters
>> Warning: Removed a singular subsignature; number 1; -1 remain
...
> Could it be that the definition of ZERO in subcluster.c:
>
>        #define ZERO 1e-10
>
> is too high when the inputs are scaled down?

Apparently yes.

> For an NxN matrix, scaling all of the the elements down by a factor of
> K will scale the determinant by K^N.
>
> AFAICT[1], the matrix elements are roughly proportional to the squares
> of the input values, so if you're scaling the values down by 1e-5, the
> matrix elements are scaled down by 1e-10, and with 7 bands the
> determinant would be scaled down by 1e-70.
>
> [1] Which isn't saying much; it's not like I actually understand the
> algorithm being used here.

Documentation and a potentially more advanced version I found here:
http://cobweb.ecn.purdue.edu/~bouman/software/segmentation/

> Can you try dividing by 10, 100, etc rather than 10000, to see if
> there's a threshold at which the accuracy starts to be an issue?
>
> And/or make ZERO much smaller.

For /10000. it works with ZERO = 0.0 only. The result is reasonable.

Keeping ZERO = 0.0 and dividing by /10. only produces the same result
(but the Rissanen output differs), same for /100. Differences with r.mapcalc
are NULL. Same for /100000.

Looks like solved with ZERO patch to be submitted?

Markus


More information about the grass-dev mailing list