[GRASS-user] v.in.ogr where-clause not working
Micha Silver
tsvibar at gmail.com
Sun Jan 22 12:39:52 PST 2023
Hi
On 22/01/2023 14:42, gisfisch at t-online.de wrote:
>
> Hello list,
>
> I have problems with v.in.ogr in a python script; I use:
>
> /grass.run_command('v.in.ogr',input='d:/my_input',output='my_output',type='boundary,centroid',where='LENGTH
> != 1',snap=0.01,min_area=0.01,flags="o",overwrite=True)/
>
> This has been working fine for years in GRASS 7.0.3 with Python 2.
>
> Now, I tried in GRASS 7.8 on Python 3 and I get the following error:
>
> ERROR 1: "LENGTH" not recognised as an available field.
>
> FEHLER: Error setting attribute filter 'LENGTH != 1'
>
> The field called LENGTH is present and there is no typing error. What
> I absolutely not understand is that the command is working fine inside
> GRASS itself! Just the Python script does not.
>
Can you try to create the where clause with double quotes before calling
grass.run_command? Like so:
expr = '"LENGTH != 1"'
grass.run_command('v.in.ogr', input='...', output='...', where=expr,
type='...', .....)
> „LENGTH“ is not a Python reserved keyword, and no SQL reserved
> keyword. I also tried it with another name for that column. That also
> did not work.
>
> Any ideas what could be wrong? Thank you very much.
>
> Uwe
>
>
> _______________________________________________
> grass-user mailing list
> grass-user at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/grass-user
--
Micha Silver
Ben Gurion Univ.
Sde Boker, Remote Sensing Lab
cell: +972-523-665918
More information about the grass-user
mailing list