[R-sig-Geo] Combining polygons and calculating their area (i.e. number of cells)

Robert J. Hijmans r.hijmans at gmail.com
Wed Dec 18 18:25:53 CET 2013


Alex,
Do you need to create polygons? You can do things like:

m <- clump(r)
freq(m)

But if you insist on polygons:

m <- clump(r)
p <- rasterToPolygons(m, dissolve=TRUE)

Robert

On Wed, Dec 18, 2013 at 7:08 AM, Alexander Zimmermann
<alexander.zimmermann.ii at uni-potsdam.de> wrote:
> Dear All,
>
> I have a problem with combining polygons and calculating their area.
> In the following I try to provide a description of the problem:
> I have a simple raster (created with R-package: raster). Using the function
> "rasterToPolygons" I get polygons of all raster cells that contain the value
> "1":
>
> library(raster)
> dat = list()
> dat$x = seq(1.5, by = 10, len = 10)
> dat$y = seq(3.5, by = 10, len = 15)
> dat$z = matrix(sample(c(0,1), size = 10*15, replace = T), 10, 15)
> r=raster(dat);plot(r)
> r_poly = rasterToPolygons(r, fun = function(r) {r == 1}, dissolve = F)
> plot(r_poly, add = T)
>
> I do not use "dissolve = T" to avoid that all polygons are merged into one
> big polygon (i.e. a multipart polygon). Instead, I wish to obtain a new
> SpatialPolygonsDataFrame in which all polygons that share an edge or a point
> are combined. Polygons that are clearly separated should be identifiable as
> individual polygons (i.e. I wish to avoid to obtain a multipart polygon).
> Based on the new SpatialPolygonsDataFrame I would like to analyze the size
> of the combined (individual) polygons as follows:
>
> b = extract(r,r_poly_new) # "r_poly_new" contains the combined polygons
> str(b)                    # list of clearly separated polygons
> tab = lapply(b,table)
> tab
>
> My question is twofold:
> 1) How to combine polygons that share an edge or point (under the constraint
> that clearly separated polygons remain individual polygons)?
> 2) How to get this information into a format which allows analyzing the
> areas of the combined (but not multipart) polygons?
>
> Thank you very much for your feedback.
>
> Alex Zimmermann
>
> --------------------------------------------------------------------
> Dr. Alexander Zimmermann
> Institute of Earth and Environmental Science, University of Potsdam
> Karl-Liebknecht-Str. 24-25, 14476 Potsdam - Golm, Germany
> phone +49-(0)331-9772047, fax +49-(0)331-9772068
>
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo at r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo



More information about the R-sig-Geo mailing list