Hi, I extracted information from open street map that contains many polygons, some of them overlapping. I want to union/dissolve all polygons that have overlap with other polygons. I am looking for an approach that uses the sf package. I posted this question on StackExchange here: https://gis.stackexchange.com/questions/323038/dissolve-only-overlapping-polygons-in-r-using-sf/323067#323067 with a reproducible simple example. With help of a reader (Spacedman), I managed to solve it for the simple case. Unfortunately, it seems the osm data is somewhat messy and the solution does not seem to work (or I do not understand it completely). For this reason I am posting it here in the hope somebody has an idea.
The reproducible examples is as follows - three clusters of rectangles of which two have overlap: sq = function(pt, sz = 1) st_polygon(list(rbind(c(pt - sz), c(pt[1] + sz, pt[2] - sz), c(pt + sz), c(pt[1] - sz, pt[2] + sz), c(pt - sz)))) x = st_sf(box = 1:6, st_sfc(sq(c(4.2,4.2)), sq(c(0,0)), sq(c(1, -0.8)), sq(c(0.5, 1.7)), sq(c(3,3)), sq(c(-3, -3)))) plot(x) parts <- st_cast(st_union(x),"POLYGON") plot(parts) clust <- unlist(st_intersects(x, parts)) diss <- cbind(x, clust) %>% group_by(clust) %>% summarize(box = paste(box, collapse = ", ")) # I would like to preserve the names of the polygons before the dissolve hence the paste command. plot(diss[1]) However, when I run this on my dataset from Open Street Map, which can be found here: https://www.dropbox.com/s/4n259yhh5swqgf2/osm_data.rds?dl=0, it does not work. When I use st_intersects(x, parts) to determine the links between the features and the clusters it appears that features can be related to two (or more) clusters. I do not understand how this is possible as then these two clusters should be regarded as one cluster. Right? How can I adjust the code above so all the overlapping polygons in my dataset will be dissolved? Thanks, Michiel M. (Michiel) van Dijk, PhD Research scholar | Ecosystems Services and Management (ESM) | International Institute for Applied Systems Analysis (IIASA) Senior researcher (out of office) | International Policy Division (IB) | Wageningen Economic Research ySchlossplatz 1 - A-2361 Laxenburg, Austria, room s-138 S +43 2236 807 537 Skype: michiel.van.dijk S https://www.researchgate.net/profile/Michiel_Van_Dijk/ / http://nl.linkedin.com/pub/michiel-van-dijk/1a/805/346 _______________________________________________ R-sig-Geo mailing list [email protected] https://stat.ethz.ch/mailman/listinfo/r-sig-geo
