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...@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@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-sig-geo _______________________________________________ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo