Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
rm(list=ls())
## Step 0:installation requirements packages
# install devtools
install.packages("devtools")
library(devtools)
# install tidykml
devtools::install_github("briatte/tidykml")
library(tidykml)
# install gdxrrw
# 1: download from website: https://support.gams.com/gdxrrw:interfacing_gams_and_r
# 2: install package
install.packages("D:/public/yang/CAPRIR_Project/gdxrrw_1.0.5.zip", repos = NULL, type="source")
# or install from github
devtools::install_github("GAMS-dev/gdxrrw/gdxrrw")
library(gdxrrw)
# install capriR package
# remotes::install_github("trialsolution/caprir", force = TRUE)
devtools::install_git("https://git-dmz.thuenen.de/mindstep/caprir.git")
library(caprir)
devtools::install_git("https://git-dmz.thuenen.de/mindstep/capriv.git")
library(capriv)
#
# requiredPackages_Github <- c("briatte/tidykml", "GAMS-dev/gdxrrw/gdxrrw")
#
#
# requiredPackages_Gitlab <- "https://git-dmz.thuenen.de/mindstep/caprir.git"
# # "https://git-dmz.thuenen.de/mindstep/capriv.git")
# load packages
requiredPackages = c('caprir','capriv','gdxrrw', 'usethis','hablar', 'tibble',
'networkD3','readxl','tidyr','dplyr','reshape2',
'data.table','plotly', 'gt', 'ggtext', 'rlang', 'Hmisc','webshot')
for(p in requiredPackages){
if(!require(p,character.only = TRUE))install.packages(p)
library(p,character.only = TRUE)}
# set gams path, if necessary
gamsPath <- "D://gams//win64//24.9"
igdx(gamsPath)
# set currently working directory
#setwd("D:/public/yang/CAPRIR_Project/caprir_yang")
gdx.dir <- paste0(getwd(), "/inst/extdata/gdx")
# define gdx file name for reading
sanky_file1 <- "res_2_1230cap_after_2014_refdefaultA" # refdefautA
sanky_file2 <- "res_2_1230fta_import_bandefaultA" # bandefaultA
# loaded gdx files and saved in dataout
outdata.dir <- paste0(getwd(), "/inst/outdata")
prod_list = c("WHEA","MAIZ","BARL","RAPE","SUNF","PULS",
"DDGS","SUGR","ACQU", "SOYC", "OCER","SOYA",
"RAPO","POUM","RAPC","SUNC","BIOE","SOYO",
"RICE", "PULS", "SUGA", "SUNO")
balance_detailed_Baseline <- convert_balance_detailed("EU",
prod_list,
sanky_file1,
folder = gdx.dir)
balance_detailed_Scenario <- convert_balance_detailed("EU",
prod_list,
sanky_file2,
folder = gdx.dir)
# biofuels = T
baseline_biofuels <- prelinks(balance_detailed = balance_detailed_Baseline, p_biofuels = T)
scenario_biofuels <- prelinks(balance_detailed = balance_detailed_Scenario, p_biofuels = T)
# biofuels = F
baseline <- prelinks(balance_detailed = balance_detailed_Baseline, p_biofuels = FALSE)
scenario <- prelinks(balance_detailed = balance_detailed_Scenario, p_biofuels = FALSE)
# get links and nodes for different selected market -------------------
# biofuels, baseline
biofuels_ln_baseline <- links_nodes(baseline_biofuels, scenario_biofuels, p_baseline =TRUE, fixedNodePosition = TRUE)
# biofuels, scenario
biofuels_ln <- links_nodes(baseline_biofuels, scenario_biofuels, p_baseline = FALSE,fixedNodePosition = TRUE)
# others, baseline
ln_baseline <- links_nodes(baseline, scenario, TRUE,fixedNodePosition = TRUE)
# others, scenario
ln <- links_nodes(baseline, scenario, FALSE,fixedNodePosition = TRUE)
# sankey plots ----------------------
# one sankey diagram in one page ----
# biofuels, baseline,
capriv::plot_sankey(biofuels_ln_baseline,
p_baseline = TRUE,
png = FALSE)
# biofuels and scenario
capriv::plot_sankey(biofuels_ln,
p_baseline = FALSE,
png = FALSE)
# cereals, sugar .. and baseline
capriv::plot_sankey(ln_baseline,
p_baseline =TRUE,
png = FALSE) ###
# cereals, sugar .. and scenario
capriv::plot_sankey(ln,
p_baseline = FALSE,
png = FALSE)
# two sankey diagrams in one page ----
# combination two data frames
cake_oil_m <- combine_dfs(biofuels_ln_baseline, biofuels_ln)
capriv::plot_sankey(cake_oil_m,
p_baseline = TRUE,
png = FALSE)
cereals <- combine_dfs(ln_baseline, ln)
capriv::plot_sankey(cereals,
p_baseline = TRUE,
png = TRUE)
# make beautiful tables -----
# oil cake balance market ----
oil_cake_market_list= c("Rape seed",
"Soya seed",
"Sunflower seed",
"Rape seed oil",
"Soya oil",
"Sunflower seed oil",
"Soya cake",
"Sunflowe seed cake",
"Rape seed cake",
"Destilled dried grains from bio-ethanol processing",
"Pulses",
"Bio ethanol")
# basline: load balance market.
b_oil_cake <- filter_market_balance(balance_detailed_Baseline, oil_cake_market_list)
# Scenario: load balance market.
s_oil_cake <- filter_market_balance(balance_detailed_Scenario, oil_cake_market_list)
# calculate the absolute and percentage changes between baseline and scenario.
oil_cake <- cal_percentage_change(b_oil_cake,s_oil_cake)
# make a nice table
oil_cake_tb <- nicetable(oil_cake,"baseline for oil and cake markets") %>%
tab_footnote(
locations = cells_stub(rows = c(2)),
footnote = md("Destilled dried grains from bio-ethanol processing")
)%>%
gtsave(
"oil_cake_tb.html", inline_css = FALSE,
path = outdata.dir)
webshot(paste0(outdata.dir,"/oil_cake_tb.html"),paste0(outdata.dir,"/png/","oil_cake_tb.png"),
vwidth = 1100)
# cereals, meate.. balance market ----
cereals_list <- c("Barley",
"Grain maize",
"Other cereals",
"Wheat",
"Poultry meat",
"Rice milled",
"Sugar","Fish and other acquatic products")
# basline: load balance market.
b_cereals <- filter_market_balance(balance_detailed_Baseline, cereals_list)
# Scenario: load balance market.
s_cereals <- filter_market_balance(balance_detailed_Scenario, cereals_list)
# calculate the absolute and percentage changes between baseline and scenario.
cereals <- cal_percentage_change(b_cereals,s_cereals)
cereals_tb <- nicetable(cereals,"baseline for cereals, sugar, and meat markets") %>%
gtsave(
"cereals_tb.html", inline_css = FALSE,
path = outdata.dir)
webshot(paste0(outdata.dir,"/cereals_tb.html"),paste0(outdata.dir,"/png/","cereals_tb.png"),
vwidth = 1100)