R/cropForest.R

Defines functions cropForest

Documented in cropForest

#' @title Crop forest to lidar survey extents
#' @description Crop forest to lidar survey extents and dissolve using "CODE_TFV" attribute
#' @usage cropForest(dir)
#' @param dir character, directory name to load BD FORET layers
#' @import raster
#' @import sf
#' @import dplyr
#' @export
#' @examples # not run: cropForest()

cropForest<-function(dir){

  foret38=sf::st_read(paste(dir,"/38/FORMATION_VEGETALE.shp",sep=""), options = "ENCODING=WINDOWS-1252")
  foret73=sf::st_read(paste(dir,"/73/FORMATION_VEGETALE.shp",sep=""), options = "ENCODING=WINDOWS-1252")
  foret26=sf::st_read(paste(dir,"/26/FORMATION_VEGETALE.shp",sep=""), options = "ENCODING=WINDOWS-1252")
  foret01=sf::st_read(paste(dir,"/01/FORMATION_VEGETALE.shp",sep=""), options = "ENCODING=WINDOWS-1252")
  foret74=sf::st_read(paste(dir,"/74/FORMATION_VEGETALE.shp",sep=""), options = "ENCODING=WINDOWS-1252")

  # Crop forest layers to LiDAR survey and correct for overlapping polygons dissolving stands
  foret017374=rbind(foret01,foret73,foret74)
  predictedIMAT_Bugey=raster::raster("./../data/outputs/predictedIMAT_Bugey.tif")
  sf::st_transform(foret017374,sf::st_crs(predictedIMAT_Bugey))
  foret017374.crop=sf::st_crop(foret017374,raster::extent(predictedIMAT_Bugey))
  over=sf::st_overlaps(foret017374.crop)
  print("Overlapping polygons:")
  print(which(lapply(over,FUN=length)!=0))
  foret017374.crop.diss = foret017374.crop %>% group_by(CODE_TFV) %>% summarize()
  over=sf::st_overlaps(foret017374.crop.diss)
  print("Overlapping polygons:")
  print(which(lapply(over,FUN=length)!=0))

  foret2638=rbind(foret26,foret38)
  predictedIMAT_VercorsRBI=raster::raster("./../data/outputs/predictedIMAT_VercorsRBI.tif")
  sf::st_transform(foret2638,sf::st_crs(predictedIMAT_VercorsRBI))
  foret2638.crop=sf::st_crop(foret2638,raster::extent(predictedIMAT_VercorsRBI))
  over=sf::st_overlaps(foret2638.crop)
  print("Overlapping polygons:")
  print(which(lapply(over,FUN=length)!=0))
  foret2638.crop.diss.Vercors <- foret2638.crop %>% group_by(CODE_TFV) %>% summarize()
  over=sf::st_overlaps(foret2638.crop.diss.Vercors)
  print("Overlapping polygons:")
  print(which(lapply(over,FUN=length)!=0))

  predictedIMAT_QuatreMontagnes=raster::raster("./../data/outputs/predictedIMAT_QuatreMontagnes.tif")
  sf::st_transform(foret38,sf::st_crs(predictedIMAT_QuatreMontagnes))
  foret38.crop.QM=sf::st_crop(foret38,raster::extent(predictedIMAT_QuatreMontagnes))
  foret38.crop.diss.QM <- foret38.crop.QM %>% group_by(CODE_TFV) %>% summarize()

  predictedIMAT_Chartreuse=raster::raster("./../data/outputs/predictedIMAT_Chartreuse.tif")
  sf::st_transform(foret38,sf::st_crs(predictedIMAT_Chartreuse))
  foret38.crop.Chartreuse=sf::st_crop(foret38,raster::extent(predictedIMAT_Chartreuse))
  foret38.crop.diss.Chartreuse <- foret38.crop.Chartreuse %>% group_by(CODE_TFV) %>% summarize()
  foret38.crop.diss.Chartreuse2 <- sf::st_collection_extract(foret38.crop.diss.Chartreuse, "POLYGON")
  foret38.crop.diss.Chartreuse <- foret38.crop.diss.Chartreuse2 %>% group_by(CODE_TFV) %>% summarize()

  predictedIMAT_Bauges=raster::raster("./../data/outputs/predictedIMAT_Bauges.tif")
  foret7374=rbind(foret73,foret74)
  sf::st_transform(foret7374,sf::st_crs(predictedIMAT_Bauges))
  foret7374.crop=sf::st_crop(foret7374,raster::extent(predictedIMAT_Bauges))
  over=sf::st_overlaps(foret7374.crop)
  print("Overlapping polygons:")
  print(which(lapply(over,FUN=length)!=0))
  foret7374.crop.diss.Bauges <- foret7374.crop %>% group_by(CODE_TFV) %>% summarize()
  over=sf::st_overlaps(foret7374.crop.diss.Bauges)
  print("Overlapping polygons:")
  print(which(lapply(over,FUN=length)!=0))

  sf::st_write(foret017374.crop.diss,"./../data/outputs/forestBugey.shp")
  sf::st_write(foret2638.crop.diss.Vercors,"./../data/outputs/forestVercors.shp")
  sf::st_write(foret38.crop.diss.QM,"./../data/outputs/forestQuatreMontagnes.shp")
  sf::st_write(foret38.crop.diss.Chartreuse,"./../data/outputs/forestChartreuse.shp")
  sf::st_write(foret7374.crop.diss.Bauges,"./../data/outputs/forestBauges.shp")

}
etiennelalechere/maturitymodelling documentation built on Dec. 9, 2022, 8:02 p.m.