The processing module calculates the quantity of secondary products that are generated through conversion of raw products (especially of primary plant agricultural commodities) in order to meet the demand for those secondary products.
Description | Unit | A | |
---|---|---|---|
fm_attributes (attributes, kall) |
Conversion factors - where X is ton N P K C DM WM or PJ GE | \(X/tDM\) | x |
vm_dem_food (i, kall) |
Food demand | \(10^6 tDM/yr\) | x |
vm_prod_reg (i, kall) |
Regional aggregated production | \(10^6 tDM/yr\) | x |
Description | Unit | |
---|---|---|
vm_cost_processing (i) |
Processing costs | \(10^6 USD_{05MER}/yr\) |
vm_dem_processing (i, kall) |
Demand for processing use | \(10^6 tDM/yr\) |
vm_processing_substitution_cost (i) |
Costs or benefits of substituting one product by another | \(10^6 USD_{05MER}/yr\) |
vm_secondary_overproduction (i, kall, kpr) |
Overproduction of secondary couple products | \(10^6 tDM/yr\) |
The realization substitution_may21 excludes the calibration factors that are used in substitution_dec18 in order to reduce the substitution of oils by other oils.
The series of equations below show the aggregation of secondary products from non-cereals (through alcohol fermentation, single cell protein breeding, oil extracting, sugar refining or ethanol distilling processes), cereals (through milling process), and cotton (through ginning process). The need to have such multiple equations (i.e., separate equations for each process) is meant to replicate the structure of Commodity Balance Sheets in FAOSTAT (2016).
In the first equation, the demand for processing use is calculated by aggregating the demand for secondary (processed) products use by process type (other than milling and ginning in this equation case). The equation also calculates secondary products from non-cereals crops such as bio-energy crops and oil crops.
\[\begin{multline*} vm\_dem\_processing(i2,kpr) = \sum_{no\_milling\_ginning20}v20\_dem\_processing(i2,no\_milling\_ginning20,kpr) \end{multline*}\]
In the second equation, the demand for processed products by process type of milling of cereal crops is calculated. The equation applies only to secondary products from cereal crops which, among others, include maize, tropical and temperate cereals. Nevertheless, as in Commodity Balance Sheets of FAOSTAT (2016), cereal milling here is not counted as processing but derived from food use of cereals.
\[\begin{multline*} vm\_dem\_food(i2,kcereals20) = v20\_dem\_processing(i2,"milling",kcereals20) \end{multline*}\]
In the third equation, the demand for processing by process type v20_dem_processing
of ginning of cotton is calculated. Likewise, the Commodity Balance Sheets in FAOSTAT (2016) do not account for processing of “seed cotton” into “cotton seed” and “cotton lint”. As MAgPIE only includes the product “cotton seed” and not “seed cotton”, the “cotton lint” is bound to the production of “cotton seed”.
\[\begin{multline*} vm\_prod\_reg(i2,"cottn\_pro") = v20\_dem\_processing(i2,"ginning","cottn\_pro") \end{multline*}\]
The fourth equation below describes the transformation of primary products into secondary products. The processing conversion factors (i20_processing_conversion_factors_cf
) indicate how much secondary products can be derived from one unit of a specific primary product. The conversion factors are globally equal to avoid path-dependencies in future outlooks based on historical patterns. Historical differences in conversion efficiencies are instead considered using a static balanceflow. To avoid perfect substitutability between different primary commodities being transformed into the same secondary product (e.g. oil from sunflower or oil palm), we use share factor coefficients, i20_processing_shares
, which indicate how much of the secondary products comes from which primary products. The parameter f20_processing_balanceflow
accounts for differences in conversion efficiency among various countries whereas the conversion factors remain global. The v20_secondary_substitutes
are used to avoid overproduction of couple products: for each couple product, there is one secondary product (usually the cheaper one) which can be substituted by other commodities (see also equations below). The secondary product overproduction vm_secondary_overproduction
is used to move overproduction of secondary products into the waste category such that the demand balance is maintained (see also 16_demand).
\[\begin{multline*} \sum_{processing20}\left( v20\_dem\_processing(i2,processing20,kpr) \cdot \sum\left(ct,i20\_processing\_conversion\_factors(ct,processing20,ksd,kpr)\right)\right) = \left(vm\_prod\_reg(i2,ksd) - \sum_{ct}f20\_processing\_balanceflow(ct,i2,ksd)\right) \cdot \sum_{ct}i20\_processing\_shares(ct,i2,ksd,kpr) - v20\_secondary\_substitutes(i2,ksd,kpr) + vm\_secondary\_overproduction(i2,ksd,kpr) \end{multline*}\]
Oils from one crop can be substituted by different types of oils.
\[\begin{multline*} v20\_dem\_processing(i2,"substitutes","oils") \geq \sum_{kpr} v20\_secondary\_substitutes(i2,"oils",kpr) \end{multline*}\]
Molasses can be substituted by sugar,
\[\begin{multline*} v20\_dem\_processing(i2,"substitutes","sugar") \geq \sum_{kpr} v20\_secondary\_substitutes(i2,"molasses",kpr) \end{multline*}\]
Different types of primary oilcrops or oilcakes from different origins as well as distillers grains can be substituted for oilcakes and distillers grains based on their protein content.
\[\begin{multline*} \sum_{oilcake\_substitutes20}\left( v20\_dem\_processing(i2,"substitutes",oilcake\_substitutes20) \cdot fm\_attributes("nr",oilcake\_substitutes20) \right) \geq \sum_{kpr}\left( \left(v20\_secondary\_substitutes(i2,"distillers\_grain",kpr) + v20\_secondary\_substitutes(i2,"oilcakes",kpr) \right) \cdot fm\_attributes("nr",kpr)\right) \end{multline*}\]
Brans can be substituted by cereals of the same protein value.
\[\begin{multline*} \sum_{kcereals20}\left( v20\_dem\_processing(i2,"substitutes",kcereals20) \cdot fm\_attributes("nr",kcereals20)\right) \geq \sum_{kcereals20}\left( v20\_secondary\_substitutes(i2,"brans",kcereals20) \cdot fm\_attributes("nr","brans")\right) \end{multline*}\]
The seventh equation in this realization calculates the costs of processing (or converting) primary products to secondary products. As shown in the equation, the costs of processing (converting from primary to secondary products) depend on the type of the primary product (e.g. maize, sugar cane, cotton), the type of the process (e.g. milling, refining, ginning), and the type of secondary product (e.g. brans, sugar, fiber) product. The unit costs of processing, i20_processing_unitcosts
, are specific for the different conversion routes and are collected, interpolated, and extrapolated from the related literature (e.g. Adanacioglu and Olgun (2011), Pikaar et al. (2018), Valco et al. (2016)) complemented with best educated guess by the module authors. Costs for single-cell protein production (scp) are handled differently because scp production with hydrogen as substrate has no land requirements, and thus would have no cost. All other scp production routes (mixed, methane, sugar and cellulose) have land requirements mapped to specific crops (f20_scp_processing_shares
).
\[\begin{multline*} vm\_cost\_processing(i2) = \sum_{ksd,processing20,kpr}\left( v20\_dem\_processing(i2,processing20,kpr) \cdot \sum_{ct}i20\_processing\_conversion\_factors(ct,processing20,ksd,kpr) \cdot i20\_processing\_unitcosts(ksd,kpr)\right) + \left(vm\_prod\_reg(i2,"scp") \cdot \sum_{scptype}\left( \sum_{ct}\left( f20\_scp\_type\_shr\left(scptype,"\%c20\_scp\_type\%"\right)\right) \cdot f20\_scp\_unitcosts(scptype)\right)\right) \end{multline*}\]
Finally, we assume that any substitution of one product by another, diverging from our initial demand estimates, comes at a loss of utility. We assume a loss of utility in the magnitude of 200 USD to strongly disincentivize substitution. Moreover, to account for heterogeneity of different types of oil which are traded based on the assumption of homogeneity, we include a cost term for quality differences which make low-quality oils like palm oil more expensive and high quality oils cheaper. The magnitude of the quality adjustment is based on current price differences between different types of oils, standardized on the price of soybean oil.
\[\begin{multline*} vm\_processing\_substitution\_cost(i2) = \sum_{kpr}\left( v20\_dem\_processing(i2,"substitutes",kpr) \cdot 200 \right) + \sum_{ksd,processing20,kpr}\left( v20\_dem\_processing(i2,processing20,kpr) \cdot \sum_{ct}i20\_processing\_conversion\_factors(ct,processing20,ksd,kpr) \cdot f20\_quality\_cost(ksd,kpr)\right) \end{multline*}\]
Limitations There are no known limitations.
Description | Unit | A | |
---|---|---|---|
f20_processing_balanceflow (t_all, i, ksd) |
Processing balance flow | \(10^6 tDM\) | x |
f20_processing_conversion_factors (t_all, processing20, ksd, kpr) |
Conversion factors of primary products into secondary products | \(1\) | x |
f20_processing_shares (t_all, i, ksd, kpr) |
Shares of secondary products coming from a primary product | \(1\) | x |
f20_processing_unitcosts (ksd, kpr) |
Costs of transforming x units kpr into 1 unit ksd | \(USD_{05MER}/tDM\) | x |
f20_quality_cost (ksd, kpr) |
Costs for difference in quality between secondary products from diverging origins | \(USD/tDM\) | x |
f20_scp_processing_shares (kpr, scen20) |
Feedstock processing shares for SCP in different scenarios | \(1\) | x |
f20_scp_type_shr (scptype, scen20) |
selected scenario values for scp type | \(1\) | x |
f20_scp_unitcosts (scptype) |
Costs of production of one unit of SCP exclusive of feedstock costs | \(USD/tDM\) | x |
i20_processing_conversion_factors (t_all, processing20, ksd, kpr) |
Conversion factors of primary products into secondary products | \(1\) | x |
i20_processing_shares (t_all, i, ksd, kpr) |
Shares of secondary products coming from a primary product | \(1\) | x |
i20_processing_unitcosts (ksd, kpr) |
Costs of transforming x units kpr into 1 unit ksd | \(USD_{05MER}/tDM\) | x |
q20_processing (i, kpr, ksd) |
Processing equation | \(10^6 tDM/yr\) | x |
q20_processing_aggregation_cereals (i, kcereals20) |
Connecting processing activity to food use for milling | \(10^6 tDM/yr\) | x |
q20_processing_aggregation_cotton (i) |
Connecting processing activity to production for cotton ginning | \(10^6 tDM/yr\) | x |
q20_processing_aggregation_nocereals (i, kpr) |
Connecting processing activity to processing flows | \(10^6 tDM/yr\) | x |
q20_processing_costs (i) |
Processing costs | \(10^6 USD_{05MER}/yr\) | x |
q20_processing_substitution_brans (i) |
Substitution of brans by cereals | \(10^6 tNr/yr\) | x |
q20_processing_substitution_oils (i) |
Substitution of oils by other oils | \(10^6 tDM/yr\) | x |
q20_processing_substitution_protein (i) |
Substitution of protein products by other protein products | \(10^6 tNr/yr\) | x |
q20_processing_substitution_sugar (i) |
Substitution of molasses by sugar | \(10^6 tDM/yr\) | x |
q20_substitution_utility_loss (i) |
Utility loss when one product has to be substituted by another | \(10^6 t Nr/year\) | x |
v20_dem_processing (i, processing_subst20, kpr) |
Demand for processing use by process | \(10^6 tDM/yr\) | x |
v20_secondary_substitutes (i, ksd, kpr) |
Substitutes for inferior secondary products | \(10^6 tDM/yr\) | x |
description | |
---|---|
attributes | Product attributes characterizing a product (such as weight or energy content) |
ct(t) | Current time period |
factors | factors included in factor requirements |
i | all economic regions |
i2(i) | World regions (dynamic set) |
kall | All products in the sectoral version |
kcereals20(kpr) | Cereals used for processing |
knpr(kall) | Products that cannot be processed |
kpr(kall) | Products that can be processed |
ksd(kall) | Secondary products |
no_milling_ginning20(processing_subst20) | Processing activities without milling and ginning |
oilcake_substitutes20(kpr) | products that can be substituted for oilcakes |
processing_subst20 | Processing activities |
processing20(processing_subst20) | Processing activities except substitution |
scen20 | scenario of type of scp |
scptype | different types of scp |
t_all(t_ext) | 5-year time periods |
t(t_all) | Simulated time periods |
type | GAMS variable attribute used for the output |
Benjamin Leon Bodirsky, Amsalu Woldie Yalew
11_costs, 15_food, 16_demand, 17_production