[GRASS-user] Σχετ: Using a variable inside GRASS commands with Python code/ grass.mapcalc

Leonidas Liakos leonidas_liakos at yahoo.gr
Tue Jan 8 07:49:11 PST 2013


Do you need cumulative viewshed analysis?
Maybe r.cva is for you:
http://www.ucl.ac.uk/~tcrnmar/GIS/r.cva.html


________________________________
 Απο: Brian Sanjeewa Rupasinghe <jinkabs at gmail.com>
Προς: Anna Kratochvílová <kratochanna at gmail.com>; 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 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> wrote:

Hi Brian,
>
>
>On Tue, Jan 8, 2013 at 6:51 AM, Brian Sanjeewa Rupasinghe
><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
>> 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/20130108/ff1d4505/attachment.html>


More information about the grass-user mailing list