[GRASS-user] grass vector model, cats and layers concept

Nikos Alexandris nik at nikosalexandris.net
Wed Jun 5 01:33:28 PDT 2013


[..]

Nikos A:

> >> > Also, there is a single reference on (how to create a new?) vector
> >> > attribute table layer(s) in the "Intro: "Using v.db.connect
> >> > connections between layers and attribute tables can be listed or
> >> > maintained.".


Markus N:

> >> ... I don't fully understand where to add what...

> > Maybe I was wrong -- perhaps it is better to add a clear instructive
> > example in the "v.db.connect" manual itself (where, also, nothing is
> > mentioned regarding new layers).

> >> > Maybe we can add in the manual of "v.db.connect" the word "layer" as a
> >> > Keyword
 
> >> Yes, done so:
> >> http://grass.osgeo.org/grass70/manuals/keywords.html
> >> Layer
> >>     v.category, v.db.connect

> >> > and an example on how to create/connect to a *new* (empty) layer?


Markus Metz wrote:

> A new layer is created by adding categories in the new layer to vector
> features. This has nothing to do with database connections. Therefore
> you can by definition not create an empty layer.

> In short,
> create a new layer with v.category connect an existing table to a vector
> layer with db.connect (the layer does not need to exist, a new layer will
> not be created) create a new table for an existing layer with v.db.addtable

Perfect, scratch all the rest then. Thank you Markus for clearing-up once 
again!

Still, I find it counter-intuitive that it's required to create a new vector 
map to achieve that.

--%<---
v.category in=wrs2_tiles_of_interest_testing at PERMANENT layer=2 option=add

ERROR: Output vector wasn't entered
--->%--

An ignorant like me will probably ask himself:  I need a new layer in this 
map.  Why do I need to create an extra map?  For the records, related posts in 

<http://lists.osgeo.org/pipermail/grass-user/2013-May/068131.html>


> >> Could you provide one for me to add it?

> > It works (also) for example by
..
> > # add new layer by... !
> > v.db.addtable wrs2_tiles_of_interest_testing layer=2

> This does not add a new layer, it adds only a new connection. The
> newly added table would be empty if there are no categories in the
> given vector layer.

O-K
 
> > The other way, using "v.db.connect" (in G7) gives me the WARNING(s):

[stuff deleted]

> v.db.connect connects an existing table. If the specified table does
> not exist, you get this warning, nothing wrong with that.

> > Though, it creates the layer=3:

[stuff deleted]

> No, v.db.connect does not create a new layer, only a new connection.
> You need to check with v.category if a layer exists. You can, however,
> connect a table to a nonexisting layer with v.db.connect.

Good.  But maybe we need to make it more clear why it is possible to create a 
(new) connection to something that does not exist yet?  The WARNINGS are 
correct. Still, connecting to something non-existing is rather confusing.

> This is all illustrated in the picture mentioned earlier in this thread [0].
> [0]
> http://grasswiki.osgeo.org/wiki/Vector_Database_Management#Grass_vector_man
> agement_model

Cheers, Nikos


More information about the grass-user mailing list