-
Notifications
You must be signed in to change notification settings - Fork 0
/
default_data.jl
145 lines (129 loc) · 7.53 KB
/
default_data.jl
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
# ------------------------------------------------------------------------------
# BASE PARAMETERS/SETTINGS
# Init values of state variables...
# Sources:
# - Forest area (M ha): FAO FRA 2020 report, Brazil (https://www.fao.org/3/ca9976en/ca9976en.pdf), p 24
# - Forest volumes (M m³): idem, p 44
# - Agricultural area (M ha): World bank 2020, https://data.worldbank.org/indicator/AG.LND.AGRI.K2?locations=BR
TOT_LAND_INCL_OTH_LAND = 8_515_514 *100 / 1_000_000 # [From km^2 to Mha]
TOT_LAND = (485_396_011 + 11_223_609 + 2_387_471 * 100) / 1_000_000
F₀ = 485_396_011.0 / 1_000_000 # Init Primary Forest area [M ha]
S₀ = 11_223_609 / 1_000_000 # Init Secondary Forest area [M ha]
A₀ = 2_387_471 * 100 / 1_000_000 # Init Agricultural area [M ha]
V₀ = 3_056_570_000 / 1_000_000 # Init timber volumes of secondary forests [M m^3]
d₀ = F₀/1000 # Init prim forest harvesting area (used only to compute parameter and start value in the sense of optimisation start) [M ha]
h₀ = S₀/100 # Init sec forest harvesting area (used only to compute parameter and start value in the sense of optimisation start) [M ha]
r₀ = 0.5 * d₀ # Init sec forest regeneration area (used only to compute parameter and start value in the sense of optimisation start) [M ha]
# Parameters
# Sources:
# - bwood_c1(USD/m^3): production and export value from FAOSTAT 2020 https://www.fao.org/faostat/en/#data/FO
# - bagr_c1 (USD/ (ha y⁻¹) ): FAOSTAT, Gross Production Value (current US$), https://www.fao.org/faostat/en/#data/QV
# - benv_c1 (USD/ (ha y⁻¹) ): Costanza 1997, from https://www.fair-and-precious.org/en/news/349/tropical-forests-the-facts-and-figures
_tot_vol = 121_503_650_000 / 1_000_000 # Total forest tibmer volumes [M m^3] (not used in the model, only to compute parameters)
_h_vol = 290_586_490 / 1_000_000 # Total "produced" timber volumes [M m^3] (not used in the model, only to compute parameters)
_agr_unit_value = 144_160_490 *1000 / (A₀* 1_000_000) # $/ha from the value of agr production in K$
D = (_tot_vol - V₀) / F₀ # Density of the primary forest (constant) [m^3/ha]
σ = 0.04 # Discount rate
K = 600 # Maximum density of the secondary forest (i.e. carrying capacity)
γ = 0.1 # Growth rate of the logistic function in terms of density
co2seq = 0.907 # Tons of CO2 eq sequestrated by 1 cubic meter of wood (source: mean of Lobianco et oth. (2016) "Carbon mitigation potential of the French forest sector under threat of combined physical and market impacts due to climate change", Table 2)
co2sub = 0.264+0.579 # Tons of CO2 eq substituted (resp. energy and material) by 1 cubic meter of timber (source: mean of Lobianco et oth. (2016) "Carbon mitigation potential of the French forest sector under threat of combined physical and market impacts due to climate change", Table 2)
# --------
benv_c2 = 1/2 # Power of the environmental benefit
"""
Multiplier of the environmental benefits
benv_c1 is calibrated such that:
ben_env = (0.3*2700) * F₀
That is, the environmental benefits is equal to the €/hectar value from literature multiplied the initial area (in Mha),
Hence it is such that ben_env is in M\$
"""
benv_c1 = 0.3*2700 * F₀ /(F₀^(benv_c2))
# --------
bagr_c2 = 1/2 # Power of the agricultural benefits
"""
Multiplier of the agricultural benefits
bagr_c1 is calibrated such that:
ben_agr = (603) * A₀
That is, the agricultural benefits is equal to the €/hectar value from value of the agr production multiplied the initial area (in Mha),
Hence it is such that ben_agr is in M\$
"""
bagr_c1 = _agr_unit_value * A₀ / (A₀^bagr_c2) # Multiplier of the agricultural benefits
# --------
bwood_c2 = 1/2 # Power of the wood-use benefits
"""
Multiplier of the wood benefits
bwood_c1 is calibrated such that:
ben_wood = (300) * hV
That is, the wood benefits is equal to the \$/m^3 value from export value multiplied the initial harvested values (in Mm^3),
Hence it is such that ben_wood is in M\$
"""
bwood_c1 = 1.5*100.756304548882 * (d₀*D + h₀*V₀/S₀) / ((d₀*D + h₀*V₀/S₀)^bwood_c2 ) # Multiplier of the wood-use benefits
# --------
bc_seq_c2 = 0 # Carbon (seq) price growth rate
"""
Multiplier of the carbon (sequestered) benefits
bc_seq_c1 is calibrated such that:
bc_seq_c1 = (100) * ΔV
That is, the carbon benefits is equal to the \$/m^3 value of (assumed) carbon value multiplied the initial ΔV, the total
delta forest volumes, i.e. natural growt of secondary forest less harvested secondary forest less harvested primary
forest volumes (in Mm^3)
Hence it is such that ben_carbon is in M\$
Note that here we have:
bc_seq_c1*exp(bc_seq_c2 * t) * ΔV [M\$] = 100 * ΔV [M\$]
So ΔV cancel it out and being interested in start time, so does exp(bc_seq_c2 * t)
"""
bc_seq_c1 = 0.0 #100 # Carbon price init price
# --------
bc_sub_c2 = 0 # Carbon price growth rate
"""
Multiplier of the carbon (substituted) benefits
bc_seq_c1 is calibrated such that:
bc_seq_c1 = (100) * ΔV
That is, the carbon benefits is equal to the \$/m^3 value of (assumed) carbon value multiplied the initial ΔV, the total
delta forest volumes, i.e. natural growt of secondary forest less harvested secondary forest less harvested primary
forest volumes (in Mm^3)
Hence it is such that ben_carbon is in M\$
Note that here we have:
bc_seq_c1*exp(bc_seq_c2 * t) * ΔV [M\$] = 100 * ΔV [M\$]
So ΔV cancel it out and being interested in start time, so does exp(bc_seq_c2 * t)
"""
bc_sub_c1 = 0.0 #100 # Carbon price init price
# --------
chpf_c2 = 1 #2 1 # Power of the harvesting costs of primary forest (harvested area)
chpf_c3 = -4 #-16 -2 # Power of the harvesting costs of primary forest (primary forest area)
"""
Multiplier of the primary forest harvesting costs
chpf_c1 is calibrated such that:
cost_pfharv = (10) * hv_pf
That is, the timber harvesting cost of primary forests is equal to the \$/m^3 cost (assumed) multiplied by the harvested
volumes of primary forest (in Mm^3)
Hence it is such that cost_pfharv is in M\$
"""
chpf_c1 = 10 * (d₀*D) / ((d₀*D)^chpf_c2 * F₀^chpf_c3) # Multiplier of the harvesting costs of primary forest
# --------
chsf_c2 = 1 # Power of the harvesting costs of secondary forest
"""
Multiplier of the secondary forest harvesting costs
chsf_c1 is calibrated such that:
cost_sfharv = (5) * hV_sf
That is, the timber harvesting cost of secondary forests is equal to the \$/m^3 cost (assumed) multiplied by the harvested
volumes of secondary forest (in Mm^3)
Hence it is such that cost_sfharv is in M\$
"""
chsf_c1 = 5.0 * (h₀*V₀/S₀) / ((h₀*V₀/S₀)^chsf_c2) # Multiplier of the harvesting costs of secondary forest
# --------
crsf_c2 = 1 # Power of the regeneration costs of secondary forest
"""
Multiplier of the secondary forest regeneration costs
crsf_c1 is calibrated such that:
cost_sfreg = 50 * (r+h)
That is, the forest regeneration cost of secondary forests is equal to the \$/ha cost (assumed) multiplied by the
regeneration area of secondary forest (new regeneration from ex-primary forest area plus post-harvesting regeneration, in Mha)
Hence it is such that cost_sfreg is in M\$
"""
crsf_c1 = 50 * (r₀+h₀) / ((r₀+h₀)^crsf_c2) # Multiplier of the regeneration costs of secondary forest
# Options
optimizer = Ipopt.Optimizer # Desired optimizer (solver)
opt_options = Dict("max_cpu_time" => 20.0, "print_level" => 3)
T = 2000 # Time horizon (years)
ns = 401; # Number of points in the time grid - seems not to influence much the results (good!)