intersection of two polygons
On Wed, 21 Mar 2007, St?phane Dray wrote:
I just checked the code and see that my function was not optimal (too much loops). I think that it can be easily improve and I can try to write a intersectSpatialPolygons. There is a unionSpatialPolygons in maptools, I think that an intersect function could be also useful. For instance, one thing that I would like to do in R (but I never succeed): I have a set of points from which I construct a Voronoi mosaic, I have also a polygon of my whole study area, I would like to cut the mosaic using the polygon. I now that there is an Arcview extension to do it but it would be nice to have also this functionality in R. An intersect function would be useful in this case.
It would certainly be welcome, thanks!
Here, I have another related question. My function used polylist objects (it was written several years ago when there was no sp). I would like to know what will be the future of polylist. The main use of this class was its relationship to nb object. Now, poly2nb also accepts SpatialPolygons so what about polylist ?
There are users and code around using the Map, polylist, and other legacy S3 classes, so it seems best to leave the code there. You are right that it may be sensible to add "deprecated" warnings to many of these, because the S4 sp classes are the ones being developed actively. This is a bit like Doug Bates' description of progress with lme structures, the new ones are to be prefered, but it would not be right simply to remove the old ones. Roger
Thanks, Roger Bivand wrote:
On Tue, 20 Mar 2007, St?phane Dray wrote:
I have a code that do the job for polylist objects at http://biomserv.univ-lyon1.fr/~dray/files/softwares/spatialRLQ/spatialrlq.R The function uses gpclib and only returns area or binary matrices (1 intersect, 0 not). It could be easily modify to return the intersection of two polygons (remove the loops over the polylists and return interAB)
Thanks, this will be useful, especially for users searching the archives! This also relates to the question of how much vector GIS functionality should be within R. Roger
Roger Bivand wrote:
On Tue, 20 Mar 2007, Sebastien wrote:
Dear helpers,
I need to find the intersection of two polygons. I have two overlapping
polygons and I want to find the polygon corresponding to the common
part. Is there a fonction, like unionSpatialPolygons which can do that.
I have converted my polygons to "owin" and use the function
'intersect.owin' in the pachage spatstat but it returns a binary matrice
of class "owin" or I would prefer a polygon.
No, there is not. I think that joinPolys() in the PBSmapping package can
do this, and you can get to the PBS PolySet representation using
SpatialPolygons2PolySet() in the maptools package, but then you'd need to
get back again to SpatialPolygons, which would involve coding. The
alternative of using gpclib like unionSpatialPolygons() would also
involve coding.
Roger
Thanks for your help, S?bastien Ollier #### #### #### S?bastien Ollier Ma?tre de Conf?rences Universit? Paris-Sud 11 Facult? des Sciences d'Orsay Unit? Ecologie, Syst?matique et Evolution D?partement Biodiversit?, Syst?matique et Evolution UMR - 8079 UPS-CNRS-ENGREF B?t. 360, 91405 ORSAY CEDEX FRANCE Tel : 33 (0) 1 69 15 56 70 Fax : 33 (0) 1 69 15 46 97 http://www.ese.u-psud.fr/ #### #### ####
Roger Bivand Economic Geography Section, Department of Economics, Norwegian School of Economics and Business Administration, 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