you should check the intersect function. I used it like in this function in the link: http://gis.stackexchange.com/questions/140504/extracting-intersection-areas-in-r
Juan On Tue, May 24, 2016 at 9:17 PM ASANTOS via R-sig-Geo < [email protected]> wrote: > Dear members, > > I will try to calculate each polygon percentage inside a circles > given an arbitrary radius in a shapefile object with the code below and > my output needs to be (Two first columns with center os circle > coordinates and values of each polygon percentage): > > "pts$x" "pts$y" "ID1" "ID2" "ID3" "ID4" > 180486.1 330358.8 16.3 0.2 NA 17.3 > 179884.4 331420.8 88.3 NA 96.3 NA > 179799.6 333062.5 25.3 22.3 0.5 NA > ... > > For this I try to do: > > #Packages > require(shapefiles) > require(rgdal) > require(maptools) > require(spatstat) > require(berryFunctions) > > > #Create 4 polygons (I create polygons because is more simple that given > a shapefile in a post) > > sr1=Polygons(list(Polygon(cbind(c(180114, 180553, 181127, 181477, > 181294, 181007, 180409, > 180162, 180114), c(332349, 332057, 332342, 333250, 333558, 333676, > 332618, 332413, 332349)))),'1') > sr2=Polygons(list(Polygon(cbind(c(180042, 180545, 180553, 180314, > 179955, 179142, 179437, > 179524, 179979, 180042), c(332373, 332026, 331426, 330889, 330683, > 331133, 331623, 332152, 332357, 332373)))),'2') > sr3=Polygons(list(Polygon(cbind(c(179110, 179907, 180433, 180712, > 180752, 180329, 179875, > 179668, 179572, 179269, 178879, 178600, 178544, 179046, 179110), > c(331086, 330620, 330494, 330265, 330075, 330233, 330336, 330004, > 329783, 329665, 329720, 329933, 330478, 331062, 331086)))),'3') > sr4=Polygons(list(Polygon(cbind(c(180304, 180403,179632,179420,180304), > c(332791, 333204, 333635, 333058, 332791)))),'4') > > #Spatial Polygons > sr=SpatialPolygons(list(sr1,sr2,sr3,sr4)) > srdf=SpatialPolygonsDataFrame(sr, > data.frame(row.names=c('1','2','3','4'), PIDS=1:4)) > > #Create shapefile > writeOGR(srdf, getwd(), 'POLY', 'ESRI Shapefile') > > #Read shapefile > contorno_line_X <- readShapeSpatial("POLY.shp") > plot(contorno_line_X) > > #Create ~28 random points in my window > contorno_line_spat <- as(contorno_line_X,"owin") > pts <- rpoispp(lambda=0.000005, win=contorno_line_spat) > points(pts, col="blue") > > #Set the radius for the plots > radius <- 600 # radius in meters > > #Draw the circles using berryFunctions package > for(i in 1:length(pts$x)) circle(pts$x[i],pts$y[i],r=radius, > col=rgb(1,0.5,0,alpha=0.4), border=NA) > # > > Now I'd like to calculate de polygon percentage around each point in a > 600 meters radius. This is possible? There are any function for this? > > Thanks, > > Alexandre > > -- > ====================================================================== > Alexandre dos Santos > Proteção Florestal > IFMT - Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso > Campus Cáceres > Caixa Postal 244 > Avenida dos Ramires, s/n > Bairro: Distrito Industrial > Cáceres - MT CEP: 78.200-000 > Fone: (+55) 65 8132-8112 (TIM) (+55) 65 9686-6970 (VIVO) > > [email protected] > Lattes: http://lattes.cnpq.br/1360403201088680 > OrcID: orcid.org/0000-0001-8232-6722 > Researchgate: https://www.researchgate.net/profile/Alexandre_Santos10 > LinkedIn: https://br.linkedin.com/in/alexandre-dos-santos-87961635 > ====================================================================== > > > [[alternative HTML version deleted]] > > _______________________________________________ > R-sig-Geo mailing list > [email protected] > https://stat.ethz.ch/mailman/listinfo/r-sig-geo [[alternative HTML version deleted]] _______________________________________________ R-sig-Geo mailing list [email protected] https://stat.ethz.ch/mailman/listinfo/r-sig-geo
