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

"Peter Löwe" peter.loewe at gmx.de
Thu Aug 7 11:20:53 EDT 2008


Hello Milton,

thanks for that beautiful R-hack !
Since I am working on a minimal "bread and butter" machine I went for Moritz' solution but it's a neat idea to use R for the task.

Eventually, GIS-hacking should become part of the Olympics and you all should try to get medals :-)

Cheers,
Peter


-------- Original-Nachricht --------
> Datum: Wed, 6 Aug 2008 13:40:35 -0300
> Von: "Milton Cezar Ribeiro" <miltinho.astronauta at gmail.com>
> An: "Moritz Lennert" <mlennert at club.worldonline.be>
> CC: peter.loewe at gmx.de, grass-user at lists.osgeo.org
> Betreff: Re: [GRASS-user] v.dissolve bugfeature / workaround needed

> Hi Peter,
> 
> Following Morit´z suggestion, how about you use R on this task?
> 
> 
> #The code below is to you read your dbf file
> #so remove the # and include your full path/file name
> #require(foreign)
> #my.dbf<-read.dbf("c:/temp/myfile.dbf") #
> 
> 
> #below we simulate a data.frame (it is a table)
> 
> my.dbf<-data.frame(cbind(var1=c("GRASS001","GRASS002","GRASS003")))
> my.dbf
> 
> #below you have a code to "deparse" your variable of interest
> 
> my.dbf$var2_char<-substr(my.dbf$var1,6,999)
> my.dbf
> 
> my.dbf$var2_int <-as.numeric(as.character(my.dbf$var2_char))
> my.dbf
> 
> 
> 
> Cheers,
> 
> 
> 
> miltinho
> 
> brazil
> 
> 
> 
> 
> 2008/8/6, Moritz Lennert <mlennert at club.worldonline.be>:
> >
> > 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
> > _______________________________________________
> > grass-user mailing list
> > grass-user at lists.osgeo.org
> > http://lists.osgeo.org/mailman/listinfo/grass-user
> >

-- 
Dr. Peter Löwe
<peter.loewe at gmx.de>





Psssst! Schon das coole Video vom GMX MultiMessenger gesehen?
Der Eine für Alle: http://www.gmx.net/de/go/messenger03


More information about the grass-user mailing list