[GRASS-dev] No 'count' method for r.statistics

Markus Neteler neteler at osgeo.org
Mon Feb 11 11:54:46 PST 2019


Hi,

On Fri, Aug 3, 2018 at 10:13 AM Nikos Alexandris
<nik at nikosalexandris.net> wrote:
> * Markus Metz <markus.metz.giswork at gmail.com> [2018-08-01 20:33:33 +0200]:
> >On Wed, Aug 1, 2018 at 11:59 AM, Nikos Alexandris <nik at nikosalexandris.net>
> >wrote:
> >>
> >> `r.statistics` which was/is meant for categorical raster maps, does not
> >> provide for a 'count' method.
> >>
> >> `r.stats.zonal`, on the other hand, which is meant for floating point
> >> raster maps, does so.
> >>
> >> This is rather unexpected. 'Count'ing pixels should rather derive 'CELL'
> >> maps and not 'FCELL'.
> >>
> >> At the moment, I require an extra mapcalc using the int() function.
> >>
> >> Any comments?
> >
> >Counting pixels can produce a result that is too large for CELL (32 bit
> >integer), therefore storing the count as DCELL is a bit safer because it
> >can exactly store integers larger than the 32 bit maximum.
> >
> >In short, use r.stats.zonal rather than r.statistics.
> >
> >Markus M
>
> I understand it now.
>
> If integrating this extra "int()" conversion, in `r.stats.zonal`, is not
> a smart/wanted thing to do, maybe we should add an explanation in the
> `r.statistics` manual. Why 'count' is missing and why `r.stats.zonal` should
> be used.
>
> I can offer a patch for the manual if you agree.

No need to ask, it would be great :-)

> My guess is that the development team has future plans regarding all r.stat*
> modules, to merge and simplify as much as possible.

Suggestions may be discussed here.

A related question from a (remote) colleague:

They have two Land Cover raster files at different resolutions, one at
5 m x 5 m and the other at 30m x 30 m with both 9 identical
categories.
They want to count the number of pixels of a category of the first map
that fall within each pixel of the second.
How to do that in an elegant way?

thanks
Markus


More information about the grass-dev mailing list