[GRASS-user] Using a variable inside GRASS commands with Python code/ grass.mapcalc

Paulo van Breugel p.vanbreugel at gmail.com
Wed Jan 9 01:30:07 PST 2013


@Sotiris: I am not sure on Windows, but on Linux, using g.mlist in r.series
as described in the help page works fine. Just be careful to use the
different quotation marks as indicated. That is, the whole g.mlist
statement should be within ` quotation marks, and that should be within in
double quotation marks. E.g., r.series input="`g.mlist pattern=tmin* sep=,`"


On Tue, Jan 8, 2013 at 6:19 PM, S. Koukoulas (lists) <
sotkouklistes at gmail.com> wrote:

> Well, not a python solution, but you might find it useful.
> In Windows you could try the shell (command prompt) there as well:
>
> First get a list of your observers in a file, say obspoints.txt
>
> v.out.ascii input=myobs at user output=c:\obspoints.txt fs=, dp=2
>
> then run the shell's FOR command (run a help for more on the syntax)
> ALL must run in ONE LINE (and you must be running Grass in from the
> command prompt should be somewhere in the menu):
>
> FOR /F "tokens=1,2,3 delims=, " %i in (obspoints.txt) do r.los
> --overwrite input=mydtm at user output=obs%k coordinate=%i,%j
> (here tokens are the columns, X,Y,ID - and replace r.los with the newer
> r.viewshed)
>
> Then use g.mlist to make a list of your files
> g.mlist pattern=’obs*’ mapset=user sep=,
>
> and use the output of the list with r.series (method=sum) to get what
> you want.
>
> r.series --overwrite input=amap,bmap,... output=outshed method=sum
>
> (in r.series manual page, it is suggested that you could use g.mlist
> inside r.series but I have not managed to do it correctly -maybe someone
> can explain better the use of quotes?)
>
> HTH
> sotiris
>
> On 01/08/2013 06:53 PM, Brian Sanjeewa Rupasinghe wrote:
> > Hi,
> >
> > Thanks again. Since i use GRASS 7.0, it will not work there. I do not
> > think it can either be installed in GRASS for Windows through Add-on
> > extensions. What about using grass.mapcalc to integrate each viewshed
> > if there is a method of handling variables in it? If not how about
> > using r.series with sum? Your advice is appreciated since i am
> > pretty new to GRASS.
> >
> > On Tue, Jan 8, 2013 at 9:19 PM, Leonidas Liakos
> > <leonidas_liakos at yahoo.gr <mailto:leonidas_liakos at yahoo.gr>> wrote:
> >
> >     Do you need cumulative viewshed analysis?
> >     Maybe r.cva is for you:
> >     http://www.ucl.ac.uk/~tcrnmar/GIS/r.cva.html
> >     <http://www.ucl.ac.uk/%7Etcrnmar/GIS/r.cva.html>
> >
> >
> ------------------------------------------------------------------------
> >     *Απο:* Brian Sanjeewa Rupasinghe <jinkabs at gmail.com
> >     <mailto:jinkabs at gmail.com>>
> >     *Προς:* Anna Kratochvílová <kratochanna at gmail.com
> >     <mailto:kratochanna at gmail.com>>; grass-user at lists.osgeo.org
> >     <mailto:grass-user at lists.osgeo.org>
> >     *Στάλθηκε:* 2:45 μ.μ. Τρίτη, 8 Ιανουαρίου 2013
> >     *Θέμα:* Re: [GRASS-user] Using a variable inside GRASS commands
> >     with Python code/ grass.mapcalc
> >
> >     Hi,
> >
> >     Many thanks. It worked for me. Then i have a similar problem in
> >     GRASS.mapcalc. What i need next is to add viewshed of each
> >     observer location cumulatively while looping through the observer
> >     locations in order to have final integrated viewshed analysis map.
> >     So i used the following command in Python (some code ommitted)
> >
> >     for i in:
> >     grass.run_command('r.viewshed', input = rinput, output =
> >     'viewshed', coordinate = [x,y], obs_elev = oelv, tgt_elev = th,
> >     memory = 4098, flags = 'b', overwrite = True, quiet = True)
> >
> >     grass.mapcalc("viewshed_cum = viewshed + viewshed_cum", overwrite
> >     = True, quiet = True)
> >
> >     It seems that expressions like sum = c + sum does not work inside
> >     grass.mapcalc.Is <http://grass.mapcalc.is/> there any alternative
> >     or other way around to get this done? I am using GRASS 7 in Windows
> 7.
> >
> >     Cheers, Brian
> >
> >     On Tue, Jan 8, 2013 at 1:25 PM, Anna Kratochvílová
> >     <kratochanna at gmail.com <mailto:kratochanna at gmail.com>> wrote:
> >
> >         Hi Brian,
> >
> >         On Tue, Jan 8, 2013 at 6:51 AM, Brian Sanjeewa Rupasinghe
> >         <jinkabs at gmail.com <mailto:jinkabs at gmail.com>> wrote:
> >         > Hi all
> >         >
> >         > I am generating viewshed of each observer location by
> >         iterating through a
> >         > set of observer coordinate file through
> >         > Python code in Windows 7 . Below is the python command used
> >         in grass for
> >         > each iteration. According to this, each time
> >         > loop iterates, output is overwritten with the same name. Now
> >         what i need is
> >         > to keep each output of all the observer locations. For this,
> >         i need to
> >         > concatanate output name (i.e. 'viewshed' with loop index i
> >         which will be
> >         > 'viewshed' + str(i) ). How is that possible within
> >         > this grass.run_command?
> >         >
> >
> >         just set a variable within each loop and use it in the
> >         run_command:
> >         for i in ... :
> >         out = 'viewshed' + str(i)
> >         grass.run_command('r.viewshed', input = rinput, output = out,
> ...)
> >
> >
> >         Regards,
> >         Anna
> >
> >         > grass.run_command('r.viewshed', input = rinput, output =
> >         'viewshed',
> >         > coordinate = [x,y], obs_elev = oelv, tgt_elev = th, memory =
> >         4098, flags =
> >         > 'b', overwrite = True, quiet = True)
> >         >
> >         > Cheers, Brian
> >         >
> >         > _______________________________________________
> >         > grass-user mailing list
> >         > grass-user at lists.osgeo.org <mailto:grass-user at lists.osgeo.org>
> >         > http://lists.osgeo.org/mailman/listinfo/grass-user
> >         >
> >
> >
> >
> >     _______________________________________________
> >     grass-user mailing list
> >     grass-user at lists.osgeo.org <mailto:grass-user at lists.osgeo.org>
> >     http://lists.osgeo.org/mailman/listinfo/grass-user
> >
> >
> >
> >
> >
> > _______________________________________________
> > grass-user mailing list
> > grass-user at lists.osgeo.org
> > http://lists.osgeo.org/mailman/listinfo/grass-user
>
> _______________________________________________
> grass-user mailing list
> grass-user at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/grass-user
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/grass-user/attachments/20130109/d4b0d531/attachment.html>


More information about the grass-user mailing list