[GRASS-user] Re: Connect two tables in vector data

Sebastian Schubert schubert.seb at googlemail.com
Tue Oct 11 04:26:53 EDT 2011


On Tuesday 11 October 2011 01:17:15 Richard Chirgwin wrote:
> On 11/10/11 4:02 PM, grass-user-request at lists.osgeo.org wrote:
> > Hi,
> > 
> > using 6.4.1, I imported a vector shape file which includes a
> > tables. This table got a "cat" column by grass (which I don't
> > need, I think) and already has a "key" column. In addition, I have
> > got another table which also has a "key" column. Using both "key"
> > columns, I want to combine both tables. How can I do that? I was
> > able connect, as a second layer, the additional table to the
> > vector data using the "key" column but then as far as I can see it
> > is not really connected to the first table.
> > 
> > I guess this is a standard procedure but I was not able to find the
> > solution.
> > 
> > Thanks
> > Sebastian
> 
> Sebastian -
> 
> I think you're asking to connect two tables to the same map?

Yes, I think so.

> The two tables need to refer to the same features, and you use
> v.db.connect
> 
> Note that you can specify a different name for the key column using
> the key= parameter.

I think, this is what I tried. Here is what I did:

I imported the map baubloecke.shp. It already includes data (which is 
then called table "baubloecke":

GRASS 6.4.1 (Soldner):~ > v.db.connect -p baubloecke
Vector map <baubloecke at Berlin> is connected by:
layer <1> table <baubloecke> in database 
</home/schubert/grassdata/Soldner/Berlin/dbf/> through driver <dbf> with 
key <cat>

Ok, it is connected with key "cat" which has been introduced by grass, I 
think. The table "baubloecke" includes the column I want, as well as the 
table "bbdb":

GRASS 6.4.1 (Soldner):~ > db.columns baubloecke
cat
ELEMNAME
KLASSENNAM
SCHLUESSEL
GRASS 6.4.1 (Soldner):~ > db.columns bbdb
SCHLUESSEL
BLOCKART
FLALLE
NUTZ
FISNUTZUNG
TYP
TYPKLAR
VG
STSTRTYP
STSTRNAME

I connected bbdb to the map:

GRASS 6.4.1 (Soldner):~ > v.db.connect -o map=baubloecke table=bbdb 
key=SCHLUESSEL layer=2
The table <bbdb> is now part of vector map <baubloecke> and may be 
deleted
or overwritten by GRASS modules
Select privileges were granted on the table
GRASS 6.4.1 (Soldner):~ > v.db.connect -p baubloecke
Vector map <baubloecke at Berlin> is connected by:
layer <1> table <baubloecke> in database 
</home/schubert/grassdata/Soldner/Berlin/dbf/> through driver <dbf> with 
key <cat>
layer <2> table <bbdb> in database 
</home/schubert/grassdata/Soldner/Berlin/dbf/> through driver <dbf> with 
key <SCHLUESSEL>

I tried to verify the connection using the wxpython gui. I opened the 
map there (tried both layer 1 and 2). Using the "Query raster/vector 
map(s)" tool, I was able to only get information from the layer 1 or the 
original table when clicking on a polygon.

Ok, maybe table 1 has to be connected also via the key "SCHLUESSEL" so I 
tried:

GRASS 6.4.1 (Soldner):~ > v.db.connect -o map=baubloecke 
table=baubloecke key=SCHLUESSEL layer=1
ERROR: Data type of key column must be integer
GRASS 6.4.1 (Soldner):~ > v.db.connect -o map=baubloecke 
table=baubloecke key=3 layer=1
ERROR: Missing column <3> in table <baubloecke>

I do not understand this... Apparently, grass does not accept the key 
SCHLUESSEL so I tried the number of the column (?) 3. No success, 
either.

What can I do?

Thanks,
Sebastian
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
Url : http://lists.osgeo.org/pipermail/grass-user/attachments/20111011/f38fa4d5/attachment.bin


More information about the grass-user mailing list