-------- Original-Nachricht -------- > Datum: Thu, 14 Apr 2011 14:31:32 +0200 > Von: Martin Album Ytre-Eide <[email protected]> > An: \'Moritz Lennert\' <[email protected]> > CC: "[email protected]" <[email protected]> > Betreff: SV: [GRASS-user] Raster addition
> I would like the NULL values that overlap with none NULL values to be > treated as 0, and still have NULL values where both maps have NULL values. The > combined map would be a large map with NULL values and added values. that is possible with the r.mapcalc and a if condition like: if(map A &&& map B, 0, null()) something like that (untested) might work. the null () provides NULL values where the condition is false. The triple &&& is the logic and (treats NULL values different from double &&). see: http://grass.fbk.eu/gdp/html_grass64/r.mapcalc.html for more information. /j > > Maybe the best way is to use r.null and set NULL values to 0. Add the maps > and then convert the 0 values to NULL values? > Or could one set the value in the if statement to be a the sum of maps > somehow? I guess my biggest problem is summing with NULL values - maybe there > is a way to treat NULL values as 0? I'll have a look at the man page > > Thanks, > > Martin > > -----Opprinnelig melding----- > Fra: Moritz Lennert [mailto:[email protected]] > Sendt: 14. april 2011 14:15 > Til: Martin Album Ytre-Eide > Kopi: [email protected] > Emne: Re: [GRASS-user] Raster addition > > On 14/04/11 13:54, Martin Album Ytre-Eide wrote: > > Hello. > > > > I am trying to add some raster maps. I thought I could do this in > > r.mapcalc, but "new_map= old_1 + old_2" seems to produce a map where > > the maps overlap and ignoring areas where only on of the maps have > > values. > > This is due to the way r.mapcalc handles NULL values. See the man page, > section NULL support for an explanation. > > > I would like to do something similar to "v.overlay operator=or". > > > > Anyone who knows how to do this? > > It depends on what you want the new map to contain as values. If you want > to add the value of old_1 to old_2 in places where they overlap, one way > would be to transform your null values to 0 using r.null null= and then > applying your formula. > > If you just want a (any) value where one of the maps is non-null, then you > can use if. Something like this (untested): > > new_map = if(!isnull(old_1) || !isnull(old_2), 1, null()) > > which should give you 1 where any of the two contains a value and a NULL > value elsewhere. > > Moritz > _______________________________________________ > grass-user mailing list > [email protected] > http://lists.osgeo.org/mailman/listinfo/grass-user -- GMX DSL Doppel-Flat ab 19,99 Euro/mtl.! Jetzt mit gratis Handy-Flat! http://portal.gmx.net/de/go/dsl _______________________________________________ grass-user mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/grass-user
