Carbon dioxide (CO2) net fluxes from LULUCF - Deforestation (Mt CO2e)

Source: worldbank.org, 03.09.2025

Year: 2022

Flag Country Value Value change, % Rank
Afghanistan Afghanistan 6.51 0% 57
Angola Angola 63.4 0% 11
Albania Albania 3.51 0% 65
Andorra Andorra 0 126
United Arab Emirates United Arab Emirates 0 126
Argentina Argentina 86.8 0% 8
Armenia Armenia 0 126
Antigua & Barbuda Antigua & Barbuda 0.00785 0% 120
Australia Australia 38.9 0% 20
Austria Austria 1.24 0% 84
Azerbaijan Azerbaijan 0 126
Burundi Burundi 0 126
Belgium Belgium 0.735 0% 95
Benin Benin 13.7 0% 38
Burkina Faso Burkina Faso 12.1 0% 42
Bangladesh Bangladesh 0.82 0% 93
Bulgaria Bulgaria 0.0836 0% 112
Bahrain Bahrain 0 126
Bahamas Bahamas 0 126
Bosnia & Herzegovina Bosnia & Herzegovina 0 126
Belarus Belarus -3.26 0% 128
Belize Belize 5.03 0% 60
Bolivia Bolivia 28.2 0% 27
Brazil Brazil 770 0% 1
Barbados Barbados -0.004 0% 127
Brunei Brunei 0.16 0% 107
Bhutan Bhutan 0.204 0% 106
Botswana Botswana 15.2 0% 35
Central African Republic Central African Republic 5.63 0% 59
Canada Canada 7.2 0% 55
Switzerland Switzerland 0.692 0% 96
Chile Chile 6.08 0% 58
China China 1.1 0% 87
Côte d’Ivoire Côte d’Ivoire 67.2 0% 10
Cameroon Cameroon 10.3 0% 47
Congo - Kinshasa Congo - Kinshasa 529 0% 2
Congo - Brazzaville Congo - Brazzaville 2.95 0% 67
Colombia Colombia 61.6 0% 12
Cape Verde Cape Verde 0.0558 0% 114
Costa Rica Costa Rica 1.61 0% 78
Cuba Cuba 0 126
Cyprus Cyprus 0.02 0% 118
Czechia Czechia 0.268 0% 104
Germany Germany 1.43 0% 80
Djibouti Djibouti 0 126
Dominica Dominica 0 126
Denmark Denmark 0.135 0% 110
Dominican Republic Dominican Republic 4.45 0% 62
Algeria Algeria 0 126
Ecuador Ecuador 37.3 0% 22
Eritrea Eritrea 0 126
Spain Spain 1.38 0% 81
Estonia Estonia 0.415 0% 98
Ethiopia Ethiopia 156 0% 5
Finland Finland 2.9 0% 68
Fiji Fiji 0 126
France France 11.4 0% 45
Micronesia (Federated States of) Micronesia (Federated States of) 0 126
Gabon Gabon 11.5 0% 44
United Kingdom United Kingdom 1.25 0% 83
Georgia Georgia 0 126
Ghana Ghana 12.9 0% 41
Guinea Guinea 19 0% 31
Gambia Gambia 2.3 0% 72
Guinea-Bissau Guinea-Bissau 0 126
Equatorial Guinea Equatorial Guinea 3.38 0% 66
Greece Greece 0.119 0% 111
Grenada Grenada 0 126
Guatemala Guatemala 11.8 0% 43
Guyana Guyana 8.3 0% 53
Honduras Honduras 7.1 0% 56
Croatia Croatia 0.0224 0% 117
Haiti Haiti 0.371 0% 101
Hungary Hungary 0.886 0% 91
Indonesia Indonesia 421 0% 3
India India 9.73 0% 50
Ireland Ireland 0.0537 0% 116
Iran Iran 71.5 0% 9
Iceland Iceland 0.00372 0% 124
Israel Israel 0 126
Italy Italy 1.96 0% 75
Jamaica Jamaica 0.151 0% 108
Jordan Jordan 0 126
Japan Japan 2.33 0% 70
Kazakhstan Kazakhstan 0 126
Kenya Kenya 50 0% 16
Cambodia Cambodia 32.6 0% 24
St. Kitts & Nevis St. Kitts & Nevis 0 126
South Korea South Korea 0 126
Laos Laos 20.1 0% 30
Lebanon Lebanon 0 126
Liberia Liberia 0.963 0% 90
St. Lucia St. Lucia 0.00043 0% 125
Liechtenstein Liechtenstein 0.00492 0% 122
Sri Lanka Sri Lanka 0.386 0% 100
Lesotho Lesotho 0 126
Lithuania Lithuania 0.137 0% 109
Luxembourg Luxembourg 0.0156 0% 119
Latvia Latvia 1.09 0% 88
Morocco Morocco 0 126
Monaco Monaco 0 126
Moldova Moldova 2.01 0% 74
Madagascar Madagascar 34.3 0% 23
Mexico Mexico 14 0% 37
Mali Mali 17.6 0% 32
Malta Malta 0.00534 0% 121
Myanmar (Burma) Myanmar (Burma) 53.8 0% 14
Montenegro Montenegro 0 126
Mongolia Mongolia 0.00489 0% 123
Mozambique Mozambique 30.7 0% 26
Mauritania Mauritania 0 126
Mauritius Mauritius 0 126
Malawi Malawi 2.07 0% 73
Malaysia Malaysia 40.9 0% 19
Namibia Namibia 9.77 0% 49
Niger Niger 1.17 0% 85
Nigeria Nigeria 320 0% 4
Nicaragua Nicaragua 14.5 0% 36
Netherlands Netherlands 0.777 0% 94
Norway Norway 2.56 0% 69
Nepal Nepal 0 126
New Zealand New Zealand 1.51 0% 79
Pakistan Pakistan 0 126
Panama Panama 3.72 0% 63
Peru Peru 94.5 0% 7
Philippines Philippines 51.5 0% 15
Palau Palau 0 126
Papua New Guinea Papua New Guinea 9.55 0% 52
Poland Poland 0.336 0% 103
North Korea North Korea 2.3 0% 71
Portugal Portugal 0.573 0% 97
Paraguay Paraguay 49.3 0% 17
Romania Romania 1.14 0% 86
Russia Russia 16 0% 34
Rwanda Rwanda 0 126
Saudi Arabia Saudi Arabia 0 126
Sudan Sudan 23.9 0% 29
Singapore Singapore 0 126
Solomon Islands Solomon Islands 0.349 0% 102
El Salvador El Salvador 1.37 0% 82
San Marino San Marino 0 126
Somalia Somalia 17.4 0% 33
Serbia Serbia 0 126
South Sudan South Sudan 28.1 0% 28
São Tomé & Príncipe São Tomé & Príncipe 0 126
Suriname Suriname 7.21 0% 54
Slovakia Slovakia 0.06 0% 113
Slovenia Slovenia 0.249 0% 105
Sweden Sweden 1.74 0% 77
Eswatini Eswatini 0.403 0% 99
Seychelles Seychelles 0 126
Syria Syria 0 126
Togo Togo 0.845 0% 92
Thailand Thailand 9.63 0% 51
Turkmenistan Turkmenistan 0 126
Timor-Leste Timor-Leste 0 126
Tonga Tonga 0 126
Trinidad & Tobago Trinidad & Tobago 0 126
Tunisia Tunisia 11.2 0% 46
Turkey Turkey 1.78 0% 76
Tuvalu Tuvalu 0 126
Tanzania Tanzania 43.7 0% 18
Uganda Uganda 13.1 0% 40
Ukraine Ukraine 0.0547 0% 115
Uruguay Uruguay 1.03 0% 89
United States United States 132 0% 6
Uzbekistan Uzbekistan 3.58 0% 64
St. Vincent & Grenadines St. Vincent & Grenadines 0 126
Venezuela Venezuela 59.7 0% 13
Vietnam Vietnam 13.5 0% 39
Vanuatu Vanuatu 0 126
Yemen Yemen 9.86 0% 48
South Africa South Africa 4.98 0% 61
Zambia Zambia 31.7 0% 25
Zimbabwe Zimbabwe 38 0% 21

The indicator 'Carbon dioxide (CO2) net fluxes from LULUCF - Deforestation (Mt CO2e)' represents the net emissions of carbon dioxide due to deforestation activities within the Land Use, Land-Use Change, and Forestry (LULUCF) sector. This indicator is crucial in understanding the impacts of land-use changes on carbon emissions, which significantly contribute to climate change. The LULUCF sector is one of the primary sources of greenhouse gas emissions, with deforestation alone accounting for a substantial portion of these emissions. The net fluxes are calculated by considering the carbon released by deforestation and the carbon sequestered by forest growth, thus providing a comprehensive measure of emissions related to land-use changes.

The importance of tracking CO2 net fluxes from deforestation cannot be overstated, as it is directly related to global efforts aimed at reducing greenhouse gas emissions and mitigating climate change. Understanding the net emissions from deforestation helps policymakers design effective strategies and regulations to promote sustainable land management practices. It also serves as an essential indicator for international climate agreements, such as the Paris Agreement, where countries commit to reducing their emissions. The trends in CO2 net fluxes provide insights into the effectiveness of reforestation, afforestation, and land conservation initiatives.

In 2020, the median CO2 net flux from deforestation was recorded at 0.72 Mt CO2e. However, this figure only scratches the surface of the underlying dynamics of carbon emissions worldwide. The top five areas contributing the most to CO2 net flux from deforestation were Brazil, Congo - Kinshasa, Indonesia, Nigeria, and the United States. Brazil leads by far, with a staggering 770.19 Mt CO2e, indicative of significant deforestation activities primarily linked to agricultural expansion, logging, and infrastructure development in the Amazon rainforest. Congo - Kinshasa follows with 529.23 Mt CO2e, which reflects extensive forest degradation driven by logging and mining operations. Indonesia, with 421.07 Mt CO2e, faces similar challenges, where palm oil cultivation has surged at the expense of rainforest areas.

The United States, despite being a developed nation with extensive forest cover, still contributes 126.97 Mt CO2e from deforestation, mainly due to urban sprawl and agricultural practices. On the other end of the spectrum, some nations like Belarus, Ukraine, Algeria, Andorra, and Antigua & Barbuda are reported as having low to negative net fluxes. For example, Belarus at -3.09 Mt CO2e suggests that forest growth is outpacing deforestation, a sign of effective forest management practices that enhance carbon sequestration.

The world has seen fluctuating trends in CO2 net fluxes from deforestation over the years. For instance, in 1990, total global emissions from this sector were a whopping 4697.42 Mt CO2e, showcasing the escalating concerns over deforestation impacts on climate in the last few decades. The data indicates a peak in emissions in the mid-1990s, with a recorded 5637.05 Mt CO2e in 1995. This spike can be attributed to rapid industrial development and land conversion practices during that era. Over the years, there has been some oscillation in the numbers, but the general trend indicates the need for persistent interventions to reverse the adverse effects of deforestation.

Several factors affect CO2 net fluxes from deforestation, including agricultural policies, economic incentives, population growth, and land tenure systems. Policies that promote sustainable land-use and incentivize conservation efforts can significantly reduce deforestation rates. Conversely, economic activities that encourage the exploitation of forest resources, such as logging, mining, and large-scale agriculture, lead to increased CO2 emissions. Population growth intensifies land demand, often resulting in the encroachment into forested areas, exacerbating deforestation. Additionally, inadequate land tenure security may drive illegal land clearing, contributing to carbon emissions.

Strategies to mitigate CO2 emissions from deforestation include implementing stricter regulations that limit land conversion for agriculture and urban development, promoting sustainable forestry practices, and encouraging the principles of agroforestry. Governments can invest in reforestation and afforestation projects to replenish carbon stocks while fostering biodiversity. International cooperation and financial support for developing countries can play a pivotal role in their ability to combat deforestation through capacity-building initiatives and sustainable development pathways.

However, there are flaws and challenges in effectively addressing CO2 net fluxes from deforestation. One significant issue is the lack of consistent and accurate data collection across regions, making it difficult to gauge the true extent of deforestation and its impact on carbon emissions. Moreover, land-use change is often driven by complex socio-economic factors that require contextual understanding and tailored solutions, making one-size-fits-all approaches ineffective. Furthermore, political commitment and enforcement of regulations can vary excessively among different governments, which can hinder progress.

Ultimately, understanding and addressing CO2 net fluxes from LULUCF - Deforestation are critical in the fight against climate change. It requires an integrated approach that combines sound policies, community engagement, sustainable economic practices, and international collaboration to mitigate the impacts of deforestation and promote sustainable land management worldwide.

                    
# Install missing packages
import sys
import subprocess

def install(package):
subprocess.check_call([sys.executable, "-m", "pip", "install", package])

# Required packages
for package in ['wbdata', 'country_converter']:
try:
__import__(package)
except ImportError:
install(package)

# Import libraries
import wbdata
import country_converter as coco
from datetime import datetime

# Define World Bank indicator code
dataset_code = 'EN.GHG.CO2.LU.DF.MT.CE.AR5'

# Download data from World Bank API
data = wbdata.get_dataframe({dataset_code: 'value'},
date=(datetime(1960, 1, 1), datetime.today()),
parse_dates=True,
keep_levels=True).reset_index()

# Extract year
data['year'] = data['date'].dt.year

# Convert country names to ISO codes using country_converter
cc = coco.CountryConverter()
data['iso2c'] = cc.convert(names=data['country'], to='ISO2', not_found=None)
data['iso3c'] = cc.convert(names=data['country'], to='ISO3', not_found=None)

# Filter out rows where ISO codes could not be matched — likely not real countries
data = data[data['iso2c'].notna() & data['iso3c'].notna()]

# Sort for calculation
data = data.sort_values(['iso3c', 'year'])

# Calculate YoY absolute and percent change
data['value_change'] = data.groupby('iso3c')['value'].diff()
data['value_change_percent'] = data.groupby('iso3c')['value'].pct_change() * 100

# Calculate ranks (higher GDP per capita = better rank)
data['rank'] = data.groupby('year')['value'].rank(ascending=False, method='dense')

# Calculate rank change from previous year
data['rank_change'] = data.groupby('iso3c')['rank'].diff()

# Select desired columns
final_df = data[['country', 'iso2c', 'iso3c', 'year', 'value',
'value_change', 'value_change_percent', 'rank', 'rank_change']].copy()

# Optional: Add labels as metadata (could be useful for export or UI)
column_labels = {
'country': 'Country name',
'iso2c': 'ISO 2-letter country code',
'iso3c': 'ISO 3-letter country code',
'year': 'Year',
'value': 'GDP per capita (current US$)',
'value_change': 'Year-over-Year change in value',
'value_change_percent': 'Year-over-Year percent change in value',
'rank': 'Country rank by GDP per capita (higher = richer)',
'rank_change': 'Change in rank from previous year'
}

# Display first few rows
print(final_df.head(10))

# Optional: Save to CSV
#final_df.to_csv("gdp_per_capita_cleaned.csv", index=False)
                    
                
                    
# Check and install required packages
required_packages <- c("WDI", "countrycode", "dplyr")

for (pkg in required_packages) {
  if (!requireNamespace(pkg, quietly = TRUE)) {
    install.packages(pkg)
  }
}

# Load the necessary libraries
library(WDI)
library(dplyr)
library(countrycode)

# Define the dataset code (World Bank indicator code)
dataset_code <- 'EN.GHG.CO2.LU.DF.MT.CE.AR5'

# Download data using WDI package
dat <- WDI(indicator = dataset_code)

# Filter only countries using 'is_country' from countrycode
# This uses iso2c to identify whether the entry is a recognized country
dat <- dat %>%
  filter(countrycode(iso2c, origin = 'iso2c', destination = 'country.name', warn = FALSE) %in%
           countrycode::codelist$country.name.en)

# Ensure dataset is ordered by country and year
dat <- dat %>%
  arrange(iso3c, year)

# Rename the dataset_code column to "value" for easier manipulation
dat <- dat %>%
  rename(value = !!dataset_code)

# Calculate year-over-year (YoY) change and percentage change
dat <- dat %>%
  group_by(iso3c) %>%
  mutate(
    value_change = value - lag(value),                              # Absolute change from previous year
    value_change_percent = 100 * (value - lag(value)) / lag(value) # Percent change from previous year
  ) %>%
  ungroup()

# Calculate rank by year (higher value => higher rank)
dat <- dat %>%
  group_by(year) %>%
  mutate(rank = dense_rank(desc(value))) %>% # Rank countries by descending value
  ungroup()

# Calculate rank change (positive = moved up, negative = moved down)
dat <- dat %>%
  group_by(iso3c) %>%
  mutate(rank_change = rank - lag(rank)) %>% # Change in rank compared to previous year
  ungroup()

# Select and reorder final columns
final_data <- dat %>%
  select(
    country,
    iso2c,
    iso3c,
    year,
    value,
    value_change,
    value_change_percent,
    rank,
    rank_change
  )

# Add labels (variable descriptions)
attr(final_data$country, "label") <- "Country name"
attr(final_data$iso2c, "label") <- "ISO 2-letter country code"
attr(final_data$iso3c, "label") <- "ISO 3-letter country code"
attr(final_data$year, "label") <- "Year"
attr(final_data$value, "label") <- "GDP per capita (current US$)"
attr(final_data$value_change, "label") <- "Year-over-Year change in value"
attr(final_data$value_change_percent, "label") <- "Year-over-Year percent change in value"
attr(final_data$rank, "label") <- "Country rank by GDP per capita (higher = richer)"
attr(final_data$rank_change, "label") <- "Change in rank from previous year"

# Print the first few rows of the final dataset
print(head(final_data, 10))