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

Source: worldbank.org, 03.09.2025

Year: 2022

Flag Country Value Value change, % Rank
Angola Angola 0 39
Albania Albania 0 39
Argentina Argentina -3.53 0% 67
Armenia Armenia 0.0599 0% 35
Antigua & Barbuda Antigua & Barbuda 0.244 0% 32
Australia Australia -12.1 0% 77
Austria Austria 0.176 0% 33
Belgium Belgium 0.641 0% 26
Benin Benin 4.55 0% 8
Burkina Faso Burkina Faso -2.01 0% 63
Bulgaria Bulgaria -0.195 0% 49
Belarus Belarus -5.5 0% 72
Belize Belize -0.303 0% 51
Bolivia Bolivia -1.92 0% 62
Brazil Brazil -4.48 0% 69
Central African Republic Central African Republic 0 39
Canada Canada -19.7 0% 82
Switzerland Switzerland -0.22 0% 50
Chile Chile 0 39
China China -267 0% 87
Côte d’Ivoire Côte d’Ivoire -22.4 0% 83
Congo - Kinshasa Congo - Kinshasa 11 0% 5
Colombia Colombia -2.67 0% 65
Cape Verde Cape Verde 0 39
Costa Rica Costa Rica 0 39
Cyprus Cyprus -0.163 0% 48
Czechia Czechia -0.453 0% 53
Germany Germany 6.29 0% 6
Denmark Denmark 0.512 0% 28
Ecuador Ecuador 3.61 0% 12
Spain Spain -4.84 0% 71
Estonia Estonia 1.41 0% 21
Ethiopia Ethiopia 45.3 0% 1
Finland Finland 3.47 0% 13
France France -1.52 0% 60
Gabon Gabon 0 39
United Kingdom United Kingdom 3.87 0% 11
Georgia Georgia 0.654 0% 25
Ghana Ghana -0.989 0% 55
Guinea-Bissau Guinea-Bissau 19.3 0% 4
Greece Greece -3.43 0% 66
Guyana Guyana 0 39
Croatia Croatia 0.48 0% 29
Hungary Hungary -0.519 0% 54
Indonesia Indonesia -10.2 0% 76
India India -350 0% 88
Ireland Ireland 0.0441 0% 36
Iran Iran 0 39
Iceland Iceland -1.61 0% 61
Italy Italy -1.29 0% 58
Japan Japan 4.24 0% 9
Kazakhstan Kazakhstan 25.2 0% 3
South Korea South Korea 3.99 0% 10
Laos Laos 1.6 0% 20
Lebanon Lebanon -1.17 0% 57
St. Lucia St. Lucia -0.00368 0% 42
Liechtenstein Liechtenstein -0.00329 0% 41
Sri Lanka Sri Lanka -16 0% 79
Lesotho Lesotho 2.62 0% 16
Lithuania Lithuania 1.73 0% 18
Luxembourg Luxembourg 0.0258 0% 38
Latvia Latvia 1.12 0% 24
Monaco Monaco -0.00008 0% 40
Moldova Moldova 2 0% 17
Mexico Mexico -15.2 0% 78
Malta Malta -0.00499 0% 43
Mongolia Mongolia 0 39
Mozambique Mozambique 3.01 0% 15
Mauritius Mauritius -0.01 0% 44
Malaysia Malaysia -18.6 0% 81
Namibia Namibia 0 39
Niger Niger -9.66 0% 75
Netherlands Netherlands -0.157 0% 47
Norway Norway 0.248 0% 31
New Zealand New Zealand 0.034 0% 37
Pakistan Pakistan 3.43 0% 14
Panama Panama 0.119 0% 34
Peru Peru -0.0137 0% 45
Papua New Guinea Papua New Guinea -0.1 0% 46
Poland Poland 1.27 0% 22
Portugal Portugal -4.65 0% 70
Paraguay Paraguay -5.67 0% 73
Romania Romania -18.2 0% 80
Russia Russia -30.6 0% 84
South Sudan South Sudan 0 39
Suriname Suriname -2.21 0% 64
Slovakia Slovakia -1.13 0% 56
Slovenia Slovenia -0.34 0% 52
Sweden Sweden -1.48 0% 59
Thailand Thailand -75.9 0% 85
Tunisia Tunisia -4.38 0% 68
Turkey Turkey 0.625 0% 27
Uganda Uganda 0.306 0% 30
Ukraine Ukraine 27.1 0% 2
Uruguay Uruguay 1.16 0% 23
United States United States -213 0% 86
Venezuela Venezuela 0 39
Vietnam Vietnam 1.62 0% 19
South Africa South Africa -9.32 0% 74
Zambia Zambia 0 39
Zimbabwe Zimbabwe 5.15 0% 7

The indicator of carbon dioxide (CO2) net fluxes from Land Use, Land-Use Change, and Forestry (LULUCF) under the category "Other Land" measures the net emissions or removals of CO2 from these land areas, expressed in metric tons of CO2 equivalent (Mt CO2e). This metric has gained importance as nations seek to better understand their contributions to greenhouse gas emissions and to develop strategies for carbon management in forests, grasslands, wetlands, and other land categories that do not fall explicitly under agricultural or forest land. As climate change becomes an increasingly pressing issue, understanding the dynamics of CO2 fluxes from 'Other Land' has become crucial for informed policy decisions.

In 2020, the world median value for CO2 net fluxes from Other Land was reported at 0.0 Mt CO2e, suggesting that, on average, there was a balance between emissions and removals of CO2. However, this balance can mask significant variations at national and regional levels. For instance, the top contributing regions include countries like Ukraine, Guinea-Bissau, and Niger, which reported net emissions of 28.0, 19.25, and 19.23 Mt CO2e, respectively. Such high emissions from these countries can indicate concerning land management practices, high levels of deforestation, or disturbances that release carbon from their biological reservoirs.

In contrast, the bottom five countries reveal a different story; India (-232.48 Mt CO2e), the United States (-214.52 Mt CO2e), and China (-200.63 Mt CO2e) show substantial negative values, indicating that these countries not only manage to sequester significant amounts of CO2 but are also making unexpected contributions to offset global emissions through effective land use management practices, restoration efforts, or possibly through the effective use of technology in carbon capture and storage. The discrepancy between countries at the top and bottom of the emissions scale reflects a complex interaction of various factors including land management practices, afforestation initiatives, agricultural policies, and broader ecological conditions.

Understanding CO2 net fluxes from Other Land is central for climate mitigation strategies. These fluxes are not merely numerical; they are tied to broader environmental and societal well-being. Effective management and restoration of ecosystems can lead to greater CO2 removals, and this ties directly into international climate agreements like the Paris Accord, where countries are urged to set nationally determined contributions (NDCs) to mitigate greenhouse gas emissions. By focusing on 'Other Land' areas, countries can develop additional avenues towards achieving their carbon neutrality goals.

Several factors influence the carbon fluxes from Other Land. These range from human activities such as land development, urbanization, agriculture, and forestry to natural disturbances like wildfires, pests, and disease outbreaks. For instance, a country that focuses on rewilding or afforestation can potentially become a net carbon sink, while one that prioritizes agricultural expansion can shift toward being a net emitter. Moreover, climatic changes increasingly impact land productivity and ecosystem resilience, altering the balance between carbon uptake and release.

To address the challenges reflected in the CO2 net fluxes from Other Land, various strategies can be implemented. Enhancing carbon sequestration through the restoration of degraded lands and promoting sustainable land use practices are key paths forward. Any policies aiming to reduce carbon emissions must take an integrated approach, allowing different land management sectors to work in sync to stabilize and potentially reverse emissions. Furthermore, incentivizing practices such as agroforestry and permaculture could foster healthier ecosystems while providing social and economic benefits to local communities. This supports the idea that sustainable development can go hand-in-hand with environmental stewardship.

However, the indicator itself has its flaws. The concept of 'Other Land' can dilute the significance of specific ecosystems, leading to a potential underassessment of the contributions that these ecosystems can make to overall carbon fluxes. Without robust data, the amalgamation of diverse land types under the 'Other Land' category can obscure critical changes occurring within individual sub-categories. Improvement in methodological approaches to quantify, monitor, and report changes in CO2 net fluxes would bolster this indicator's effectiveness. Furthermore, increasing the granularity of data collection could help policymakers to target more effectively their efforts and investments in specific areas of opportunity.

In conclusion, the CO2 net fluxes from LULUCF in the Other Land category remain a vital component of understanding the broader picture of global carbon emissions and climate change mitigation. It serves as a reminder that the balance between human interaction and natural processes is delicate and that robust, strategic actions are required, not only to manage emissions but also to promote sustainability and resilience across all land types.

                    
# 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.OL.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.OL.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))