On Mon, 8 Feb 2016, Roger Bivand wrote:

On Mon, 8 Feb 2016, Josh O'Brien wrote:

 Oops. The post's title should have read "rgeos::gBuffer( , byid=TRUE)
 fails when...". (I inadvertently left out the `byid=TRUE` bit).

 My apologies.

 On Mon, Feb 8, 2016 at 9:59 AM, Josh O'Brien <joshmobr...@gmail.com>
 wrote:
>  Hello,
> > Not sure if this would be considered a bug, but it did recently bite
>  me (and might bite others using gBuffer(..., byid=TRUE)
>  programatically).
>

Thanks for a reproducible example - for rgeos 0.3-14 this gives a segfault, in 0.3-16 an error as the data.frame has only one row, but three Polygons objects are returned. As you note, the issue is triggered by byid=TRUE but there is only one input object; only one buffer is created, around the NE island.

I'll look into this - it'll need debugging in C, close to recent bug-fixes (then concerned with pre-sp-MultiPoint object signalling - multiple objects making up features).

I have committed a fix to R-Forge (checking whether the length of spgeom == 1 and byid == TRUE, if so set byid=FALSE and warn). The problem was visible in the C code, but there we don't have an sp-class generic "length" measure of the # features, so the modification is at the R level.

Which OS would you like to test under?

Best wishes,

Roger


And yes, this is a reasonable place to report, it should give users a realistic view of how many corner cases actually exist and require someone's attention.

Roger

> > library(sp)
>      library(rgdal)
>      library(rgeos)
> > ## Example SpatialPolygonsDataFrame > x <- readOGR(system.file("etc/shapes", package="spdep"), > "sids")[c(89,28),]
>      plot(x, col=c('dodgerblue', 'wheat'))
> > ## Works fine on object with multiple @Polygons in @polygons, even
>      ## if one of the @Polygons is multi-part
>      gBuffer(x, width=0.01, byid=TRUE)
> > ## Works with a single single-part @Polygons object in @polygons
>      gBuffer(x[1,], width=0.01, byid=TRUE)
> > ## Fails with a single _multi-part_ @Polygons object in @polygons
>      gBuffer(x[2,], width=0.01, byid=TRUE)
> > > Thanks (and please let me know an rgeos-specific note like this would
>  be better posted elsewhere),
> > Josh O'Brien

 _______________________________________________
 R-sig-Geo mailing list
 R-sig-Geo@r-project.org
 https://stat.ethz.ch/mailman/listinfo/r-sig-geo




--
Roger Bivand
Department of Economics, Norwegian School of Economics,
Helleveien 30, N-5045 Bergen, Norway.
voice: +47 55 95 93 55; fax +47 55 95 91 00
e-mail: roger.biv...@nhh.no
http://orcid.org/0000-0003-2392-6140
https://scholar.google.no/citations?user=AWeghB0AAAAJ&hl=en
http://depsy.org/person/434412

_______________________________________________
R-sig-Geo mailing list
R-sig-Geo@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-geo

Reply via email to