1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- #' Add New Product to MODIS Collections
- #'
- #' @description
- #' \code{addCollection} is a non-exported helper function to add a new product
- #' column to the product collections managed by \strong{MODIS} (see
- #' \code{MODIS:::collections}). Once added, the specified product will be
- #' tracked and, if required, kept up-to-date by \code{\link{getCollection}}.
- #'
- #' @param product Character. Name of the product that should be added to the
- #' 'collections' dataset, see \code{\link{getCollection}}.
- #' @param collection Numeric. Optional information about available collections.
- #' If not supplied, this defaults to 'NA' and the user is required to manually
- #' retrieve information about available collections via
- #' \code{getCollection(..., forceCheck = TRUE)}. Note that the latter operation
- #' requires the previous execution of \code{MODIS:::addProduct} and
- #' \code{MODIS:::addServer} to make the newly added product available to
- #' \code{\link{getCollection}}.
- #' @param path_ext Character. Path to folder containing file
- #' 'MODIS_Products.RData'. When working with RStudio projects (.Rproj), this
- #' usually defaults to 'inst/external'.
- #' @param overwrite Logical. If \code{TRUE}, the initial '.RData' file located
- #' in 'path_ext' will be overwritten.
- #' @param ... Currently not used.
- #'
- #' @return
- #' A 'data.frame' which, for each product featured by \strong{MODIS}, holds
- #' information about available collections.
- #'
- #' @seealso
- #' \code{MODIS:::collections}.
- #'
- #' @author
- #' Florian Detsch
- #'
- #' @examples
- #' \dontrun{
- #' ## E.g., add collection of MODIS evapotranspiration product
- #' MODIS:::addCollection(product = "MOD16A2", collection = 105)
- #' }
- #'
- # #' @export addCollection
- #' @name addCollection
- addCollection <- function(product, collection = NA,
- path_ext = "inst/external", overwrite = FALSE, ...) {
-
- ## load list of current products
- load(paste0(path_ext, "/collections.RData"))
-
- ## id of last and new entry
- int_id_last <- ncol(MODIScollection)
- int_id_new <- int_id_last + 1
-
- ## if missing, append NA entries to 'collection'
- int_len <- length(collection)
- if (int_len < nrow(MODIScollection))
- collection[(int_len+1):nrow(MODIScollection)] <- NA
-
- ## add new collection
- MODIScollection <- cbind(MODIScollection, collection)
- names(MODIScollection)[int_id_new] <- product
- ## output storage
- if (overwrite) {
- file_out <- paste0(path_ext, "/collections.RData")
- save(MODIScollection, file = file_out)
- }
-
- ## return updated collections dataset
- return(MODIScollection)
- }
-
|