[R-sig-Geo] invalid geometries from negative buffering in rgeos/sp

Edzer Pebesma edzer.pebesma at uni-muenster.de
Mon Oct 7 20:12:28 CEST 2013


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1



On 10/07/2013 07:11 PM, Robert J. Hijmans wrote:
> On Mon, Oct 7, 2013 at 5:51 AM, Roger Bivand <Roger.Bivand at nhh.no>
> wrote:
>> On Mon, 7 Oct 2013, Robert J. Hijmans wrote:
>> 
>>> A more general fix might be to support NULL geometries in
>>> Spatial objects.
>> 
>> 
>> Maybe, but we do not have in sp a class for mixed types of
>> geometries either,
> 
> True, but that is a different issue.
> 
>> so we would have to define NULL of everything. OGC SFS has NULL,
>> but I would argue that NULL geometries have no analytical
>> meaning, like a point with no coordinate values - so we don't
>> know where it is. It doesn't fit the Spatial class, unless we
>> open for a bounding box with NA corners.
> 
> There have been cases where I thought it would have been handy,
> for example when geometries (e.g. point locations) are known for
> some, but not for all records in a data set. However, addition this
> type of support would add a significant amount of overhead to all
> functions (check for / remove NULL values; NA bounding box vaues).

Since the launch of what would later become sp [1], nearly 10 years
ago, I haven't regretted the decision to not allow missing values in
geometries a single second.

[1] https://stat.ethz.ch/pipermail/r-sig-geo/2003-October/000028.html

> 
>> In rgeos, the typical output if there is no positional data is
>> the R NULL value. One might go towards objects with mixed
>> geometries (GDAL is permitting them for the drivers that have
>> them in the development version), but I don't see an analytical
>> need.
> 
> Me neither
> 
>> How often does, for example, newdata for predicting from a 
>> geostatistical model include both points and lines?
>> 
>> Roger
>> 
>> 
>>> Robert
>>> 
>>> On Thu, Oct 3, 2013 at 6:29 AM, Roger Bivand
>>> <Roger.Bivand at nhh.no> wrote:
>>>> 
>>>> On Thu, 3 Oct 2013, Barry Rowlingson wrote:
>>>> 
>>>>> Using scot_BNG from the rgdal package:
>>>>> 
>>>>> dsn <- system.file("vectors", package = "rgdal")[1] 
>>>>> scot_BNG <- readOGR(dsn=dsn, layer="scot_BNG")
>>>>> 
>>>>> and buffering with a sufficiently large negative width:
>>>>> 
>>>>> b=gBuffer(scot_BNG,width=-10000,byid=TRUE)
>>>>> 
>>>>> produces an object that gives an error on plot:
>>>> 
>>>> 
>>>> 
>>>> Yes, but ...
>>>> 
>>>> The user gets a SpatialPolygonsDataFrame object with the data
>>>> slot intact, but some of the polygons are clearly now
>>>> invalid. Should we do book-keeping to only retain the data
>>>> slot rows for valid polygons, only return the subset of valid
>>>> polygons, or proceed as now, and have the user do:
>>>> 
>>>> plot(b[gArea(b, byid=TRUE) > 0,])
>>>> 
>>>> What makes more sense? I'm open to suggestions ...
>>>> 
>>>> Roger
>>>> 
>>>> 
>>>>> 
>>>>>> plot(b)
>>>>> 
>>>>> Error in checkSlotAssignment(object, name, value) : 
>>>>> assignment of an object of class “NULL” is not valid for
>>>>> slot "coords" in an object of class “Line”; is(value,
>>>>> "matrix") is not TRUE
>>>>> 
>>>>> Which I think is because the negative buffer has shrunk a
>>>>> feature to nothing.
>>>>> 
>>>>> b[1,] is fine but:
>>>>> 
>>>>>> b[2,]
>>>>> 
>>>>> 
>>>>> Error in SpatialPolygons(x at polygons[i], proj4string = 
>>>>> CRS(proj4string(x))) : INTEGER() can only be applied to a
>>>>> 'integer', not a 'NULL'
>>>>> 
>>>>> I'm not sure what the right thing to do here is. Either
>>>>> return a valid zero-area polygon (if that's not a
>>>>> contradiction in terms) or drop the degenerate cases?
>>>>> 
>>>>> Barry
>>>>> 
>>>>> _______________________________________________ R-sig-Geo
>>>>> mailing list R-sig-Geo at r-project.org 
>>>>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>>>>> 
>>>> 
>>>> -- Roger Bivand Department of Economics, NHH Norwegian School
>>>> of Economics, Helleveien 30, N-5045 Bergen, Norway. voice:
>>>> +47 55 95 93 55; fax +47 55 95 95 43 e-mail:
>>>> Roger.Bivand at nhh.no
>>>> 
>>>> _______________________________________________ R-sig-Geo
>>>> mailing list R-sig-Geo at r-project.org 
>>>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>>>> 
>>> 
>> 
>> -- Roger Bivand Department of Economics, NHH Norwegian School of
>> Economics, Helleveien 30, N-5045 Bergen, Norway. voice: +47 55 95
>> 93 55; fax +47 55 95 95 43 e-mail: Roger.Bivand at nhh.no
> 
> _______________________________________________ R-sig-Geo mailing
> list R-sig-Geo at r-project.org 
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
> 

- -- 
Edzer Pebesma
Institute for Geoinformatics (ifgi), University of Münster
Heisenbergstraße 2, 48149 Münster, Germany. Phone: +49 251
83 33081 http://ifgi.uni-muenster.de GPG key ID 0xAD3A77F1
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBAgAGBQJSUvmMAAoJEM1OCHCtOnfxkpcH/R4stGxSSR/5kqHFyrgotsff
2HX5c3rAwi3gfFG/a/NbU9B+5+6XEDPaNV4qd9MgvOd6mMX7IwPKjpiJEUj3CBft
X8Z1fDb1RD5U3BKyr0ggroTOq2PNdpfgdvVWRKd0Q9+wprZ1/u09aQMOQIqrdVt4
p+0Gy+f510T28gQ99ceRgjLiI1a1dZGnxZb2gV0n0DRU6szAyjhK+y3tyZTfFoKz
UUPoH/BumUH3+7wbHseexHMgwQm6P31GX6mrLxDmXzzIk7Zszp19YM8DfXc4KR6W
3TmuXrehit+7c/HI9iKEhUKGCmMfqhQ7hhygQU8kGRoRrtUY54LDt6c59S2oLoo=
=ZXtJ
-----END PGP SIGNATURE-----



More information about the R-sig-Geo mailing list