[GRASS-user] v.dissolve renames the attribute column

Moritz Lennert mlennert at club.worldonline.be
Tue May 29 03:19:33 PDT 2012


On 28/05/12 12:30, Markus Metz wrote:
> On Mon, May 28, 2012 at 11:52 AM, spiderplant0<spiderplant0 at gmail.com>  wrote:
>> Hi. It doesn't add any new information but I wanted the .dbf file to be there
>> so I can open it up with other tools and check the contents for debug
>> purposes etc. And I wanted to change the column to the correct name for
>> consistency with downstream processing scripts.
>
> Try
> v.dissolve input=pass2 at mapset1 layer=1 column=fttcp output=pass3
> v.db.addtable map=pass3
> v.db.renamecol map=pass3 column=cat,fftcp

IIUC, if you do that you will lose the connection between the map and 
the attribute table if that connection is defined with the cat column as 
the key column.

If you want to keep the connection, but use the name fftcp instead of 
cat for the key column, you will have to do something like this:

v.dissolve input=pass2 at mapset1 layer=1 column=fttcp output=pass3
v.db.addtable map=pass3
v.db.addcolumn map=pass3 col="fftcp int"
v.db.update map=pass3 col=fftcp qcolumn=cat
v.db.connect -o map=pass3 table=pass3 key=fftcp
v.db.dropcolumn map=pass3 col=cat


>
> If you want that to be done by v.dissolve, that is, v.reclass,
> automatically, you could file an enhancement ticket for v.reclass to
> add a new flag, say -t, to always create a table for the output where
> the original column name is used when the column type is integer.

Maybe adding the option to v.db.addtable to use another name for the key 
column would also be good idea.

Moritz


More information about the grass-user mailing list