[GRASS-user] Problems creating new map with r.mapcalc

Lars Forseth lars.forseth at bluezone.no
Sun Sep 21 10:41:23 EDT 2008


Argh!
The NULL's were biting me ;-)

Did this; R_VannB at larsf = if(isnull(R_VannA at larsf), 0, 1)

And lo and behold this did work; R_test14 = if(R_VannB at larsf, 7, 
R_paramNew at larsf)

And produced the wanted map!

But could someone enlighten me as to what exactly is the reason why this 
worked?

regards
larsf

Søndag 21. september 2008 skreiv Lars Forseth:
> Hi!
> I wonder if anyone could explain to me how to create a new map (raster)
> from two pre-existing maps, in mapcalc. Because I have problems with
> understanding how to do this in r.mapcalc
>
> I have two raster datasets that I would like to combine like so; if the
> cell is in map a, assign the value 7; if it is in map B, assign the correct
> value from B, (i.e keep the value the cell already have in B).
>
> I have tried to read "Performing Map Calculations on GRASS Data: r.mapcalc
> Program Tutorial", by Marji Larson, Michael Shapiro and Scott Tweddale,
> U.S. Army Construction Engineering Research Laboratory (December 1991) ,
> and they give this example:
>
> MAPCALC> aspect.str = if(streams,26,aspect)
>
> This should then give a new map that contains the values from "aspect", but
> with the value 26 assigned to cells with "streams".
>
> Example from my experiments:
> R_test9 = if(R_VannA at larsf == 1,7, R_paramNew at larsf )
>
> This makes a new map; but it contains only 7, were there was data in
> R_vannA, and else, NULL (I guess), see otput below of r.info.
>
> I also tried "R_test9 = if(if(R_VannA at larsf == 1),7, R_paramNew at larsf ) ;
> and this gives the same (non) result. And "R_test10 = if(R_VannA at larsf, 7,
> R_paramNew at larsf)"; also the same as; I.E not what I wanted. The problem is
> that it never assigns a value from R_paramNew at larsf!!!
>
> What am I missing? Or doing wrong?
>
> Regards
> Larsf
>
>
> Running; SUSE 10.3, grass63 dated 12.09 from
> http://download.opensuse.org/repositories/Application:/Geo/openSUSE_10.3/i5
>86/
>
>
> ---------------------------------------------r.info output (example)
>
> > (3) r.info map=R_test9 at larsf
> >
> > +------------------------------------------------------------------------
> >-- --+
> >
> >  | Layer:    R_test9 at larsf                  Date: Sun Sep 21 15:28:36
> >  | 2008
> >  |
> >  |   | Mapset:   larsf                          Login of Creator: larsf
> >  |   |
> >  |       | Location: Frosta
> >  |       |
> >  |           | DataBase: /home/larsf/grassgis
> >  |           |
> >  |               | Title:     ( R_test9 )
> >  |               |
> >  |                   | Timestamp: none
> >  |
> >  | ----------------------------------------------------------------------
> >  |-- ----|
> >  |
> >  |   Type of Map:  raster               Number of Categories: 7
> >  |
> >  |   | Data Type:    CELL
> >  |   |
> >  |     | Rows:         3360
> >  |     |
> >  |       | Columns:      3720
> >  |       |
> >  |         | Total Cells:  12499200
> >  |         |
> >  |           | Projection: UTM (zone 32)
> >  |        |
> >  |        | N:    7062800    S:    7046000   Res:     5
> >  | |
> >  | | E:     596600    W:     578000   Res:     5                     |
> >  |
> >  | Range of data:    min = 7  max = 7
> >  |
> >  |   Data Description:
> >  |   | generated by r.mapcalc
> >  |
> >  |   Comments:
> >  |   | if(R_VannA at larsf == 1, 7, R_paramNew at larsf)
> >
> > +------------------------------------------------------------------------
> >-- --+
>
> _______________________________________________
> grass-user mailing list
> grass-user at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/grass-user




More information about the grass-user mailing list