[GRASS-user] else if in GRASS GIS

mega saputra megasaputra8 at gmail.com
Fri Jan 1 14:37:02 PST 2021


It succeed with no error. I add a little syntax :

r.mapcalc --overwrite expression=awan = if( "rgb.1 at PERMANENT" > 1810.877778
 &&  "rgb.1 at PERMANENT" < 23442.122222  &&  "rgb.3 at PERMANENT" > 673.148594
 &&  "rgb.3 at PERMANENT" < 22729.389558 , 0, if("rgb.1 at PERMANENT" == 0, 255,
100))

Thank you

On Fri, Jan 1, 2021 at 9:32 PM Micha Silver <tsvibar at gmail.com> wrote:

>
> On 1/1/21 3:25 PM, mega saputra wrote:
>
> Hello guys,
>
> I try to create conditional statement. When I running the formula in
> GRASS, there is error. Can someone help me to convert in GRASS formula
> format. The formula is something like :
>
> if ( rgb.1 > 1810.877778) and ( rgb.1 < 23442.122222 ) and (rgb.2 >
> 673.148594) and (rgb.2 < 22729.389558) then 0 else if rgb.1 = 0 then 255
> else 100
>
> I have try, but with error. My false formula :
> r.mapcalc --overwrite expression=awan = if ( rgb.1 > 1810.877778  &  rgb.1
> < 23442.122222  &  rgb.2 > 673.148594  &  rgb.2 < 22729.389558 , 0) else if
> ( rgb.1 = 0, 255, 100)
>
>
> There is no "else" in mapcalc. You put the else expression after the
> second comma.
>
> Should be:
>
> r.mapcalc --o "awan = if(rgb.1 > 1810.877778  &&  rgb.1 < 23442.122222
> &&  rgb.2 > 673.148594  &  rgb.2 < 22729.389558 , 0, if(rgb.1 = 0, 255,
> 100))
>
>
> syntax error, unexpected NAME, expecting $end
> Parse error
> ERROR: parse error
>
> Any suggestion?
>
> Regards,
> mega
>
> _______________________________________________
> grass-user mailing listgrass-user at lists.osgeo.orghttps://lists.osgeo.org/mailman/listinfo/grass-user
>
> --
> Micha Silver
> Ben Gurion Univ.
> Sde Boker, Remote Sensing Lab
> cell: +972-523-665918
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/grass-user/attachments/20210102/28e0424b/attachment.html>


More information about the grass-user mailing list