#1525: r.mask cannot use float maps
----------------------+-----------------------------------------------------
Reporter: pertusus | Owner: grass-dev@…
Type: defect | Status: new
Priority: normal | Milestone: 7.0.0
Component: Raster | Version: svn-trunk
Keywords: | Platform: Linux
Cpu: x86-64 |
----------------------+-----------------------------------------------------
In the r.mask documentation it is said
The mask is read as an integer map. If MASK is actually a
floating-point map, the values will be converted to integers using the
map's quantisation rules (this defaults to round-to-nearest, but can
be changed with r.quant).
But if trying to do a mask with a float raster map, there is an error
message:
{{{
echo "0|0|1" | r.in.xyz input=- output=seed
r.mask input=seed
ERROR: Raster map seed must be integer for maskcats parameter
}}}
Usint r.quant do not change anything (poking in the dark here, I don't
really understand why r.quant do not need an output map).
{{{
r.quant -t seed
r.mask input=seed
ERROR: Raster map seed must be integer for maskcats parameter
}}}
A tarball is attached to reproduce the issue.
I had a look at r.mask and r.mask for 6.4.1, besides being a python
script, the difference seems to be that in the svn version there is a test
that the map is indeed a CELL map, which fails and give the error message,
while there was no such test in the shell script. The code is along
{{{
if grass.raster_info(input)['datatype'] != "CELL":
grass.fatal(_("Raster map %s must be integer for maskcats
parameter") % input)
}}}
I have tried without that check and things seems to work. I also attach a
trivial patch that comment that code out. Maybe r.reclass does the magic
float to integer quantification stuff? If it is the case, a comment in
the code, like
{{{
# r.reclass takes care of float to integer translation
}}}
could be handy.
Maybe the problem is in the doc and really only integer raster map with
type CELL may be used, but then the doc has to be changed and it would be
nice to have a direction, the reference to r.quant not being very useful,
in my opinion.
--
Ticket URL: <http://trac.osgeo.org/grass/ticket/1525>
GRASS GIS <http://grass.osgeo.org>