Chapter 14 MEA electricity calculation
This section explains the MEA electricity calculation. Existing VSPPs electricity generation are needed. Such a generation is obtained from R code chunks provided in Chapter 6.
This study merges 2 MEA’s electricity load data sets as follows:
- A budget load 2566–2567 (2023–2024)
- An electricity load from the NIDA study approved on 25 August 2022
The budget load provides a required electricity demand from the MEA areas. It covers from EGAT sales to total net generation for 3 utilities’ power system. An estimated electricity generation ranges from 2023-2028.
The MEA electricity load from the NIDA study is merged to the budget load from 2029 onward.
R code chunks to extract the budget load and the NIDA load are given below.
- The budget load 2566–2567 (2023–2024) code chunk
b_mea_ene <-
read_excel("raw_data/01 EGAT_20Oct2022_งบ66 67_Final_Sent อศง.xlsx",
sheet = "MEA",
range = "A8:N27",
col_names = c("sector","a", 2017:2028)) %>%
select(!a) %>%
drop_na() %>%
pivot_longer(-sector, names_to = "year", values_to = "mea_gwh") %>%
mutate(year = as.numeric(year),
year_th = as.numeric(year) + 543) %>%
filter(sector == "MEA's System Requirement")
- The electricity load from the NIDA study approved on 25 August 2022
pdp2022_mea_ene <-
read_excel("raw_data/93 EGAT_25Aug2022_13 Energy ภาพรวม NIDA_BAU_ND_EE70__Sent.xlsx",
sheet = "MEA",
range = "A8:AB33",
col_names = c("sector","a", 2012:2037)) %>%
select(!a) %>%
drop_na() %>%
pivot_longer(-sector, names_to = "year", values_to = "mea_gwh") %>%
mutate(year = as.numeric(year),
year_th = as.numeric(year) + 543) %>%
filter(sector == "MEA's System Requirement")
- Merge 2 datasets
The
rbind
function combined both the MEA’s budget load and the NIDA’s load.
The MEA electricity requirement increases from 53,290 GWh in 2022 to 71,127 GWh in 2037. It increases 1.943% annually (see Figure 14.1).
14.1 VSPP in MEA in PDP2018REV1
- Extract VSPP data
The electricity generation from VSPP in the MEA area was divided into existing VSPPs and newly VSPP contracts. Solar and biomass for communities were added in a newly VSPP category.
mea_vspp_pdp2018r1 <-
read_excel("raw_data/01 Load_PDP2018 ปรับ VSPP_13Jan2020_Final (PDP2018R1).xlsx",
sheet = "I_VSPP",
range = "B29:L51",
col_names = c("year","solar", "wind", "hydro", "biomass", "biogas", "waste", "crop", "geothermal", "re_eeothers", "cogen")) %>%
replace(is.na(.), 0 ) %>%
mutate(total = rowSums(across(c(solar:cogen)))) %>%
pivot_longer(-year, names_to = "fuel", values_to = "mea_gwh") %>%
mutate(year_th = as.numeric(year) + 543)
An electricity generation from existing VSPP in the MEA areas is from cogeneration power plants, hydropower, solar power, waste power plants. Total generation would reach its peak 235 GWh in 2017. It would remain 193 GWh from 2019-2037 (see Figure 14.2).
An electricity generation from newly VSPP in the MEA areas is from biogas, biomass hydropower, solar power for community, waste power plants and energy efficiency improvement. Total generation would be almost 10,000 GWh in 2037 (see Figure 14.3).
- Select and combine MEA vspp and new vspp from PDP2018REV1
# Select MEA vspp and new vspp from PDP2018REV1 ####
tot_mea_vspp_pdp2018r1 <-
mea_vspp_pdp2018r1 %>%
select(year,fuel, mea_gwh) %>%
filter(fuel == "total")
tot_mea_newvspp_pdp2018r1 <-
mea_newvspp_pdp2018r1 %>%
select(year,fuel, mea_gwh) %>%
filter(fuel == "total")
tot_mea_vspp_pdp2018rev1 <-
tot_mea_vspp_pdp2018r1 %>%
mutate(tot_mea_gwh = mea_gwh + tot_mea_newvspp_pdp2018r1$mea_gwh) %>%
select(!mea_gwh)
14.1.1 Calculate EGAT sale from PDP2018REV1
The left_join
function is used to combine a data frame and a calculated electricity sale from EGAT to MEA. It is calculated by a following equation.
\[\begin{equation} EGTSLE_{MEA,t} = MEAReq_{t} - VSPP_{MEA,t} \tag{14.1} \end{equation}\]
egt_sle_mea_pdp2018r1 <-
left_join(newmea_ene,
tot_mea_vspp_pdp2018rev1%>%
select(year,tot_mea_gwh) %>%
filter(year >= 2019)) %>%
mutate(egatsale = mea_gwh - tot_mea_gwh)
14.2 VSPP in MEA region from PDP2023 case7
- Extract VSPP data
tot_mea_vspp_pdp2022c7 <-
read_excel("raw_data/Case7_VSPP+DEDE+NVSPP_เพิ่มภาค.xlsx",
sheet = "MAC",
range = "A28:Q49",
col_names = c("fuel", 2022:2037)) %>%
replace(is.na(.), 0 ) %>%
pivot_longer(-fuel, names_to = "year", values_to = "mea_gwh") %>%
mutate(year = as.numeric(year)) %>%
pivot_wider(names_from = fuel, values_from = mea_gwh) %>%
rename_all(tolower) %>%
pivot_longer(-year, names_to = "fuel", values_to = "tot_mea_gwh") %>%
filter(fuel == "total")
- Join an electricity generation from VSPP in the MEA area and the PDP2022 case 7. The
full_join
function is used.
tot_mea_vspp_ene_pdp2022c7 <-
full_join(mea_vspp_ene_ext %>%
filter(year >= 2015,
fuel == "tot_vspp_gwh") %>%
select(year, year_th, mea_vspp_gwh),
tot_mea_vspp_pdp2022c7%>%
select(year,tot_mea_gwh) %>%
filter(year >= 2019) ,
by= c("mea_vspp_gwh" = "tot_mea_gwh",
"year" = "year")) %>%
select(!year_th)
14.2.1 Calculate EGAT sale from PDP2022 Case 7
The left_join
function is used to combine a data frame and a calculated electricity sale from EGAT to MEA. It is calculated by using equation (14.1).
14.3 Calculate electricity requirement in the MEA area
- Calculating for the worst case
### Calculating for worst case
### Calculation for MEA electricity demand
newmea_ene_req <-
newload3u %>%
mutate(cumulative = lag(cumprod(grw_mea_dmd$growth),n = 0,default = 1)) %>%
mutate(mea_ene_req_gwh = cumulative * mea_ene_latest) %>%
select(year_th, year, mea_ene_req_gwh) %>%
mutate(tot_mea_vspp_pdp2018rev1 %>%
filter(year >= 2019)%>%
select(-year, -fuel)) %>%
select(year, year_th, mea_ene_req_gwh, mea_vspp_pdp2018r1 = tot_mea_gwh) %>%
mutate(egt_sle_mea_worst_case = mea_ene_req_gwh - mea_vspp_pdp2018r1)