Skip to content
Snippets Groups Projects
Commit 23ec19f7 authored by MAIRE Juliette's avatar MAIRE Juliette
Browse files

Merge branch 'master' of https://git.ecdf.ed.ac.uk/lul/plumv2

to take different ssp files as input
parents 29513741 3aac767c
No related branches found
No related tags found
No related merge requests found
/bin/
plumv2/output/
......@@ -26,28 +26,14 @@ PLUM is a global-scale, socio-economic model of agricultural land use change. It
The concept of the model is based on the understanding that changes in land use occur based on changes in demand for agricultural products and changes in the productivity of the land. The model implements crucial socio-economic drivers such as population, income level, consumption, diet, technological change, trade, food production and climate changes influencing crop yield through for instance increase of CO~2~ fertilisation and water availability.
PLUMv2 was developed to inform policy making about interaction between policy measures and individual response to climate change within various global economy scenarios.
PLUM was developed by Kerstin Engström team and collaborators in 2016. It is open-source (except GAMS license) and mainly implemented in java and the post processing is usually implemented in the R software.
```{r, animation.hook='gifski', width = 2000, height = 1600, delay = 0.1, progress = TRUE, loop = FALSE, echo=FALSE, message=FALSE, warning = FALSE}
output_path<-"C:/Users/jmaire/Development/plumv2_juliette_local/output/Baseline_test/"
for (i in 2011:2012){
test<-fread((paste0(output_path,i,"/LandCoverFract.txt")))
test<-test %>%
select(Lon,Lat, CROPLAND)
coordinates(test)=~Lon+Lat
proj4string(test)=CRS("+init=epsg:4326") # set it to lat-long
test = spTransform(test,CRS('+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs'))
gridded(test) = TRUE
r = raster(test)
projection(r) = CRS('+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')
plot(r, legend=TRUE, main = paste("Cropland cover fraction, Year", i),axes=FALSE)}
```
PLUM was developed by Kerstin Engström team and collaborators in 2016. It is open-source (except GAMS license) and mainly implemented in java and the post processing is usually implemented in the R software.
## WHAT IS PLUM? {#WHAT}
PLUM is an ecological-environmental socio-economic model framework that simulates the environmental consequences of human activities and agricultural trades. It represents interactions between land use and policy measures to assess sustainability issues such as climate change, biodiversity and human diet over this century. The objective of PLUM is to explore the long-term dynamics and impacts of global changes and trades on the food system and the environment.
The Lund–Potsdam–Jena General Ecosystem Simulator (LPJ-GUESS; [Smith, Warlind, et al., 2014](https://10.5194/bg-11-6131-2014)) global vegetation model was coupled to PLUMv2, a new and reconceptualised version of the Parsimonious Land Use Model ([Engström et al., 2016](https://10.1016/j.envsoft.2015.10.015)).
<center>
![](C:/Users/jmaire/Development/R/Simple_plot_PLUM/Data/LandSyMM_v01-Very_simplefied_LandSYMM.png){width=500px} </center>
![](Data/LandSyMM_v01-Very_simplefied_LandSYMM.png){width=500px} </center>
For the purpose of popularization of the model concept, the model has been divided into four components:
......@@ -378,10 +364,21 @@ Within the PLUMv2, the dietary requirement of each country is determined based o
## INTERNATIONAL AND DOMESTIC MARKET {#MARKET}
### *Demand projection*
Demand is satisfied at the country level by either domestic production or imports. The balance between imports and exports of each commodity is determined mainly by considering commodity prices, management costs (fertiliser, irrigation, land conversion), and changing [LPJ-GUESS](LPJ-GUESS) simulated crop productivity due to climate change and CO~2~ under a range of management intensity (irrigation/fertilisation levels). The demand per capita for a commodity is given as:
Demand is satisfied at the country level by either domestic production or imports. The balance between imports and exports of each commodity is determined mainly by considering commodity prices, management costs (fertiliser, irrigation, land conversion), and changing [LPJ-GUESS](LPJ-GUESS) simulated crop productivity due to climate change and CO~2~ under a range of management intensity (irrigation/fertilisation levels). Based on [Gouel and Guimbard (2018)](https://doi.org/10.1093/ajae/aay030), with [MAIDADS](#MAIDADS) the demand for a good is the following function of prices p, and income, m:
$$ Demand= \text{Subsidence consumption level} + \text{Discretionaty consumption level}$$
With,
$$ \text{Subsidence consumption level}=\frac{\delta_{i}+\tau_{i}e^{\omega u_{c}}}{1+e^{\omega u_{c}}}
\\ \text{Discretionaty consumption level} = \frac{1}{p_{ci}}*\text{Marginal budget share} * \left(mc - \sum_{j = 1}^{I} p_{cj} *\; \frac{\delta_{j}+\tau_{j}e^{\omega u_{c}}}{1+e^{\omega u_{c}}} \right)
\\ \text{Marginal budget share}= \frac{\alpha_{i} + \beta_{i}e^{u_{c}}}{1+e^{u_{c}}}$$
where $i \in \{1, ..., I\}$ indexes the good, $c \in \{1, ..., C\}$ indexes the countries, $\delta_i \ge 0$, $\tau_i \ge 0$, $\omega_i \ge 0$, $\alpha_i \ge 0$, $\beta_i \le 1$,
$$\sum_{i = 1}^{I} \alpha_{i} = \sum_{i = 1}^{I} \beta_{i} =1$$
and the utility level, $u_{c}$, is defined implicitly by:
$$\sum_{i = 1}^{I} \frac{\alpha_{i} + \beta_{i}e^{u_{c}}}{1 + e^{u_{c}}} * \log(demand_{ci} - \frac{\delta_{i}+\tau_{i}e^{\omega u_{c}}}{1+e^{\omega u_{c}}}) - u_{c} =\kappa$$
The parameters can be interpreted as follows: $\delta_{i}$,$\tau_{i}$, and $\omega$ govern the behavior of the subsistence consumption levels; $\alpha_{i}$,$\beta_{i}$, and $\kappa$ govern the behavior of the discretionary consumption levels.
Changing these parameters will modify the diet preferences prescribed to country depending of their GDP. For instance, $\tau_{i}$ is linked to the diet preferences at high level of GDP while $\beta_{i}$ at lower GDP level.
$$ demand\_pc= \frac{f(l_t)}{f(l_{t0})} . (observed_{t0}.\Delta - f(l_{t0}). (1-\Delta)) \\ \Delta = e^{(z.(l_t-l_{t0})/l_{t0})} \\ z = \frac{ln(\textrm{assumed_closure_rate})}{gdp\_rate\_change}$$
where f(x) is the best-fit log-linear regression function of demand for that commodity at an income per capita, l~t~ and l~t0~ are the incomes per capita, respectively, at time t, and the baseline t~0~. observed~t0~ is the commodity demand in the baseline year. a is the dietary closure parameter, with 0 indicating no convergence in global diets. The parameters were determined from a scenario assumption of the rate of closure to global dietary patterns given an increase in GDP.
See for name and description of [Parameters](#PARAMETERS), [Indices](#INDICES), [Variables](#VARIABLES).
### *Unit land use costs and productivity*
......@@ -484,6 +481,11 @@ $$
## AMENDMENTS TO THE MODEL {.tabset .tabset-fade .tabset-pills}
### *2021* {#DEV2021}
* Changed the demand system to integrate not only historical drive for food preferences but can take as an input a target diet (Based on diet preferences by country GDP). The diet preferences are still function of the price of the different commodities and of the country GDP.
* Integrate a possibility to Shock the GDP of the country (example of pandemic shock).
### *2020* {#DEV2020}
* Updated the calculations for domestic price to better consider the consumer behaviour and role into food demand (see [International market price adjustment](#MARKET) for more details)
......
This diff is collapsed.
This diff is collapsed.
......@@ -157,7 +157,8 @@ public class ModelConfig {
public static final String DEMAND_CURVES_FILE = getProperty("DEMAND_CURVES_FILE", DATA_DIR + File.separator + "com_curves.csv"); // either DEMAND_CURVES_FILE or DEMAND_CONSUMPTION_FILE is used, but not both
public static final String DEMAND_CONSUMPTION_FILE = getProperty("DEMAND_CONSUMPTION_FILE", DATA_DIR + File.separator + "hist_comsump.csv");
public static final PriceType PRICE_CALCULATION = PriceType.findByName(getProperty("PRICE_CALCULATION", "weightedImportsExports"));
public static final String SSP_FILE = DATA_DIR + File.separator + "ssp.csv";
public static final String SSP_FILENAME = getProperty("SSP_FILENAME", "ssp.csv");
public static final String SSP_FILE = getProperty("SSP_FILE", DATA_DIR + File.separator + SSP_FILENAME);
public static final String BASELINE_CONSUMP_FILE = DATA_DIR + File.separator + "base_consump.csv";
public static final String CALORIE_PER_T_FILE = DATA_DIR + File.separator + "calories_per_t.csv";
public static final String COUNTRY_CODES_FILE = DATA_DIR + File.separator + "country_codes4.csv";
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment