# root folder knitr::opts_knit$set(root.dir = params$wd) knitr::opts_chunk$set(error = TRUE, echo = FALSE) # log setup logger_name <- paste( 'LVL2', params$code, 'qc_units_process', 'rep_sfn_render', sep = '.' ) sapfluxnetQC1::log_sapfluxnet_setup( 'Logs/sapfluxnet.log', logger = logger_name, level = 'DEBUG' )
SITE: r params$code
# libraries library(sapfluxnetQC1) library(dplyr) library(DT) # data rem sfndata_rem <- df_read_SfnData( params$code, level = 'out_rem', units = NULL, parent_logger = logger_name ) # transformation list transf_list <- qc_transf_list( qc_transformation_vars(sfndata_rem, parent_logger = logger_name), parent_logger = logger_name ) rownames(transf_list) <- transf_list[['Transformation']] if (transf_list['sapf_units_to_plant', 'Available']) { # data sfndata_plant <- df_read_SfnData( params$code, level = 'unit_trans', units = 'plant', parent_logger = logger_name ) } else { sfndata_plant <- NULL } if (transf_list['sapf_units_to_sapwood', 'Available']) { # data sfndata_sapwood <- df_read_SfnData( params$code, level = 'unit_trans', units = 'sapwood', parent_logger = logger_name ) } else { sfndata_sapwood <- NULL } if (transf_list['sapf_units_to_leaf', 'Available']) { # data sfndata_leaf <- df_read_SfnData( params$code, level = 'unit_trans', units = 'leaf', parent_logger = logger_name ) } else { sfndata_leaf <- NULL } # env_data only once, but we dont know a priori from where, so ifs if (!is.null(sfndata_plant)) { if (transf_list['radiation_conversion', 'Available']) { old_ppfd_in <- get_env(sfndata_rem)[['ppfd_in']] if (is.null(old_ppfd_in)) {old_ppfd_in <- NA} old_sw_in <- get_env(sfndata_rem)[['sw_in']] if (is.null(old_sw_in)) {old_sw_in <- NA} radiation <- data.frame( old_ppfd_in = old_ppfd_in, old_sw_in = old_sw_in, new_ppfd_in = get_env(sfndata_plant)[['ppfd_in']], new_sw_in = get_env(sfndata_plant)[['sw_in']] ) } else { radiation <- data.frame( old_ppfd_in = old_ppfd_in, old_sw_in = old_sw_in ) } if (transf_list['VPD_calculation', 'Available']) { vpd <- data.frame( new_vpd = get_env(sfndata_plant)[['vpd']] ) } else { vpd <- data.frame( old_vpd = get_env(sfndata_rem)[['vpd']], new_vpd = get_env(sfndata_plant)[['vpd']] ) } if (transf_list['rh_calculation', 'Available']) { rh <- data.frame( new_rh = get_env(sfndata_plant)[['rh']] ) } else { rh <- data.frame( old_rh = get_env(sfndata_rem)[['rh']], new_rh = get_env(sfndata_plant)[['rh']] ) } if (transf_list['solar_time', 'Available']) { timestamp <- data.frame( TIMTESTAMP = get_timestamp(sfndata_plant), solarTIMESTAMP = get_solar_timestamp(sfndata_plant), new_ext_rad = get_env(sfndata_plant)[['ext_rad']] ) } else { timestamp <- data.frame( TIMTESTAMP = get_timestamp(sfndata_plant) ) } } else { if (!is.null(sfndata_sapwood)) { if (transf_list['radiation_conversion', 'Available']) { old_ppfd_in <- get_env(sfndata_rem)[['ppfd_in']] if (is.null(old_ppfd_in)) {old_ppfd_in <- NA} old_sw_in <- get_env(sfndata_rem)[['sw_in']] if (is.null(old_sw_in)) {old_sw_in <- NA} radiation <- data.frame( old_ppfd_in = old_ppfd_in, old_sw_in = old_sw_in, new_ppfd_in = get_env(sfndata_sapwood)[['ppfd_in']], new_sw_in = get_env(sfndata_sapwood)[['sw_in']] ) } else { radiation <- data.frame( old_ppfd_in = old_ppfd_in, old_sw_in = old_sw_in ) } if (transf_list['VPD_calculation', 'Available']) { vpd <- data.frame( new_vpd = get_env(sfndata_sapwood)[['vpd']] ) } else { vpd <- data.frame( old_vpd = get_env(sfndata_rem)[['vpd']], new_vpd = get_env(sfndata_sapwood)[['vpd']] ) } if (transf_list['rh_calculation', 'Available']) { rh <- data.frame( new_rh = get_env(sfndata_sapwood)[['rh']] ) } else { rh <- data.frame( old_rh = get_env(sfndata_rem)[['rh']], new_rh = get_env(sfndata_sapwood)[['rh']] ) } if (transf_list['solar_time', 'Available']) { timestamp <- data.frame( TIMTESTAMP = get_timestamp(sfndata_sapwood), solarTIMESTAMP = get_solar_timestamp(sfndata_sapwood), new_ext_rad = get_env(sfndata_sapwood)[['ext_rad']] ) } else { timestamp <- data.frame( TIMTESTAMP = get_timestamp(sfndata_sapwood) ) } } else { if (!is.null(sfndata_leaf)) { if (transf_list['radiation_conversion', 'Available']) { old_ppfd_in <- get_env(sfndata_rem)[['ppfd_in']] if (is.null(old_ppfd_in)) {old_ppfd_in <- NA} old_sw_in <- get_env(sfndata_rem)[['sw_in']] if (is.null(old_sw_in)) {old_sw_in <- NA} radiation <- data.frame( old_ppfd_in = old_ppfd_in, old_sw_in = old_sw_in, new_ppfd_in = get_env(sfndata_leaf)[['ppfd_in']], new_sw_in = get_env(sfndata_leaf)[['sw_in']] ) } else { radiation <- data.frame( old_ppfd_in = old_ppfd_in, old_sw_in = old_sw_in ) } if (transf_list['VPD_calculation', 'Available']) { vpd <- data.frame( new_vpd = get_env(sfndata_leaf)[['vpd']] ) } else { vpd <- data.frame( old_vpd = get_env(sfndata_rem)[['vpd']], new_vpd = get_env(sfndata_leaf)[['vpd']] ) } if (transf_list['rh_calculation', 'Available']) { rh <- data.frame( new_rh = get_env(sfndata_leaf)[['rh']] ) } else { rh <- data.frame( old_rh = get_env(sfndata_rem)[['rh']], new_rh = get_env(sfndata_leaf)[['rh']] ) } if (transf_list['solar_time', 'Available']) { timestamp <- data.frame( TIMTESTAMP = get_timestamp(sfndata_leaf), solarTIMESTAMP = get_solar_timestamp(sfndata_leaf), new_ext_rad = get_env(sfndata_leaf)[['ext_rad']] ) } else { timestamp <- data.frame( TIMTESTAMP = get_timestamp(sfndata_leaf) ) } } } } summary_table <- dplyr::bind_cols( timestamp, radiation, vpd, rh )
transf_list %>% DT::datatable(class = 'display compact', rownames = FALSE, filter = 'none', extensions = c('Scroller'), caption = 'Available transformations', options = list(dom = 'ti', columnDefs = list(list(className = 'dt-right', targets = 0), list(className = 'dt-center', targets = 1)), scroller = TRUE, scrollY = 450, scrollCollapse = TRUE)) %>% DT::formatStyle('Available', backgroundColor = styleEqual(c('FALSE', 'TRUE'), c('#d91e18', '#26a65b')))
summary_table %>% DT::datatable(class = 'display compact', rownames = FALSE, filter = 'none', extensions = c('Scroller'), caption = 'Summary', options = list(dom = 'ti', scroller = TRUE, scrollY = 450, scrollCollapse = TRUE))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.