#' @name setting
#' @title setting
NULL
# phenofit parameters
options.phenofit <- list(
file_site = "",
file_veg_text = "",
file_veg_rda = "",
file_type = "RData",
nptperyear = NA_real_,
ymin = 0,
var_y = "y",
is_QC2w = FALSE,
var_qc = "", # SummaryQA
qcFUN = "", # qc_summary
site = "",
# growing season dividing parameters
calendarYear = FALSE,
FUN_season = "season_mov",
FUN_rough = "wWHIT",
frame = NA_real_,
lambda = 15, # NA_real_
nf = 3,
wFUN_rough = "wKong",
iters_rough = 4,
max_extend_month_rough = 2,
r_max = 0.2,
r_min = 0.0,
rtrough_max = 0.6,
# fine fitting parameters
FUN_fine = "Beck",
wFUN_fine = "wKong",
iters_fine = 2,
max_extend_month_fine = 2,
nextend_fine = 2,
use.rough = FALSE,
# phenology extraction
meths_pheno = ""
)
#' get parameters of phenofit shinyapp
#'
#' @param options options of phenofit needed to export.
#' @param others options in others will override `options`.
#' @param ... ignored.
#'
#' @importFrom jsonlite write_json read_json
#' @export
#' @rdname setting
#'
#' @examples
#' \dontrun{
#' pars = get_setting(options)
#' print(str(pars))
#' write_json(setting, "phenofit_setting.json", pretty = TRUE)
#' }
setting.get <- function(options, others = NULL, ...){
if (missing(options)) {
options <- options.phenofit
} else {
options <- list(
file_site = options$file_site,
file_veg_text = options$file_veg_text,
file_veg_rda = options$file_veg_rda,
file_type = options$file_type,
nptperyear = options$nptperyear,
ymin = options$ymin,
var_y = options$var_y,
is_QC2w = options$is_QC2w,
var_qc = options$var_qc, # SummaryQA
qcFUN = options$qcFUN, # qc_summary
site = options$site,
# growing season dividing parameters
calendarYear = options$calendarYear,
FUN_season = options$FUN_season,
FUN_rough = options$FUN_rough,
frame = options$frame,
lambda = options$lambda,
nf = options$nf,
wFUN_rough = options$wFUN_rough,
iters_rough = options$iters_rough,
max_extend_month_rough = options$max_extend_month_rough,
r_max = options$r_max,
r_min = options$r_min,
rtrough_max = options$rtrough_max,
# fine fitting parameters
FUN_fine = options$FUN_fine,
wFUN_fine = options$wFUN_fine,
iters_fine = options$iters_fine,
max_extend_month_fine = options$max_extend_month_fine,
nextend_fine = options$nextend_fine,
use.rough = options$use.rough,
# phenology extraction
meths_pheno = options$meths_pheno
)
}
# inorder to replace variables in shinyFiles
names <- names(others)
I_raw <- match(names(others), names(options))
I_nona <- which(!is.na(I_raw))
options[I_raw[I_nona]] <- others[I_nona]
return(options)
# TRS_sos
# TRS_eos
}
#' @param file file path of phenofit setting file (json).
#'
#' @export
#' @rdname setting
setting.read <- function(file = "phenofit_setting.json"){
if (file.exists(file)) {
read_json(file) %>% map(unlist)
} else {
warning(sprintf('[w] setting file: %s not exist!', file))
}
}
#' @export
#' @rdname setting
setting.write <- function(options, file = "phenofit_setting.json"){
write_json(options, file, pretty = TRUE)
}
#' @export
#' @rdname setting
setting.update <- function(options){
I <- match(names(options), names(options.phenofit))
options.phenofit[I] <- options
return(options.phenofit)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.