Hi,

Maybe lookt at rgeos::gIntersection.

2011/12/22 satishr <satish.regonda@gmail.com>

> Hi,
>   I need to calculate the fraction of a polygon that is intersected by
> another polygon. details of the problem: I have data in two shape files;
> the
> first file corresponds to a rectangular grid with uniform intervals whereas
> the second file corresponds to US climate divisions, which are polygons.
> The
> polygons representing climate divisions vary in size, some times these
> climate divisions/polygons are so small such that they fit in one
> rectangular grid and some times require more than 20 rectangular grids.
> What
> I need is: identify rectangular grids that intersect with a polygon and
> calculate the fraction of the intersection between the rectangular grid and
> polygon.
>    The function 'extract' with 'weights=TRUE' was able to calculate
> fractions but it has following issues: (a) the function did not consider a
> grid(s) although there is a overlap with a climate division, and (b)
> fractional amounts are changed when I changed the rectangular grid size.
> Here is my code. Any help is greatly appreciated.
> Thanks,
> Satish
>
> #          Read two shape files, rasterize rectangular grid and use it with
> 'extract'
>
> #          First shape file, rectangular grid;
>
>            spatGP=readShapeSpatial("Gaussian_Poylgon_ExtendedCONUS.shp")
>            spatGP1=as(spatGP,"SpatialPolygons")
>            spatGP2=slot(spatGP1,"polygons")
>
>  #          rasterization
>
>             spatras0 <- raster(ncol=180, nrow=180)
>             extent(spatras0)<- extent(spatGP);
>             spatras <- rasterize(spatGP, spatras0)
>
>  #          second shapefile, polygons, i.e., climate divisions
>
>             cddata=readShapeSpatial("divisions.shp")
>             spcddata=as(cddata,"SpatialPolygons")
>             regionscddata=slot(spcddata,"polygons")
>
>             ipolygon=256   # say, I am interested in this polygon
>
>             sub.tmp = slot(regionscddata[[ipolygon]],'Polygons')
> #          create a polygon
>            poly.tmp=cbind(sub.tmp[[1]]@coords[,1],sub.tmp[[1]]@coords[,2])
>            polys = SpatialPolygons(list(Polygons(list(Polygon(poly.tmp)),
> 1)))
>
> #           Calculate fractions
>            weights.tmp = extract(spatras, polys, weights=TRUE)
>
> ‘weights.tmp’ is a matrix – provides information of cells that are covered
> by the polygon, i.e., first column cell positions and second column
> fraction
> of cell.
>
>
> http://r-sig-geo.2731867.n2.nabble.com/file/n7119685/USClimateDivsions_RectangularGrid.jpeg
>
>
> --
> View this message in context:
> http://r-sig-geo.2731867.n2.nabble.com/fraction-of-a-polygon-that-is-intersected-by-another-polygon-tp7119685p7119685.html
> Sent from the R-sig-geo mailing list archive at Nabble.com.
>
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>

	[[alternative HTML version deleted]]

