[GRASS-user] r.forestfrag AddOn

Stefan Sylla stefansylla at gmx.de
Thu Mar 8 01:21:00 EST 2012


Hi Maning,

> In the script there is an option to slect a windows size:
>
> #%option
> #% key: window
> #% type: integer
> #% description: window size default is 5
> #% answer : 5
> #% required : yes
> #%END
>
> You can modify the r.neighbors section like this:
>
> r.neighbors input=A output=C method=sum size=$GIS_OPT_window --o
> r.neighbors input=B output=D method=sum size= $GIS_OPT_window --o

ok, so with that I have control on the window size from r.neighbours.  
That's already something. This applies well for the calculation of pf.

However, for the calculation of pff I cannot use r.neighbours, because  
it does not provide for counting pixel-pairs or other more complex  
functions for neighbourhood relations. I had to put that into a  
separate r.mapcalc expression, here e.g. to calculate the number of  
'forest-forest' pairs in a 3x3 window:

x--x--x
|  |  |
x--0--x
|  |  |
x--x--x

r.mapcalc
"F=(	(A[ 1,-1]*A[ 1, 0])+(A[ 1, 0]*A[ 1, 1])+ # upper row horizontal pairs
	(A[ 0,-1]*A[ 0, 0])+(A[ 0, 0]*A[ 0, 1])+ # midrow horizontal pairs
	(A[-1,-1]*A[-1, 0])+(A[-1, 0]*A[-1, 1])+ # lower row horizontal pairs
	(A[ 1,-1]*A[ 0,-1])+(A[ 0,-1]*A[-1,-1])+ # left column vertical pairs
	(A[ 1, 0]*A[ 0, 0])+(A[ 0, 0]*A[-1, 0])+ # mid column vertical pairs
	(A[ 1, 1]*A[ 0, 1])+(A[ 0, 1]*A[-1, 1]))" # right column vertical pairs

Now I need to find out how the window size could be fitted according  
to an input value (e.g. 3 for 3x3, 9 for 9x9 etc.) for this r.mapcalc  
expression.

Only alternative is that the user adjusts the window size manually by  
adding the respective cell-pairs to the r.mapcalc expression.

E.g. for a 5x5 moving window this would look like:

x--x--x--x--x
|  |  |  |  |
x--x--x--x--x
|  |  |  |  |
x--x--0--x--x
|  |  |  |  |
x--x--x--x--x
|  |  |  |  |
x--x--x--x--x


r.mapcalc
"F=(	(A[ 2,-2]*A[ 2,-1])+(A[ 2,-1]*A[ 2, 0])+(A[ 2, 0]*A[ 2, 1])+(A[  
2, 1]*A[ 2, 2])+ # upper row horizontal pairs
...
(A[ 2,-2]*A[ 1,-2])+(A[ 1,-2]*A[ 0, -2])+(A[  
0,-2]*A[-1,-2])+(A[-1,-2]*A[ -2,-2])+ # left column vertical pairs
...

Any ideas how to generate a general description for window-sizes with  
this r.mapcalc expression?

Stefan


Quoting maning sambale <emmanuel.sambale at gmail.com>:

> Dear Stefan,
>
> If i remember it right, the window size is an input to the   
> r.neighbors command.
> In the script there is an option to slect a windows size:
>
> #%option
> #% key: window
> #% type: integer
> #% description: window size default is 5
> #% answer : 5
> #% required : yes
> #%END
>
> You can modify the r.neighbors section like this:
>
> r.neighbors input=A output=C method=sum size=$GIS_OPT_window --o
> r.neighbors input=B output=D method=sum size= $GIS_OPT_window --o
>
> On Sun, Feb 26, 2012 at 5:51 PM, Stefan Sylla <stefansylla at gmx.de> wrote:
>> By now, the script can only calculate the forest fraction for a 3x3 window.
>> Any ideas on how to automatically generate different window-sizes would be
>> welcome.
>
>
>
> --
> cheers,
> maning
> ------------------------------------------------------
> "Freedom is still the most radical idea of all" -N.Branden
> wiki: http://esambale.wikispaces.com/
> blog: http://epsg4253.wordpress.com/
> ------------------------------------------------------
>




--
View this message in context: http://osgeo-org.1560.n6.nabble.com/Re-GRASS-user-r-forestfrag-AddOn-tp4557482p4557482.html
Sent from the Grass - Users mailing list archive at Nabble.com.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/grass-user/attachments/20120307/2c0257da/attachment.html


More information about the grass-user mailing list