In this example we will show which economic activities contribute the most the greenhouse emissions in Belgium. We want to how much the increase of one unit of production will increase the CO2-equivalent of various greenhouse gases, not only CO2 itself, but also methane (CH4), Nitrous oxide (N2O), and fluorinated gases (e.g., chlorofluorocarbons, hydrochlorofluorocarbons, and halons). While we talk most about CO2, the greenhouse gas that is emitted in the greatest quantity, but it is not the only culprit for global warming. Especially fluorinated gases have a high potential to increase the greenhouse effect.
The following expression will import the symmetric input-output table for Belgium. The `stk_flow = “TOTAL”`` makes clear that we are not only considering effects in the domestic (Belgian) economy, but imports, too. More about importing and working with matrixes can be found in the articles (Introduction to iotables, Working with Eurostat Data.)
# For faster building this data has been loaded from "../extdata/environmental_impact_vignette.rda"
BE <- iotable_get(source = "naio_10_cp1700", geo = "BE",
year =2015,
labelling = "short", unit = "MIO_EUR",
stk_flow = "TOTAL")
The following expression gets the the greenhouse gas emissions in
CO2-equivalent
thousand tons for Belgium in 2020. Under the hood, we download the air
emissions accounts from the Eurostat data warehouse. AEA present data on
air emissions in a way that is fully compatible with the concepts,
principles and data of the national accounts, but needs further
adjustment to input-output tables, which is accomplished by
airpol_get()
# For faster building this data has been loaded from "../extdata/environmental_impact_vignette.rda"
ghg <- airpol_get(airpol="GHG", geo="BE", year=2020, unit="THS_T")
See ?airpol_get
for the type of air pollutants that you
can add to a European standard SIOT. In this case, we will first use the
calculated CO2-equivalent of mix of gases. We are calculating in
thousands of tons in this case (unit="THS_T"
).
The direct effects will show how many thousand tons of extra
greenhouse gases will be produced with each millions of euros of extra
output from Belgium’s industries. We are adding with
rows_add()
the greenhouse gas vector in a conforming form
to inter-industry matrix of Belgium. We will only print the top five
emitters.
be_io <- BE %>%
supplementary_add(ghg)
ghg_indicator <- input_indicator_create(
data_table = be_io,
input_row = "GHG_emission")
#> Columns and rows of CPA_U are all zeros and will be removed.
# Only the top 5 is printed, rename, arrange and top_n are tidyverse functions:
ghg_indicator %>%
vector_transpose_longer( .keep = TRUE ) %>%
rename ( GHG_emission_indicator = .data$value ) %>%
arrange ( -.data$GHG_emission_indicator ) %>%
top_n(5)
#> Warning: Use of .data in tidyselect expressions was deprecated in tidyselect 1.2.0.
#> ℹ Please use `"value"` instead of `.data$value`
#> This warning is displayed once every 8 hours.
#> Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
#> generated.
#> Selecting by GHG_emission_indicator
#> # A tibble: 5 × 3
#> prod_na nace_r2 GHG_emission_indicator
#> <chr> <chr> <dbl>
#> 1 GHG_emission_indicator CPA_A03 1.54
#> 2 GHG_emission_indicator CPA_A01 1.30
#> 3 GHG_emission_indicator CPA_H51 1.15
#> 4 GHG_emission_indicator CPA_C23 1.15
#> 5 GHG_emission_indicator CPA_D 1.14
In Belgium (based on the last known, 2015 structure of the economy, but considering 2020 emission levels) the most green-house gas intensive sectors are the usual suspects, but with a bit surprising top emitter.
NACE code | Industry |
---|---|
A03 | Fishing and aquaculture |
A01 | Crop and animal production, hunting and related service activities |
H51 | Air transport |
C23 | Manufacture of other non-metallic mineral products |
D | Electricity, gas, steam and air conditioning supply |
This is not the full picture, because the indicator only considers the direct green-house gas emissions (carbon dioxide, methane, and others) of the primary economic activities, but not the emissions of the upstream, supplier part of the value chain (backward linkages) and the economic activities in the downstream, buyer part of the value chain (forward linkages.)
The category of Manufacture of other non-metallic mineral products in itself requires a bit of explanation: it may be many sort of economic activity such as the transformation of mined or quarried nonmetallic minerals (such as sand, gravel, stone, clay, and refractory materials) with grinding, mixing, cutting, shaping, and honing into products for intermediate or final consumption. So we are talking about building products.
Let’s make a reality check, and calculate only with CO2:
be_io_c <- BE %>%
supplementary_add(co2)
co2_indicator <- input_indicator_create (
data_table = be_io_c,
input_row = "CO2_emission")
#> Columns and rows of CPA_U are all zeros and will be removed.
# Only the top 5 is printed:
co2_indicator %>%
vector_transpose_longer( .keep = TRUE ) %>%
rename ( CO2_emission_indicator = .data$value ) %>%
arrange ( -.data$CO2_emission_indicator ) %>%
top_n(5)
#> Selecting by CO2_emission_indicator
#> # A tibble: 5 × 3
#> prod_na nace_r2 CO2_emission_indicator
#> <chr> <chr> <dbl>
#> 1 CO2_emission_indicator CPA_A03 1.52
#> 2 CO2_emission_indicator CPA_C23 1.14
#> 3 CO2_emission_indicator CPA_H51 1.12
#> 4 CO2_emission_indicator CPA_D 1.08
#> 5 CO2_emission_indicator CPA_H50 0.748
Crop and animal production, hunting and related service activities falls out, and CPA_H50 Water transport comes back. Are those barges really so clean? And what happened with the agriculture?
Let’s check methane, which is a far more potent green house gas than CO2.
be_io_m <- BE %>%
supplementary_add(methane)
methane_indicator <- input_indicator_create (
data_table = be_io_m,
input_row = "CH4_emission")
#> Columns and rows of CPA_U are all zeros and will be removed.
# Only the top 5 is printed:
methane_indicator %>%
vector_transpose_longer( .keep = TRUE ) %>%
rename(CH4_emission_indicator = .data$value) %>%
arrange(-.data$CH4_emission_indicator) %>%
top_n(5)
#> Selecting by CH4_emission_indicator
#> # A tibble: 5 × 3
#> prod_na nace_r2 CH4_emission_indicator
#> <chr> <chr> <dbl>
#> 1 CH4_emission_indicator CPA_A01 0.0233
#> 2 CH4_emission_indicator CPA_E37-39 0.00382
#> 3 CH4_emission_indicator CPA_D 0.00165
#> 4 CH4_emission_indicator CPA_B 0.00137
#> 5 CH4_emission_indicator CPA_A02 0.000184
NACE code | Industry |
---|---|
A01 | Crop and animal production, hunting and related service activities |
CPA_E37-39 | Sewerage, waste management, remediation activities |
D | Electricity, gas, steam and air conditioning supply |
CPA_B | Mining and quarrying |
CPA_A02 | Forestry and logging |
The appearance of Mining and quarrying is important, because it is the main input for the Manufacture of other non-metallic mineral products. Their effect may or may not be combined in Belgium, because the Belgian manufacturers can import mined or quarried products, too.
The multiplier considers these indirect effects, too. The top five polluters remain the same, but their ordering changes. Crop and animal production, hunting and related service activities goes ahead of Fishing and aquaculture—because methane is a more potent green house gas than CO2. Cattle and sheep emit plenty of methane, and there are plenty of cattle and sheep in Belgium. The reason why it is important to consider these effects for each and every country, or, when possible, for regions, is that different countries produce different crops and animals. Producing poultry is far less problematic from a green house emission point of view than producing beef products.
As expected, the Manufacture of other non-metallic mineral products gets ahead of Air transport as it is highly interrelated with Mining and quarrying. Making building more sustainable would be a great achievement, but there is no really clear path: as we can see, Forestry and logging come with their problems, too.
I_be <- input_coefficient_matrix_create(
data_table = BE,
digits = 4) %>%
leontief_inverse_create()
ghg_multipliers <- multiplier_create(
input_vector = ghg_indicator,
Im = I_be,
multiplier_name = "GHG_multiplier",
digits = 4 )
# Only the top 5 is printed:
ghg_multipliers %>%
vector_transpose_longer(.keep = TRUE) %>%
rename ( GHG_multiplier = .data$value ) %>%
arrange ( -.data$GHG_multiplier ) %>%
top_n(5)
#> # A tibble: 5 × 3
#> prod_na nace_r2 GHG_multiplier
#> <chr> <chr> <dbl>
#> 1 GHG_multiplier CPA_A01 1.85
#> 2 GHG_multiplier CPA_A03 1.82
#> 3 GHG_multiplier CPA_C23 1.65
#> 4 GHG_multiplier CPA_H51 1.64
#> 5 GHG_multiplier CPA_D 1.48