[R] maptools, write.polylistShape
Roger Bivand
Roger.Bivand at nhh.no
Sun Jan 8 22:03:50 CET 2006
On Sat, 7 Jan 2006, Patrick Giraudoux wrote:
> Dear Roger,
>
> I am trying to use the write.polylistShape() function of maptools for
> the first time and realize that it handles list of polygons of class
> 'polylist'. However, it seems that no as.polylist() function exist in
> the package. The question behind that is: in your opinion, which would
> be the best way to convert a list of matrix of polygon nodes
> coordinates into an object of class polylist?
Certainly through sp classes - construct a list of Polygons objects each
with one (or more) Polygon objects, raise to SpatialPolygons, then back
out through writePolyShape(). Assuming each list member matrix is the
perimeter of a single polygon, and each Polygons object only has one
Polygon:
n <- length(list_of_matrices)
list_of_polygons <- vector(mode="list", length=n)
for (i in 1:n) {
Pl <- Polygon(list_of_matrices[[i]])
list_of_polygons[[i]] <- Polygons(list(Pl), ID=as.character(i))
}
# could be done with lapply too
SPs <- SpatialPolygons(list_of_polygons)
rownames(mydata) <- as.character(1:n)
SPDF <- SpatialPolygonsDataFrame(SPs, mydata)
writePolyShape(SPDF, "outfile")
(untried - but close enough).
Best wishes,
Roger
>
> All the best,
>
> Patrick
>
>
--
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
More information about the R-help
mailing list