Thanks Roman, this worked fine: n=5 my.list <- vector('list', n) for(i in 1:n) { my.list[[i]] = Polygons(list(Polygon(cbind(c(dat[i,"X"]-150,dat[i,"X"]-150,dat[i,"X"]+150,dat[i,"X"]+150,dat[i,"X"]-150), c(dat[i,"Y"]-150,dat[i,"Y"]+150,dat[i,"Y"]+150,dat[i,"Y"]-150,dat[i,"Y"]-150)))),paste("Number.",i,sep="")) } SpP = SpatialPolygons(my.list, 1:n) SrDf = SpatialPolygonsDataFrame(SpP, dat[1:n,]) writePolyShape(SrDf, fn="FemRutor")
Tord From: romunov [mailto:romu...@gmail.com] Sent: den 1 juli 2010 11:14 To: Tord Snäll Subject: Re: [R-sig-Geo] make thousands SpatialPolygons() I would make a list out of all Sr/Srs objects - you will need it to make Polygons anyway. I work with lists according to The R Inferno<http://lib.stat.cmu.edu/S/Spoetry/Tutor/R_inferno.pdf> something along the lines: my.list <- vector('list', n) for(i in 1:n) { ... additional manipulation... my.list[[i]] <- your_object } Cheers, Roman On Thu, Jul 1, 2010 at 10:59 AM, Tord Snäll <tord.sn...@ekol.slu.se<mailto:tord.sn...@ekol.slu.se>> wrote: Hi, I want to make approximately 10000 square polygons (300*300) based on coordinates in a data frame, and make a .shp-file out of these. The .pdf "S Classes and Methods for Spatial Data: the sp Package" by Pebesma and Bivand contains an instruction on how to do this, and it works very well, e.g. i=1 Sr1 = Polygon(cbind(c(dat[i,"X"]-150,dat[i,"X"] - 150,dat[i,"X"]+150,dat[i,"X"]+150,dat[i,"X"]-150), c(dat[i,"Y"]-150,dat[i,"Y"]+150,dat[i,"Y"]+150,dat[i,"Y"]-150,dat[i,"Y"]-150))) Srs1 = Polygons(list(Sr1),paste("Number.",i,sep="")) i=2 Sr2 = Polygon(cbind(c(dat[i,"X"]-150,dat[i,"X"] -150,dat[i,"X"]+150,dat[i,"X"]+150,dat[i,"X"]-150), c(dat[i,"Y"]-150,dat[i,"Y"]+150,dat[i,"Y"]+150,dat[i,"Y"]-150,dat[i,"Y"]-150))) Srs2 = Polygons(list(Sr2),paste("Number.",i,sep="")) SpP = SpatialPolygons(list(Srs1, Srs2), 1:2) SrDf = SpatialPolygonsDataFrame(SpP, dat[1:2,]) writePolyShape(SrDf, fn="TvaRutor") However, my data frame "dat" has ~10000 coords and want to write a loop for doing what is done above. My problem is how to store Sr1, Srs1, Sr2, Srs2,... Sr10000, Srs10000 etc to be used in SpatialPolygons(). Help on this is much appreciated. Cheers, Tord _______________________________________________ R-sig-Geo mailing list R-sig-Geo@stat.math.ethz.ch<mailto:R-sig-Geo@stat.math.ethz.ch> https://stat.ethz.ch/mailman/listinfo/r-sig-geo -- In God we trust, all others bring data. [[alternative HTML version deleted]]
_______________________________________________ R-sig-Geo mailing list R-sig-Geo@stat.math.ethz.ch https://stat.ethz.ch/mailman/listinfo/r-sig-geo