Yes, with r.neighbors I woul chenge the values to NULL, but I don't know how to solve the problem of applying the filter only to the cells with a specific value (involving only the values of their neighbors).<div>My border cells have assigned a 10000 value. I'm working on a DEM., so this fictious value is a way to code my borders. I want to apply the filter only on these cells, while leaving the others (not on the border) unaltered.</div>
<div>With r.mapcalc I use an if() statement, but with r.neighbors I would need a MASK.</div><div><br></div><div>giovanni</div><div><br><div class="gmail_quote">2012/6/19 Markus Metz <span dir="ltr"><<a href="mailto:markus.metz.giswork@googlemail.com" target="_blank">markus.metz.giswork@googlemail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On Tue, Jun 19, 2012 at 6:15 PM, G. Allegri <<a href="mailto:giohappy@gmail.com">giohappy@gmail.com</a>> wrote:<br>

>> AFAICT, r.neighbors ignores NULL values and assigns the new value from<br>
>> the surrounding non-NULL values. You could then patch your original<br>
>> map with the output of r.neighbors.<br>
><br>
><br>
> I have considered r.neighbors but I need to apply the filter only to some<br>
> specific categories (border cells in my case). A MASK wouldn't solve my<br>
> problem, because it would mask the neighbors...<br>
<br>
</div>You could replace 9999 (according to your first post the category of<br>
border cells) with NULL, then run r.neighbors, without a MASK?<br>
<br>
Markus M<br>
<div class="HOEnZb"><div class="h5"><br>
><br>
> giovanni<br>
><br>
><br>
>><br>
>><br>
>> HTH,<br>
>><br>
>> Markus M<br>
>><br>
>> ><br>
>> > giovanni<br>
>> ><br>
>> ><br>
>> > 2012/6/19 Marcello Gorini <<a href="mailto:gorini@gmail.com">gorini@gmail.com</a>><br>
>> >><br>
>> >><br>
>> >><br>
>> >> G. Allegri wrote:<br>
>> >><br>
>> >>> I need to assign values to a the cells on the "border" of a raster.<br>
>> >>> The<br>
>> >>> inside and the outside are distinguished by having or not having null<br>
>> >>> values<br>
>> >>> assigned.<br>
>> >>> I also need to keep the other cell values (internals) untouched.<br>
>> >>><br>
>> >><br>
>> >>  Hey,<br>
>> >><br>
>> >> Check out r.grow. I am pretty sure you can modify the example given in<br>
>> >> the<br>
>> >> manual to find the borders of your raster. Something like:<br>
>> >><br>
>> >> # creates an inverted raster from your raster<br>
>> >> > r.mapcalc "raster_inverted=if(isnull(raster,1,null())"<br>
>> >> # grow this inverted raster by one cell<br>
>> >> > r.grow in=raster_inverted out=raster_inverted_grown<br>
>> >> # now both rasters overlap at the border, so you can do whatever you<br>
>> >> want<br>
>> >> with it, for instance, extract it<br>
>> >> > r.mapcalc "border=if(raster_inverted_grown==1 &&<br>
>> >> > isnull(raster)==0,raster,null())"<br>
>> >><br>
>> >> Hope it helps.<br>
>> >><br>
>> >> Cheers,<br>
>> >> Marcello.<br>
>> >><br>
>> >><br>
>> >><br>
>> ><br>
>> ><br>
>> > _______________________________________________<br>
>> > grass-user mailing list<br>
>> > <a href="mailto:grass-user@lists.osgeo.org">grass-user@lists.osgeo.org</a><br>
>> > <a href="http://lists.osgeo.org/mailman/listinfo/grass-user" target="_blank">http://lists.osgeo.org/mailman/listinfo/grass-user</a><br>
>> ><br>
><br>
><br>
</div></div></blockquote></div><br></div>