Perfect. Thanks very much. Also thanks for kind reminding on getting the centroids of polygons.
2009/11/28 Roger Bivand <[email protected]> > On Fri, 27 Nov 2009, rusers.sh wrote: > > Dear Robert, >> My method to generate the Voronoi tessellation maybe not better, You can >> show me you method to get it. >> What i want to get is the the class of SpatialPolygons(sp) based on the >> generated Voronoi tessellation. >> Any ideas or suggestions are greatly appreciated. >> > > In the list archives for March 2007 (search in Nabble, for example), there > are hints. A more up to date version might be: > > set.seed(1) > crds <- cbind(runif(100), runif(100)) > library(deldir) > z <- deldir(crds[,1], crds[,2]) > w <- tile.list(z) > library(sp) > polys <- vector(mode="list", length=length(w)) > for (i in seq(along=polys)) { > pcrds <- cbind(w[[i]]$x, w[[i]]$y) > pcrds <- rbind(pcrds, pcrds[1,]) > polys[[i]] <- Polygons(list(Polygon(pcrds)), ID=as.character(i)) > } > SP <- SpatialPolygons(polys) > SPDF <- SpatialPolygonsDataFrame(SP, data=data.frame(x=crds[,1], > y=crds[,2], row.names=row.names(SP))) > > plot(SPDF) > points(crds, pch=3, col="red") > text(coordinates(SPDF), label=row.names(SPDF)) > > then export the SpatialPolygonsDataFrame in the usual way. > > By the way, to get the centroids (aka label points) for Polygons objects, > use coordinates() on their enclosing SpatialPolygons object. The (very) > deprecated maptools function you refered to in an earlier posting will cease > to be available very shortly. > > Hope this helps, > > Roger > > > >> 2009/11/27 rusers.sh <[email protected]> >> >> Yes, what i want is really the Voronoi tessellation that you showed in >>> the link. I can generate the Voronoi tessellation (see my codes), but my >>> problem is how to generate the the class of SpatialPolygons(sp) based on >>> the >>> generated Voronoi tessellation? (SHP means shape file of polygon.) >>> Thanks a lot. >>> ####My code to get the Voronoi tessellation######## >>> library(spatstat) >>> win<-owin(c(0,1),c(0,1)) >>> pp <- runifpoint(10,win=win) >>> #plot(pp) >>> library(tripack) >>> vm <- voronoi.mosaic(pp$x,pp$y) >>> plot(vm) >>> par(new=T) >>> points(pp$x,pp$y,col='blue') >>> axis(1,xlim=c(0,1)) #1=below >>> axis(2,ylim=c(0,1)) #2=left >>> box(xlim=c(0,1),ylim=c(0,1)) >>> >>> 2009/11/27 Robert J. Hijmans <[email protected]> >>> >>> I think you want a Voronoi tessalation (diagram): >>> >>>> http://en.wikipedia.org/wiki/Voronoi_diagram >>>> >>>> But what are SHP polygons? Is 'SHP' a class in an R package? >>>> >>>> Robert >>>> >>>> On Fri, Nov 27, 2009 at 2:03 PM, rusers.sh <[email protected]> wrote: >>>> >>>>> To make this problem more clear. Suppose i have some points in a >>>>> >>>> certain >>>> >>>>> area (e.g. 10 points in a unit square), how to cut and generate the >>>>> corresponding SHP polygons of containing the points (1 point in 1 >>>>> >>>> polygon, >>>> >>>>> maybe the point as their centroid) in this certain area? >>>>> In GeoDa, there is a menu "tools->shape->point to polygon" to achieve >>>>> that. I wonder how to do that in R. Thanks a lot. >>>>> ##Example## >>>>> win<-owin(c(0,1),c(0,1)) >>>>> pp <- runifpoint(10) #generate 10 points >>>>> #i want to change these 10 points into 10 SHP polygons,something like >>>>> >>>> the >>>> >>>>> manipulation in GeoDA, "tools->shape->point to polygon" >>>>> #plot(pp) >>>>> >>>>> 2009/11/27 rusers.sh <[email protected]> >>>>> >>>>> Hi, >>>>>> I always need to convert between the points and polygons. For >>>>>> >>>>> converting >>>> >>>>> the polygons to points, we can use the "get.Pcent(maptools) " to get >>>>>> >>>>> the >>>> >>>>> centroids of the polygons. But for converting points to polygons >>>>>> >>>>> (something >>>> >>>>> like GeoDa's "tools->shape->point to polygon"), i cannot find the >>>>>> corresponding method. I searched in R Site Search with "point to >>>>>> >>>>> polygon" >>>> >>>>> and "generate polygon", but still cannot get the answers. >>>>>> Does anybody know how to convert points to the SHP polygons? >>>>>> OR whether we can generate some SHP polygons randomly in R? >>>>>> ##Example## >>>>>> win<-owin(c(0,1),c(0,1)) >>>>>> pp <- runifpoint(10) #generate 10 points >>>>>> #i want to change these 10 points into 10 SHP polygons,something like >>>>>> >>>>> the >>>> >>>>> manipulation in GeoDA, "tools->shape->point to polygon" >>>>>> #plot(pp) >>>>>> Thanks a lot. >>>>>> >>>>>> >>>>>> -- >>>>>> ----------------- >>>>>> Jane Chang >>>>>> Queen's >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> ----------------- >>>>> Jane Chang >>>>> Queen's >>>>> >>>>> [[alternative HTML version deleted]] >>>>> >>>>> _______________________________________________ >>>>> R-sig-Geo mailing list >>>>> [email protected] >>>>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo >>>>> >>>>> >>>> >>> >>> >>> -- >>> ----------------- >>> Jane Chang >>> Queen's >>> >>> >> >> >> >> > -- > 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: [email protected] > > -- ----------------- Jane Chang Queen's [[alternative HTML version deleted]] _______________________________________________ R-sig-Geo mailing list [email protected] https://stat.ethz.ch/mailman/listinfo/r-sig-geo
