[GRASS-user] [GRASS-dev] OGR SQLite question

Moritz Lennert mlennert at club.worldonline.be
Fri Aug 4 03:33:12 PDT 2017


On 04/08/17 11:56, Markus Neteler wrote:
> On Fri, Aug 4, 2017 at 11:51 AM, Moritz Lennert
> <mlennert at club.worldonline.be> wrote:
>> On 29/07/17 17:59, Michael Barton wrote:
>>>
>>> The db.out.ogr manual states for the input argument:
>>>
>>> input=name [required]
>>> GRASS table name
>>> Or data source for direct OGR access
>>>
>>> How do you specify the name of a table in the GRASS sqlite.db that is not
>>> linked to vector objects?
>>
>>
>> Probably the manual could do with an update to reflect the fact that it only
>> works for existing maps. Maybe the input parameter should be renamed to
>> 'map' ?
> 
> IMHO no - it refers to a *table*, not a map (the db.* commands have
> generally no idea about maps but only about tables).

But internally, it uses v.out.ogr with input=input, and input in 
v.out.ogr is defined as

options->input = G_define_standard_option(G_OPT_V_INPUT);

So it is a map. This is why you get:

g.copy vect=schools_wake,schools
v.distance -a from=schools to=schools table=distances_between_schools 
up=cat,dist col=tocat,dist output=lines
db.out.ogr distances_between_schools output=distances_between_schools.csv
ERROR: Vector map <distances_between_schools> not found
ERROR: Module <v.out.ogr> failed

If we want to make db.out.ogr into a module to export any table to any 
ogr compatible formats, we would probably have to use ogr2ogr within the 
script (or the gdal python API).

I don't know how often people really need to transform tables into 
something else than csv files. Personally, I find db.select more than 
enough to move data from one database to another:

db.select table=distances_between_schools sep=, 
out=distances_between_schools.csv

(or with the sql parameter if you want to select specific columns only).

Moritz



More information about the grass-user mailing list