#################################################################
## ##
## (c) Adeline Marinho <adelsud6@gmail.com> ##
## ##
## Image Processing Division ##
## National Institute for Space Research (INPE), Brazil ##
## ##
## ##
## R script to load GeoTIFF and saved as RasterBrick ##
## ##
## 2018-08-28 ##
## ##
## ##
#################################################################
#' @title Save tibble as Raster in Folder
#' @name lucC_create_RasterBrick
#' @aliases lucC_create_RasterBrick
#' @author Adeline M. Maciel
#' @docType data
#'
#' @description Create a RasterBrick from list of GeoTIFF images stored in a folder
#'
#' @usage lucC_create_RasterBrick(path_open_GeoTIFFs = NULL, path_save_RasterBrick = NULL)
#'
#' @param path_open_GeoTIFFs Character. Name a path folder to OPEN raster images data.
#' @param path_save_RasterBrick Character. Name a path folder to SAVE RasterBrick from GeoTIFF images. If doesn't exist, a new directory is created
#'
#' @keywords datasets
#' @return RasterBrick file
#' @importFrom ensurer ensure_that
#' @export
#'
#' @examples \dontrun{
#' library(lucCalculus)
#'
#' # create a RasterBrick from individual raster GeoTIFF classified previously
#' lucC_create_RasterBrick(path_open_GeoTIFFs =
#' c(system.file("extdata/raster/rasterSample", package = "lucCalculus")),
#' path_save_RasterBrick = getwd())
#'
#'}
#'
# plot maps with events
lucC_create_RasterBrick <- function(path_open_GeoTIFFs = NULL, path_save_RasterBrick = NULL){
# Ensure if parameters exists
ensurer::ensure_that(path_open_GeoTIFFs, !is.null(path_open_GeoTIFFs),
err_desc = "path_open_GeoTIFFs tibble, must be defined! Enter a path to OPEN your GeoTIFF images.")
ensurer::ensure_that(path_save_RasterBrick, !is.null(path_save_RasterBrick),
err_desc = "path_save_RasterBrick must be defined! Enter a path to SAVE your GeoTIFF images!")
# create a rasterBrick with data
GeoTIFF_files <- list.files(path_open_GeoTIFFs,
full.names = TRUE,
pattern = ".tif$")
# order files by digits
numbers = as.numeric(regmatches(GeoTIFF_files, regexpr("[0-9]+", GeoTIFF_files)))
GeoTIFF_files <- GeoTIFF_files[order(numbers)]
message(paste(c("GeoTIFF images: \n", GeoTIFF_files, "\n"), collapse="\n"))
name_RasterBrick <- basename(path_open_GeoTIFFs)
# Create directory if doesn't exist
output_dir <- file.path(path_save_RasterBrick)
if (!dir.exists(output_dir)){
message("\nCreated new directory because the path provided doesn't exist! ...\n")
dir.create(output_dir)
} else {
path_save_RasterBrick <- path_save_RasterBrick
}
message("...")
# save RasterBrick
build_RasterBrick <- GeoTIFF_files %>%
raster::stack(.) %>%
raster::brick(.) %>%
raster::writeRaster(., paste0(path_save_RasterBrick,"/",name_RasterBrick,"_brick.tif", sep = ""), overwrite=TRUE)
message("RasterBrick saved in path: ", paste0(path_save_RasterBrick,"/",name_RasterBrick,".tif", sep = ""),"\n")
lucC_remove_TmpFilesRaster()
}
#' @title Remove Temporary files in Linux
#' @name lucC_remove_TmpFilesRaster
#' @aliases lucC_remove_TmpFilesRaster
#' @author Adeline M. Maciel
#' @docType data
#'
#' @description Remove temporary files created by raster package
#'
#' @usage lucC_remove_TmpFilesRaster()
#'
#' @keywords datasets
#' @export
#'
#' @examples \dontrun{
#' library(lucCalculus)
#'
#' # create a RasterBrick from individual raster GeoTIFF classified previously
#' lucC_create_RasterBrick(path_open_GeoTIFFs =
#' c(system.file("extdata/raster/rasterSample", package = "lucCalculus")),
#' path_save_RasterBrick = getwd())
#' lucC_remove_TmpFilesRaster()
#'
#'}
#'
# plot maps with events
lucC_remove_TmpFilesRaster <- function(){
# temp directory for the current R session
tmp_dir <- tempdir()
# temp directory contains the temp files and directory for the current R session
files <- list.files(paste0(tmp_dir,"/raster", sep = ""), full.names = TRUE, pattern = "r_tmp_*")
# if you want to delete all files in the R session temp folder
file.remove(files)
message(paste("Removed: ", length(files), " from ", tmp_dir, collapse="\n"))
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.