On 03/12/15 14:19, Johannes Radinger wrote:
Hi Moritz,
The two-step v.category approach (del + add) and an additional v.to.db()
was the
right way. Now I have the problem that there are 3 categories reported for
one single line that got split into to (1 old cat + 2 new cats). The old
category is still
associated with attributes but the two new rows are empty. How can
I get an attribute table that contains only rows for the new cats with
the attribute information
of the old category?
[...]
# Remove existing cats
v.category --overwrite input=test_net type=line cat=-1
output=test_net_nocat option=del
[...]
# Add new cats
v.category --overwrite input=test_net_nocat type=line
output=test_net_newcat option=add
v.to.db map=test_net_newcat type=line option=cat columns=cat
#############
Instead of removing the existing cats, add new cats in a new layer and
transfer the info into that layer's attribute table:
v.category --overwrite input=test_net type=line output=test_net_newcat
option=add layer=3
v.db.addtable test_new_newcat layer=3
v.db.addcolumn test_net_newcat lay=3 col="col1 int, old_cat int"
v.to.db test_net_newcat layer=3 op=query col=col1 query_layer=1
query_colum=col1
v.to.db test_net_newcat layer=3 op=query col=old_cat query_layer=1
query_colum=cat
Just make sure to set arc_layer=3 in the network analysis modules.
If you really want to have arcs in layer 1, you can use v.category
op=transfer, but you will also have to change table connections of the
layers with v.db.connect.
Moritz
_______________________________________________
grass-user mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/grass-user