Skip to Content

alpha_shape.R

  1. #title :alpha_shape.R
  2. #description :script R accompagnant l'article "Sur la création des enveloppes concaves (concave hull) et les divers moyens d'y parvenir".
  3. #auteur :M.Laloux
  4. #date :20141012
  5. #==============================================================================
  6.  
  7. # chargement des librairies
  8. library(rgdal)
  9. library(alphahull)
  10.  
  11. # chargement du fichier shapefile
  12. points <- readOGR(".", "points_test")
  13.  
  14. # construction de l'alpha shape
  15. alpha_points = ashape(coordinates(points),alpha=35)
  16.  
  17. #enregistrement du résultat sous forme de polylignes, voir https://stat.ethz.ch/pipermail/r-sig-geo/2010-February/007641.html)
  18.  
  19. l <- list()
  20. for (i in 1:nrow(alpha_points$edges)) {
  21. + l[[i]] <- Line(rbind(alpha_points$edges[i, 3:4], alpha_points$edges[i, 5:6]))
  22. + }
  23.  
  24. l <- list(Lines(l, as.character("1")))
  25. sldf <- SpatialLinesDataFrame(SpatialLines(l), data.frame(name ="ashape"), match.ID = FALSE)
  26. writeOGR(sldf, ".", "ralphalines", "ESRI Shapefile")