[GRASS-user] Problems with r.mapcalc

Hi, I’m a PhD student in Italy and I am a new user of GRASS.
I have a problem in a weighted average with r.mapcalc.
There are 3 raster map (areas of species), with different extent but the same resolution, area has value 1, outside is null *.
I would like to sum these areas with different weights (10, 9 and 4), then divide for the sum of weights (23), generating a float, and I have used this formula:

(10.*if(isnull(Fraxinus_excelsior_raster@Phalaen), 0, 1)+9.*if(isnull(Fraxinus_angustifolia_raster@Phalaen), 0, 1) +4.*if(isnull(Fraxinus_ornus_raster@Phalaen), 0, 1))/23.

The resulting map have only 4 rectangles but it considers the sum of all the map (null values comprised).

How could I resolve the problem?
Thanks a lot!!!

Elisa

(attachments)

Area 1.jpg
Area 2.jpg
Area 3.jpg
Result map.jpg

Instead of the “isnull()” functions, just set null to ‘0’ with r.null for each raster before your mapcalc expression: i.e. r.null Fraxinus_excelsior_raster null=0 same for each of the other Fraxious* … then, be sure you have set the region correctly: g.region rast=g.mlist type=rast pattern="Frax*" separator=, and finally r.mapcalc “weighted = (Fraxinus_excelsior_raster * 10.0 + …+ …)/23.0”

···

On 07/16/2013 04:28 PM, Elisa Dal Maso wrote:

Hi, I’m a PhD student in Italy and I am a new user of GRASS.
I have a problem in a weighted average with r.mapcalc.
There are 3 raster map (areas of species), with different extent but the same resolution, area has value 1, outside is null *.
I would like to sum these areas with different weights (10, 9 and 4), then divide for the sum of weights (23), generating a float, and I have used this formula:

(10.*if(isnull(Fraxinus_excelsior_raster@Phalaen), 0, 1)+9.*if(isnull(Fraxinus_angustifolia_raster@Phalaen), 0, 1) +4.*if(isnull(Fraxinus_ornus_raster@Phalaen), 0, 1))/23.

The resulting map have only 4 rectangles but it considers the sum of all the map (null values comprised).

How could I resolve the problem?
Thanks a lot!!!

Elisa

This mail was received via Mail-SeCure System.

_______________________________________________
grass-user mailing list
[grass-user@lists.osgeo.org](mailto:grass-user@lists.osgeo.org)
[http://lists.osgeo.org/mailman/listinfo/grass-user](http://lists.osgeo.org/mailman/listinfo/grass-user)

This mail was received via Mail-SeCure System.