[GRASS-dev] grass7 addon python script - finishes in normal and --verbose mode, but not in --quiet mode
Moritz Lennert
mlennert at club.worldonline.be
Fri Nov 14 03:37:37 PST 2014
On 14/11/14 10:25, Helmut Kudrnovsky wrote:
> Anna Petrášová wrote
>>>
>>> but in --quiet mode it fails with:
>>>
>>> v.fixed.segmentpoints --quiet vector=iselflipped at myricaria cat=1
>>> dir=C:\tmp\grassscript distance=25000
>>> Traceback (most recent call last):
>>> File "C:\Users\myricaria\AppData\Roaming\GRASS7\addons/scr
>>> ipts/v.fixed.segmentpoints.py", line 226, in
>> <module>
>>> sys.exit(main())
>>> File "C:\Users\myricaria\AppData\Roaming\GRASS7\addons/scr
>>> ipts/v.fixed.segmentpoints.py", line 100, in main
>>> vector_line_length =
>>> float(tmp.split('\n')[1].split('|')[1])
>>> IndexError: list index out of range
>>> (Thu Nov 13 21:40:08 2014) Befehl ausgeführt (2 Sek)
>>>
>>> any idea?
>>>
>>
>> Could you try to print tmp with and without quiet?
>
> http://trac.osgeo.org/grass/browser/grass-addons/grass7/vector/v.fixed.segmentpoints/v.fixed.segmentpoints.py#L102
>
> 102 # Read length
> 103 tmp = grass.read_command('v.to.db', map = voutline,
> 104 type = 'line',
> 105 layer = 1,
> 106 qlayer = 1,
> 107 option = 'length',
> 108 units = 'meters',
> 109 column = 'vlength',
> 110 flags = 'p')
> 111 vector_line_length = float(tmp.split('\n')[1].split('|')[1])
> 112
> 113 # Print vector line length
> 114 grass.message( "Vector line length in meter:" )
> 115 grass.message( vector_line_length )
> 116 grass.message( "----" )
>
> it's just to get the length of the vector line for further calculations:
>
> in normal and verbose mode:
>
> ----
> Lese Objekte...
> Vector line length in meter:
> 58858.3366368
> ----
>
> as Moritz points out, it seems quiet mode suppresses the access to the
> output of grass.read_command; his solution/workaround with GRASS_VERBOSE env
> variable seems not to work here on my side.
>
I'm afraid that --quiet supersedes any settings in the code, but am not
sure.
Moritz
More information about the grass-dev
mailing list