On 30/11/2019 16:11, Zoltan Szecsei wrote:
Hi,
I'm trying to write my first Grass python script to load Shape files and delete all lines shorter than 50m
I'm trying various permutations of the command below, but  no success (No error message and no lines deleted).
Any guidance would be welcome.

gscript.run_command('v.extract','r',input=gen,output=lin,  where="( $LENGTH > 50 )",overwrite=True)
gscript.run_command('v.out.ogr', 'sce2', input=lin, type='line', output=dir_rclout + rcl + '.shp', format='ESRI_Shapefile', output_type='line',overwrite=True)


The term $LENGTH looks wrong to me.

In python I usually would do something like:


In [1]: import grass.script as gscript

In [4]: where_expr = "%s > %d" % ("'length'", 5000)

In [5]: where_expr
Out[5]: "'length' > 5000"

In [6]: gscript.run_command('v.extract', input="roads", output="roads_long", where=where_expr)
Data element 'vector/roads' was found in more mapsets (also found in
<PERMANENT>)
Using <roads@Arava>...
Data element 'vector/roads' was found in more mapsets (also found in
<PERMANENT>)
Using <roads@Arava>...
Extracting features...
 100%
Building topology for vector map <roads_long@Arava>...
Registering primitives...
Writing attributes...
Out[6]: 0

Note the quoting around the column header "length": One double quote and one single quote. The inner single quote is for the SQL _expression_.


Cheers, Micha

Thanks and regards,
Zoltan
PS: Should these type of questions go to grass-dev ??

-- 
Micha Silver
Ben Gurion Univ.
Sde Boker, Remote Sensing Lab
cell: +972-523-665918
https://orcid.org/0000-0002-1128-1325

_______________________________________________
grass-user mailing list
[email protected]
https://lists.osgeo.org/mailman/listinfo/grass-user

Reply via email to