[GRASS-user] Re: raster MASKs;
was [GRASS-dev] interferring ovewrite flags
Hamish
hamish_nospam at yahoo.com
Mon Oct 2 03:37:36 EDT 2006
Michael Barton wrote:
>
> Right. I understand, even if I didn't phrase it that way. Does this
> happen for any r.mapcalc processing using the same procedures or just
> ones in which MASK is the result? Also, is it always an "and" or can
> you also get the effects of an "or"? Definitely a 'gotcha' to watch
> out for. I'm concerned especially because we are doing a lot of
> iterative r.mapcalc processing in scripts and this could be a problem.
The MASK is generally applied when a row of input data is read from the
disk.
A module scan specifically ask to ignore the MASK, but the vast vast
majority of raster modules process data by row (to save memory), and use
G_get_raster_row() to do that.
G_get_raster_row_nomask() is the non-masking version. Things that use it:
display/d.rast.edit/mk_tmp_file.c
imagery/i.rectify/perform.c
imagery/i.ortho.photo/photo.rectify/perform.c
raster/r.compress/main.c
raster/r.le/r.le.patch/driver.c
raster/r.le/r.le.patch/trace.c
raster/r.le/r.le.pixel/cellclip.c
raster/r.le/r.le.pixel/driver.c
* raster/r.null/null.c
So:
r.mapcalc MASK='if(isnull(roads))'
r.mapcalc MASK=fields
d.rast elevation.dem # displays with holes
r.mapcalc one=1 # full coverage once MASK is removed
r.mapcalc two=elevation.dem # holes once MASK is removed
g.remove MASK
d.rast one
d.rast two
the numeric mapcalc cmd hasn't read a map from the disk, so in fact it
is a solid block. The "two" map has read, so in fact contains holes.
If the "one" map is displayed with a MASK in place, it appears to have
holes in it, but these are introduced when d.rast loads the map to
display it.
clear?
Hamish
More information about the grass-user
mailing list