Assemble completed phi (exergy-to-energy ratio) tables
assemble_phi_u_tables.Rd
This function is used in the drake workflow to assemble completed phi (exergy-to-energy ratio) tables given a set of phi tables read from machine data files and a phi constants table. The algorithm gives priority in this order:
phi values from the
incomplete_phi_u_table
argumentphi values from climatic temperatures
phi values from the
phi_constants_table
argument
Usage
assemble_phi_u_tables(
incomplete_phi_u_table,
phi_constants_table,
completed_efficiency_table = NULL,
countries,
years = NULL,
country = IEATools::iea_cols$country,
year = IEATools::iea_cols$year,
product = IEATools::iea_cols$product,
machine = IEATools::template_cols$machine,
quantity = IEATools::template_cols$quantity,
phi_u = IEATools::template_cols$phi_u,
.values = IEATools::template_cols$.values,
eu_product = IEATools::template_cols$eu_product,
eta_fu_source = IEATools::template_cols$eta_fu_source,
phi_colname = IEATools::phi_constants_names$phi_colname,
phi_source_colname = IEATools::phi_constants_names$phi_source_colname,
is_useful = IEATools::phi_constants_names$is_useful_colname,
eta_fu_tables = PFUPipeline::phi_sources$eta_fu_tables,
phi_constants = PFUPipeline::phi_sources$phi_constants
)
Arguments
- incomplete_phi_u_table
A data frame of phi values read from machine efficiency and phi data files. This data frame can be "incomplete," i.e., it can be missing phi values. The phi values from
phi_constants_table
will be used instead.- phi_constants_table
A data frame of constant phi values with reasonable default values for all energy products.
- completed_efficiency_table
A data frame containing completed efficiency tables. This data frame identifies all useful products for which we need phi values. Default is
NULL
, meaning that missing (NA
) values inincomplete_phi_u_table
should be completed.- countries
A vector of countries for which completed phi tables are to be assembled.
- years
The years for which analysis is desired. Default is
NULL
, meaning analyze all years.- country, year, product
See
IEATools::iea_cols
.- machine, quantity, phi_u, .values, eu_product, eta_fu_source
- phi_colname, phi_source_colname, is_useful
- eta_fu_tables, phi_constants
Details
Note that the needed phi values are taken from completed_efficiency_table
(when not NULL
).
If completed_efficiency_table
is NULL
,
the needed phi values are taken from incomplete_phi_u_table
,
meaning that any empty (NA
) phi values are obtained from climatic temperatures or phi_constants_table
.
Examples
library(dplyr)
#>
#> Attaching package: ‘dplyr’
#> The following object is masked from ‘package:testthat’:
#>
#> matches
#> The following objects are masked from ‘package:stats’:
#>
#> filter, lag
#> The following objects are masked from ‘package:base’:
#>
#> intersect, setdiff, setequal, union
library(IEATools)
library(magrittr)
#>
#> Attaching package: ‘magrittr’
#> The following objects are masked from ‘package:testthat’:
#>
#> equals, is_less_than, not
phi_constants_table <- IEATools::load_phi_constants_table()
# Load a phi_u_table.
phi_table <- IEATools::load_eta_fu_data() %>%
# Convert to tidy format.
dplyr::mutate(
"{IEATools::template_cols$maximum_values}" := NULL,
"{IEATools::iea_cols$unit}" := NULL
) %>%
tidyr::pivot_longer(cols = IEATools::year_cols(.),
names_to = IEATools::iea_cols$year,
values_to = IEATools::template_cols$.values) %>%
# Convert to a table of phi values only
dplyr::filter(.data[[IEATools::template_cols$quantity]] == IEATools::template_cols$phi_u)
# Set a value to NA (Charcoal stoves, MTH.100.C, GHA, 1971) in the phi table.
incomplete_phi_table <- phi_table %>%
dplyr::mutate(
"{IEATools::template_cols$.values}" := dplyr::case_when(
.data[[IEATools::iea_cols$country]] == "GHA" &
.data[[IEATools::iea_cols$year]] == 1971 &
.data[[IEATools::template_cols$machine]] == "Charcoal stoves" ~ NA_real_,
TRUE ~ .data[[IEATools::template_cols$.values]]
)
)
# Run through the assemble_phi_u_tables function
completed_phi_u_table <- assemble_phi_u_tables(incomplete_phi_table,
phi_constants_table,
countries = "GHA")
# Show that Charcoal stoves was filled
completed_phi_u_table %>%
dplyr::filter(.data[[IEATools::template_cols$machine]] == "Charcoal stoves")
#> # A tibble: 2 × 10
#> Country Method Energy.type Last.stage Machine Eu.product Quantity Year
#> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
#> 1 GHA PCM E Final Charcoal stov… MTH.100.C phi.u 2000
#> 2 GHA PCM E Final Charcoal stov… MTH.100.C phi.u 1971
#> # ℹ 2 more variables: .values <dbl>, phi.source <chr>