[R-sig-Geo] gIntersection returns error "TopologyException: no outgoing dirEdge found at"
Roger Bivand
Roger.Bivand at nhh.no
Wed Sep 23 19:39:52 CEST 2015
On Wed, 23 Sep 2015, Jean-Luc Dupouey wrote:
> Why gIntersection returns the ""TopologyException: no outgoing dirEdge found
> at" error in the following very simple case:
>
>> #construct a spatial layer with two adjacent squares, each of 10 x 10
> units:
>>
>> Pol1=rbind(c(0,0),c(0,10),c(10,10),c(10,0),c(0,0))
>> Pol2=rbind(c(0,0),c(10,0),c(10,-10),c(0,-10),c(0,0))
>>
>> Pols1=Polygons(list(Polygon(Pol1)),"Pols1")
>> Pols2=Polygons(list(Polygon(Pol2)),"Pols2")
>> MyLay=SpatialPolygons(list(Pols1,Pols2))
>>
>> #construct the same layer, but lagged by 0.5 in x and y directions
>>
>> Pol1l=Pol1+0.5
>> Pol2l=Pol2+0.5
>>
>> Pols1l=Polygons(list(Polygon(Pol1l)),"Pols1l")
>> Pols2l=Polygons(list(Polygon(Pol2l)),"Pols2l")
>> MyLayl=SpatialPolygons(list(Pols1l,Pols2l))
>>
>> #view the resulting spatial layers:
>>
>> plot(MyLay)
>> plot(MyLayl,add=TRUE)
>>
>> #try to intersect:
>>
>> inter=gIntersection(MyLay,MyLayl)
> Error in RGEOSBinTopoFunc(spgeom1, spgeom2, byid, id, drop_lower_td,
> "rgeos_intersection") :
> TopologyException: no outgoing dirEdge found at 0.5 0
The error message is coming from GEOS - you are welcome to investigate
further. If you use gUnaryUnion() on the objects first, there is no error:
library(rgeos)
Pol1=rbind(c(0,0),c(0,10),c(10,10),c(10,0),c(0,0))
Pol2=rbind(c(0,0),c(10,0),c(10,-10),c(0,-10),c(0,0))
library(sp)
Pols1=Polygons(list(Polygon(Pol1)),"Pols1")
Pols2=Polygons(list(Polygon(Pol2)),"Pols2")
MyLay=SpatialPolygons(list(Pols1,Pols2))
Pol1l=Pol1+0.5
Pol2l=Pol2+0.5
Pols1l=Polygons(list(Polygon(Pol1l)),"Pols1l")
Pols2l=Polygons(list(Polygon(Pol2l)),"Pols2l")
MyLayl=SpatialPolygons(list(Pols1l,Pols2l))
plot(MyLay)
plot(MyLayl,add=TRUE)
points(x=0.5, y=0)
inter=gIntersection(gUnaryUnion(MyLay), gUnaryUnion(MyLayl))
plot(inter, add=TRUE, border="green")
It is a GEOS issue, not rgeos.
>
> It works with the option byid=TRUE.
>
> But my question is why it does not work without? Is this behaviour
> predictable?
This is unknown. I'll try again on GEOS 3.5.0 and see if it is still
there: yes, unfortunately it is still there.
Roger
>
> I went through some previous related posts to the list, but could not find
> the answer.
>
> Thanks,
>
>
--
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.Bivand at nhh.no
More information about the R-sig-Geo
mailing list