[GRASS-user] Copy and concatenate a vector attribute between layers

Moritz Lennert mlennert at club.worldonline.be
Wed Dec 6 10:27:31 PST 2017



Am 6. Dezember 2017 18:42:22 MEZ schrieb Peter Tittmann <ptittmann at gmail.com>:
>Thank you, Moritz.
>
>I'm pretty familiar with SQL but can’t figure out how layer 2 is stored
>in the database. When I `pragma table_info(<vector>)` I only see the
>layer 1 attributes.

v.db.connect -p (or grass.script.vector_db() )will show you all connections between the map and database tables.


Moritz
>
>I’ll work with the GRASS approach you suggested.
>
>Best,
>Peter
>
>
>> On Dec 1, 2017, at 11:53 PM, Moritz Lennert
><mlennert at club.worldonline.be> wrote:
>> 
>> On 02/12/17 02:03, Peter Tittmann wrote:
>>> Hi,
>>> I have a vector (`POINT`) which has two layers containing relevant
>attributes (’strata’ and ’stand’). I would like to concatenate the two
>values into a new attribute for Layer 1 (’<STRATA>_<STAND>’). I’ve been
>struggling to sort this out for too long and am tapping out. Its
>probably blatantly obvious but it has escaped me.
>> 
>> 
>> Probably the easiest way if your not very familiar with SQL:
>> 
>> - Create a new column in layer 1 where you can put the info from
>layer 2
>> - Fill this column with v.to.db option=query query_layer=2, etc
>> - Create a second new column to hold the concatenation
>> - v.db.update to update this new column with the concatenation of the
>two others (something like qcol = "STRATA || '_' || STAND")
>> 
>> Otherwise, if there is a common key in both tables, you can just
>create a new column and use db.execute to launch a UPDATE TABLE
>directly, grabbing the info from the two table and concatenating it
>directly in the query.
>> 
>> Moritz
>> 
>> 
>>> Thank you!
>>> Here are some specifics.
>>> east, north: 651849.842735, 6604949.78485
>>> c34_patch at project_area:
>>>   Type: Point
>>>   Id: 21622
>>>   Layer: 1
>>>   Category: 21623
>>>   Driver: sqlite
>>>   Database:
>/Users/pete/grassdata/PortGraham/project_area/sqlite/sqlite.db
>>>   Table: c34_patch
>>>   Key_column: cat
>>>   Attributes:
>>>     cat: 21623
>>> *strata: 3  — STRATA*
>>> c34_patch at project_area:
>>>   Type: Point
>>>   Id: 21622
>>>   Layer: 2
>>> *Category: 10  — STAND*
>>> _______________________________________________
>>> grass-user mailing list
>>> grass-user at lists.osgeo.org <mailto:grass-user at lists.osgeo.org>
>>> https://lists.osgeo.org/mailman/listinfo/grass-user
><https://lists.osgeo.org/mailman/listinfo/grass-user>


More information about the grass-user mailing list