[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-dev
mailing list