[GRASS-user] v.dissolve bugfeature / workaround needed

Moritz Lennert mlennert at club.worldonline.be
Wed Aug 6 10:41:35 EDT 2008


On 06/08/08 15:09, peter.loewe at gmx.de wrote:
> Hello list,
> 
> i am using GRASS 6.4svn to merge adjacent poylgons into larger units.
> The merging is controlled by a column of type CHAR:
> 
> v.dissolve input=counties output=counties_merged_fips1 column=FIPS_1
> 
> 
> results in dbmi: Protocol error ERROR: Cannot open select cursor:
> SELECT cat, FIPS_1 FROM counties ORDER BY FIPS_1 ERROR: Unable to
> open vector map <counties_fips1_22157 at admin_borders> on topology
> level 2 WARNING: Table <counties_fips1_22157> linked to vector map 
> <counties_fips1_22157> does not exist ERROR: Vector map
> <counties_fips1> not found in the current mapset
> 
> v.dissolve works correctly when applied to an INT column.
> 
> I assume this is a bugfeature - 

v.dissolve is only a frontend script to v.reclass which needs ints...

> string-based dissolving would be
> great to have at some point.

+1

> 
> For now, does anybody have a (DBdriver-)SQL-hack to transmogrify
> strings like "GRASS001", "GRASS002", "GRASS003" into the Integers
> 1,2,3 ? (aka getting rid of the "GRASS"-part of the string) ?

If you absolutely need to work with the dbf-driver, then I guess you 
best bet would be to open the dbf file in OpenOffice Calc and use its 
functions.

If you can switch over to SQLite, I think the ltrim function should do 
what you need.

More full-fledged SQL-backends obviously have more sophisticated functions.

Moritz


More information about the grass-user mailing list