[GRASS-user] command works inside GRASS but not with python script outside GRASS

Group,

The following command works using GRASS command session:

v.extract input=const output=const_clean type=area where=“(value=255) and (area_sqf>1000)”
Extracting features…
Building topology for vector map const_cl@PERMANENT
Registering primitives…
7091 primitives registered
54239 vertices registered
Building areas…
2484 areas built
1143 isles built
Attaching islands…
Attaching centroids…
Number of nodes: 5334
Number of primitives: 7091
Number of points: 0
Number of lines: 0
Number of boundaries: 6675
Number of centroids: 416
Number of areas: 2484
Number of isles: 1143
Writing attributes…

But does not work in grass/python script:
grass.run_command(‘v.extract’, input=‘const’, output=‘const_clean’, type=‘area’,where=‘“(value=255) and (area_sqf>1000)”’ )


Extracting features…
100%
Building topology for vector map const_clean@PERMANENT
Registering primitives…
0 primitives registered
0 vertices registered
Building areas…
100%
0 areas built
0 isles built
Attaching islands…
Attaching centroids…
Number of nodes: 0
Number of primitives: 0
Number of points: 0
Number of lines: 0
Number of boundaries: 0
Number of centroids: 0
Number of areas: 0
Number of isles: 0

The GRASS script contains the following imports
#!/usr/bin/env python
import os
import sys
import subprocess
import shutil
import binascii
import tempfile
import shutil

import grass.script as grass
import grass.script.setup as gsetup

Your help is appreciated.

Alassane

Hi,

2016-07-03 3:02 GMT+02:00 alassane toure <atourej@gmail.com>:

But does not work in grass/python script:
grass.run_command('v.extract', input='const', output='const_clean',
type='area',where='"(value=255) and (area_sqf>1000)"' )

why

'"(value=255) and (area_sqf>1000)"'

?

'(value=255) and (area_sqf>1000)'

or

"(value=255) and (area_sqf>1000)"

would be enough. Martin

--
Martin Landa
http://geo.fsv.cvut.cz/gwiki/Landa
http://gismentors.cz/mentors/landa

Thanks Martin. Your suggestion worked!
Alassane

On Jul 3, 2016 1:51 AM, “Martin Landa” <landa.martin@gmail.com> wrote:

Hi,

2016-07-03 3:02 GMT+02:00 alassane toure <atourej@gmail.com>:

But does not work in grass/python script:
grass.run_command(‘v.extract’, input=‘const’, output=‘const_clean’,
type=‘area’,where=‘“(value=255) and (area_sqf>1000)”’ )

why

‘“(value=255) and (area_sqf>1000)”’

?

‘(value=255) and (area_sqf>1000)’

or

“(value=255) and (area_sqf>1000)”

would be enough. Martin


Martin Landa
http://geo.fsv.cvut.cz/gwiki/Landa
http://gismentors.cz/mentors/landa