Opened 11 years ago

Closed 11 years ago

#387 closed defect (invalid)

r.grow.distance, r.random.surface ignores raster MASK

Reported by: marisn Owned by: grass-dev@…
Priority: major Milestone: 6.4.0
Component: Raster Version: unspecified
Keywords: Cc:
CPU: Unspecified Platform: Unspecified

Description

When r.grow.distance or r.random.surface are run with enabled raster MASK, mask is used only to filter out input values but does not affect output maps (they contain also values in areas hidden by mask).

g.copy rast=trn.sites,MASK
r.grow.distance input=roads distance=dist_to_road
r.random.surface output=randomized 
g.remove rast=MASK

Display resulting maps -> areas OUTSIDE of MASK also contain some values. In r.random.surface case value in MASKed area is NOT random. As most GRASS modules will work only in not masked area, it's conterintuitive and requires additional processing to remove MASKed areas from output maps.

Change History (2)

comment:1 Changed 11 years ago by hamish

note that MASK is only applied when reading a raster map from disk.

http://grass.osgeo.org/grass64/manuals/html64_user/rasterintro.html

Hamish

comment:2 in reply to:  description Changed 11 years ago by glynn

Resolution: invalid
Status: newclosed

Replying to marisn:

When r.grow.distance or r.random.surface are run with enabled raster MASK, mask is used only to filter out input values but does not affect output maps (they contain also values in areas hidden by mask).

Display resulting maps -> areas OUTSIDE of MASK also contain some values. In r.random.surface case value in MASKed area is NOT random. As most GRASS modules will work only in not masked area, it's conterintuitive and requires additional processing to remove MASKed areas from output maps.

Yes. That's how MASK works. That's how it always works.

If you want to mask the result of an operation, you need to explicitly apply the mask by running e.g. r.resample while the mask is active.

Note: See TracTickets for help on using tickets.