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

Moritz Lennert mlennert at club.worldonline.be
Fri Dec 1 23:53:52 PST 2017


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
> https://lists.osgeo.org/mailman/listinfo/grass-user
> 



More information about the grass-user mailing list