Nothing
## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
## ----cran, eval = FALSE-------------------------------------------------------
# install.packages("fluxfixer")
## ----github, eval = FALSE-----------------------------------------------------
# # install.packages("remotes")
# remotes::install_github("yhata86/fluxfixer")
## ----setup, message = FALSE, warning = FALSE----------------------------------
library(fluxfixer)
## ----vign_raw-----------------------------------------------------------------
## Load sample data
data("dt_noisy")
## ----vign_checkraw, eval = FALSE----------------------------------------------
# ## Just for the visualization
# # install.packages("ggplot2)
# library(ggplot2)
#
# ## Set the period you want to check
# time_head <- as.POSIXct("2012/09/01 00:30", tz = "Etc/GMT-8")
# time_tail <- as.POSIXct("2013/09/01 00:00", tz = "Etc/GMT-8")
#
# dt_noisy %>%
# dplyr::mutate(dplyr::across(tidyselect::where(is.numeric),
# ~dplyr::na_if(., -9999))) %>%
# ggplot2::ggplot()+
# scale_x_datetime(limits = c(time_head, time_tail))+
# geom_point(aes(time, dt), col = "royalblue")
## ----vign_auto, eval = FALSE--------------------------------------------------
# ## Specify the period of the short-term drift
# time_drft_head <- as.POSIXct("2013/05/14 13:30", tz = "Etc/GMT-8")
# time_drft_tail <- as.POSIXct("2013/05/17 15:00", tz = "Etc/GMT-8")
#
# ## Specify the sensor replacement timing
# time_prd_tail <- as.POSIXct("2013/05/14 13:00", tz = "Etc/GMT-8")
#
# ## Run all processes automatically
# result <-
# run_fluxfixer(df = dt_noisy,
# colname_time = "time",
# colname_target = "dt",
# vctr_time_drft_head = time_drft_head,
# vctr_time_drft_tail = time_drft_tail,
# vctr_time_prd_tail = time_prd_tail,
# detrend = TRUE)
## ----vign_checkresult, eval = FALSE-------------------------------------------
# ## Set the period you want to check
# time_head <- as.POSIXct("2012/09/01 00:30", tz = "Etc/GMT-8")
# time_tail <- as.POSIXct("2013/09/01 00:00", tz = "Etc/GMT-8")
#
# result %>%
# dplyr::mutate(dplyr::across(tidyselect::where(is.numeric),
# ~dplyr::na_if(., -9999))) %>%
# ggplot2::ggplot()+
# scale_x_datetime(limits = c(time_head, time_tail))+
# geom_point(aes(time, raw), col = "royalblue", alpha = 0.01)+
# geom_point(aes(time, processed), col = "orange", alpha = 0.1)
## ----vign_loadagain-----------------------------------------------------------
## Load sample data
data("dt_noisy")
## ----vign_al, eval = FALSE----------------------------------------------------
# ## Conduct the absolute limit test
# df_all <-
# dt_noisy %>%
# dplyr::mutate(dt_al = check_absolute_limits(vctr_target = dt))
## ----vign_sdc, eval = FALSE---------------------------------------------------
# ## Specify the period of the short-term drift
# time_drft_head <- as.POSIXct("2013/05/14 13:30", tz = "Etc/GMT-8")
# time_drft_tail <- as.POSIXct("2013/05/17 15:00", tz = "Etc/GMT-8")
#
# ## Conduct the short-term drift correction
# df_all <-
# df_all %>%
# dplyr::mutate(dt_sdc = modify_short_drift(vctr_time = time,
# vctr_target = dt_al,
# vctr_time_drft_head = time_drft_head,
# vctr_time_drft_tail = time_drft_tail))
## ----vign_zs, eval = FALSE----------------------------------------------------
# ## Specify the sensor replacement timing
# time_prd_tail <- as.POSIXct("2013/05/14 13:00", tz = "Etc/GMT-8")
#
# ## Conduct the Z-score outlier removal
# df_z <-
# remove_zscore_outlier(vctr_time = df_all$time,
# vctr_target = df_all$dt_sdc,
# vctr_time_prd_tail = time_prd_tail)
#
# df_all <-
# df_z %>%
# dplyr::select(z_cleaned, avg_cleaned, sd_cleaned) %>%
# dplyr::bind_cols(df_all, .)
## ----vign_rf, eval = FALSE----------------------------------------------------
# ## Conduct the random forest outlier removal
# df_rf <-
# remove_rf_outlier(df = df_all,
# colname_label = "z_cleaned",
# vctr_colname_feature = c("p", "sw_in", "ta", "vpd", "ws", "swc"))
#
# df_all <-
# df_all %>%
# dplyr::mutate(z_rf = df_rf$stats$cleaned)
## ----vign_crs, eval = FALSE---------------------------------------------------
# ## Calculate the reference values of average and standard deviation
# vctr_stats_ref <-
# data.frame(z_target = df_all$z_rf,
# avg_target = df_z$avg_cleaned,
# sd_target = df_z$sd_cleaned) %>%
# dplyr::mutate(target = ifelse(z_target != -9999 &
# avg_target != -9999 &
# sd_target != -9999,
# z_target * sd_target + avg_target,
# -9999)) %>%
# dplyr::pull(target) %>%
# calc_ref_stats(vctr_time = df_all$time,
# vctr_target = .,
# vctr_time_prd_tail = time_prd_tail)
## ----vign_gf, eval = FALSE----------------------------------------------------
# ## Fill all the missing values by the random forest model
# df_gf <-
# fill_gaps(df = df_all,
# colname_label = "z_rf",
# vctr_colname_feature = c("p", "sw_in", "ta", "vpd", "ws", "swc"))
#
# df_all <-
# df_all %>%
# dplyr::mutate(z_gf = df_gf$stats$gapfilled)
## ----vign_rt, eval = FALSE----------------------------------------------------
# ## Retrieve the time series in its original units
# df_all <-
# df_all %>%
# dplyr::mutate(dt_processed = retrieve_ts(vctr_target_z = df_all$z_gf,
# vctr_target_sd = df_all$sd_cleaned,
# detrend = TRUE,
# avg_ref = vctr_stats_ref[1]))
## ----vign_dtmax, eval = FALSE-------------------------------------------------
# ## Calculate dTmax by the SP and PD methods
# df_dtmax <-
# calc_dtmax(vctr_time = df_all$time,
# vctr_dt = df_all$dt_processed,
# vctr_radi = df_all$sw_in,
# method = c("sp", "pd"))
#
# df_all <-
# df_dtmax %>%
# dplyr::select(dtmax_sp, dtmax_pd) %>%
# dplyr::bind_cols(df_all, .)
## ----vign_fd, eval = FALSE----------------------------------------------------
# ## Calculate Fd using the dTmax estimated by the SP and PD methods
# df_all <-
# df_all %>%
# dplyr::mutate(fd_sp = calc_fd(vctr_dt = dt_processed,
# vctr_dtmax = dtmax_sp),
# fd_pd = calc_fd(vctr_dt = dt_processed,
# vctr_dtmax = dtmax_pd))
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.