Forest area (% of land area)

Source: worldbank.org, 01.09.2025

Year: 2022

Flag Country Value Value change, % Rank
Aruba Aruba 2.33 0% 185
Afghanistan Afghanistan 1.85 0% 187
Angola Angola 52.5 -0.84% 46
Albania Albania 28.8 0% 112
Andorra Andorra 34 0% 95
United Arab Emirates United Arab Emirates 4.47 0% 180
Argentina Argentina 10.4 -0.381% 165
Armenia Armenia 11.5 -0.064% 154
American Samoa American Samoa 85.4 -0.175% 8
Antigua & Barbuda Antigua & Barbuda 18.2 -0.772% 136
Australia Australia 17.4 0% 137
Austria Austria 47.2 +0.0722% 57
Azerbaijan Azerbaijan 14 +1.01% 147
Burundi Burundi 10.9 0% 163
Belgium Belgium 22.6 0% 127
Benin Benin 26.9 -1.62% 114
Burkina Faso Burkina Faso 22.4 -0.811% 129
Bangladesh Bangladesh 14.5 0% 144
Bulgaria Bulgaria 36.1 +0.333% 85
Bahrain Bahrain 0.937 +2.78% 194
Bahamas Bahamas 50.9 0% 51
Bosnia & Herzegovina Bosnia & Herzegovina 42.7 0% 70
Belarus Belarus 43.3 +0.145% 66
Belize Belize 55 -0.882% 39
Bermuda Bermuda 18.5 0% 135
Bolivia Bolivia 46.5 -0.404% 59
Brazil Brazil 59.1 -0.241% 29
Barbados Barbados 14.7 0% 143
Brunei Brunei 72.1 0% 14
Bhutan Bhutan 71.6 +0.0726% 16
Botswana Botswana 26.5 -0.782% 116
Central African Republic Central African Republic 35.7 -0.135% 86
Canada Canada 39.5 -0.0107% 78
Switzerland Switzerland 32.3 +0.27% 104
Chile Chile 24.8 +0.67% 118
China China 23.8 +0.847% 123
Côte d’Ivoire Côte d’Ivoire 8.21 -4.14% 172
Cameroon Cameroon 42.8 -0.276% 69
Congo - Kinshasa Congo - Kinshasa 54.7 -0.881% 41
Congo - Brazzaville Congo - Brazzaville 64.2 -0.0684% 21
Colombia Colombia 52.9 -0.338% 43
Comoros Comoros 17.2 -1.35% 138
Cape Verde Cape Verde 11.5 +0.652% 155
Costa Rica Costa Rica 60.1 +0.537% 27
Cuba Cuba 31.2 0% 106
Curaçao Curaçao 0.158 0% 202
Cayman Islands Cayman Islands 52.7 -0.158% 45
Cyprus Cyprus 18.7 -0.0116% 134
Czechia Czechia 34.7 +0.0871% 90
Germany Germany 32.7 +0.00859% 102
Djibouti Djibouti 0.257 +1.55% 201
Dominica Dominica 63.8 0% 22
Denmark Denmark 15.8 +0.149% 141
Dominican Republic Dominican Republic 44.8 +0.376% 63
Algeria Algeria 0.826 +0.499% 196
Ecuador Ecuador 49.8 -0.517% 53
Egypt Egypt 0.0452 0% 205
Eritrea Eritrea 8.67 -0.3% 170
Spain Spain 37.2 +0.027% 82
Estonia Estonia 57.1 +0.0468% 33
Ethiopia Ethiopia 15 -0.43% 142
Finland Finland 73.7 0% 11
Fiji Fiji 63.1 +0.583% 23
France France 31.8 +0.481% 105
Faroe Islands Faroe Islands 0.0584 0% 204
Micronesia (Federated States of) Micronesia (Federated States of) 92.1 +0.0465% 3
Gabon Gabon 91.2 -0.0505% 4
United Kingdom United Kingdom 13.3 +0.257% 148
Georgia Georgia 40.6 0% 75
Ghana Ghana 35.2 +0.0904% 88
Guinea Guinea 24.9 -0.651% 117
Gambia Gambia 22.8 -2.42% 126
Guinea-Bissau Guinea-Bissau 69.8 -0.428% 17
Equatorial Guinea Equatorial Guinea 86.7 -0.343% 7
Greece Greece 30.3 0% 108
Grenada Grenada 52.1 0% 49
Greenland Greenland 0.000536 0% 207
Guatemala Guatemala 32.7 -0.33% 101
Guam Guam 51.9 0% 50
Guyana Guyana 93.5 -0.05% 2
Honduras Honduras 56.5 -0.331% 35
Croatia Croatia 34.7 +0.129% 89
Haiti Haiti 12.4 -0.904% 151
Hungary Hungary 22.5 -0.0711% 128
Indonesia Indonesia 48 -0.662% 56
Isle of Man Isle of Man 6.07 0% 177
India India 24.4 +0.368% 120
Ireland Ireland 11.5 +0.509% 156
Iran Iran 6.64 +0.0946% 175
Iraq Iraq 1.9 0% 186
Iceland Iceland 0.522 +1.27% 197
Italy Italy 32.7 +0.558% 100
Jamaica Jamaica 55.8 +0.647% 38
Jordan Jordan 1.1 0% 192
Japan Japan 68.4 0% 19
Kazakhstan Kazakhstan 1.3 +0.839% 190
Kenya Kenya 6.34 0% 176
Kyrgyzstan Kyrgyzstan 7.05 +1.37% 174
Cambodia Cambodia 43.9 -1.97% 65
Kiribati Kiribati 1.46 0% 188
St. Kitts & Nevis St. Kitts & Nevis 42.3 0% 71
South Korea South Korea 64.2 -0.159% 20
Kuwait Kuwait 0.351 0% 199
Laos Laos 71.6 -0.208% 15
Lebanon Lebanon 14.1 +0.417% 145
Liberia Liberia 78.5 -0.399% 10
Libya Libya 0.123 0% 203
St. Lucia St. Lucia 34 0% 94
Liechtenstein Liechtenstein 41.9 0% 72
Sri Lanka Sri Lanka 34.1 -0.15% 93
Lesotho Lesotho 1.14 0% 191
Lithuania Lithuania 35.2 +0.0651% 87
Luxembourg Luxembourg 34.5 0% 92
Latvia Latvia 54.9 +0.113% 40
Saint Martin (French part) Saint Martin (French part) 24.8 0% 119
Morocco Morocco 12.9 +0.181% 149
Monaco Monaco 0 208
Moldova Moldova 11.8 +0.243% 153
Madagascar Madagascar 21.3 -0.106% 131
Maldives Maldives 2.73 0% 184
Mexico Mexico 33.7 -0.195% 97
Marshall Islands Marshall Islands 52.2 0% 48
North Macedonia North Macedonia 39.7 0% 77
Mali Mali 10.9 0% 162
Malta Malta 1.44 0% 189
Myanmar (Burma) Myanmar (Burma) 42.8 -1.03% 68
Montenegro Montenegro 61.5 0% 25
Mongolia Mongolia 9.1 -0.00782% 168
Northern Mariana Islands Northern Mariana Islands 53 0% 42
Mozambique Mozambique 46.1 -0.631% 60
Mauritania Mauritania 0.293 -1.78% 200
Mauritius Mauritius 19.5 +0.103% 133
Malawi Malawi 22.9 -1.91% 125
Malaysia Malaysia 57.9 -0.263% 30
Namibia Namibia 7.89 -1.08% 173
New Caledonia New Caledonia 45.8 -0.0119% 61
Niger Niger 0.833 -1.16% 195
Nigeria Nigeria 23.4 -0.761% 124
Nicaragua Nicaragua 26.7 -3.02% 115
Netherlands Netherlands 11 +0.252% 161
Norway Norway 33.5 +0.064% 98
Nepal Nepal 41.6 0% 73
Nauru Nauru 0 208
New Zealand New Zealand 37.7 +0.236% 81
Oman Oman 0.00779 -0.912% 206
Pakistan Pakistan 4.73 -1.12% 178
Panama Panama 56.5 -0.272% 34
Peru Peru 56.2 -0.24% 36
Philippines Philippines 24.3 +0.483% 121
Palau Palau 90.4 +0.193% 5
Papua New Guinea Papua New Guinea 79 -0.0936% 9
Poland Poland 31.1 +0.13% 107
Puerto Rico Puerto Rico 56.1 +0.0986% 37
North Korea North Korea 49.7 -0.353% 55
Portugal Portugal 36.2 0% 84
Paraguay Paraguay 39.3 -1.45% 79
French Polynesia French Polynesia 43.1 0% 67
Qatar Qatar 0 208
Romania Romania 30.1 0% 109
Russia Russia 49.8 0% 54
Rwanda Rwanda 11.3 +0.361% 158
Saudi Arabia Saudi Arabia 0.454 0% 198
Sudan Sudan 9.64 -0.947% 166
Senegal Senegal 41.5 -0.498% 74
Singapore Singapore 21.2 -1.17% 132
Solomon Islands Solomon Islands 90.1 -0.0289% 6
Sierra Leone Sierra Leone 34.6 -0.784% 91
El Salvador El Salvador 27.7 -0.777% 113
San Marino San Marino 16.7 0% 140
Somalia Somalia 9.29 -1.3% 167
Serbia Serbia 32.4 +0.0141% 103
South Sudan South Sudan 11.3 0% 157
São Tomé & Príncipe São Tomé & Príncipe 52.8 -1.21% 44
Suriname Suriname 94.5 -0.0806% 1
Slovakia Slovakia 40.1 0% 76
Slovenia Slovenia 61.3 -0.164% 26
Sweden Sweden 68.7 0% 18
Eswatini Eswatini 29.1 +0.243% 111
Sint Maarten Sint Maarten 10.9 0% 164
Seychelles Seychelles 73.3 0% 12
Syria Syria 2.82 -0.837% 183
Turks & Caicos Islands Turks & Caicos Islands 11.1 0% 160
Chad Chad 3.25 -2.62% 181
Togo Togo 22.1 -0.245% 130
Thailand Thailand 38.8 -0.181% 80
Tajikistan Tajikistan 3.07 +0.235% 182
Turkmenistan Turkmenistan 8.78 0% 169
Timor-Leste Timor-Leste 61.8 -0.152% 24
Tonga Tonga 12.4 0% 150
Trinidad & Tobago Trinidad & Tobago 44.3 -0.184% 64
Tunisia Tunisia 4.54 +0.217% 179
Turkey Turkey 29.3 +0.697% 110
Tuvalu Tuvalu 33.3 0% 99
Tanzania Tanzania 50.6 -1.04% 52
Uganda Uganda 11.2 -1.8% 159
Ukraine Ukraine 16.7 +0.0619% 139
Uruguay Uruguay 11.8 +1.02% 152
United States United States 33.9 0% 96
Uzbekistan Uzbekistan 8.49 +0.696% 171
St. Vincent & Grenadines St. Vincent & Grenadines 73.2 0% 13
Venezuela Venezuela 52.3 -0.101% 47
British Virgin Islands British Virgin Islands 24.1 0% 122
U.S. Virgin Islands U.S. Virgin Islands 57.7 +0.748% 32
Vietnam Vietnam 47.2 +0.516% 58
Vanuatu Vanuatu 36.3 0% 83
Samoa Samoa 57.8 -0.298% 31
Yemen Yemen 1.04 0% 193
South Africa South Africa 14 -0.214% 146
Zambia Zambia 59.8 -0.422% 28
Zimbabwe Zimbabwe 44.9 -0.265% 62

The indicator 'Forest area (% of land area)' is a crucial metric that reflects the proportion of land area covered by forests relative to the total land area of a country or region. In 2022, the global median forest area stood at approximately 31.52%. This figure highlights the ongoing challenges and opportunities in forest management and conservation worldwide. Forests play an instrumental role in mitigating climate change, preserving biodiversity, and providing essential resources to human populations. Tracking this indicator helps nations and organizations understand their progress toward environmental sustainability and the health of their ecosystems.

The importance of measuring forest area cannot be overstated. Forests serve multiple functions: they act as carbon sinks, help regulate the water cycle, maintain soil health, and offer habitat for countless species. In addition, they provide livelihoods for millions of people, particularly in rural areas where communities depend on forest resources for food, medicine, and materials. A higher percentage of forest area often correlates with better ecological health and can contribute to enhanced resilience against climate-related disasters. In contrast, declining forest areas signal potential environmental degradation and loss of ecosystem services, which may exacerbate poverty and social inequality.

This indicator is intricately linked to others, including biodiversity, carbon emissions, and overall land use. For instance, regions with extensive forest areas tend to have richer biodiversity, as forests provide habitats for various species. Conversely, high carbon emissions often accompany deforestation, meaning that tracking these indicators together can reveal much about a region's environmental health. Countries with below-average forest area percentages may face significant ecological challenges, including increased erosion and diminished wildlife, which can lead to broader economic ramifications.

Several factors influence forest area percentages. Deforestation due to agriculture, urbanization, and logging has been a significant driver of forest loss, particularly in tropical regions. Economic incentives often prioritize short-term gains over long-term sustainability, leading to extensive land clearing for farming or development. Climate change also poses a threat to forests, with rising temperatures and altered rainfall patterns prompting shifts in forest composition and health. Additionally, government policies and enforcement play a critical role; countries that prioritize sustainable forestry practices and conservation will see more stable or growing forest areas, while those lacking regulation may experience rapid forest decline.

To address the ongoing challenges of forest area loss, comprehensive strategies must be implemented. One effective approach is the promotion of sustainable land management practices that balance economic needs with environmental conservation. This includes agroforestry systems, which combine agricultural and forestry practices, yielding benefits such as increased biodiversity and improved soil quality. Reforestation and afforestation initiatives are also essential in increasing forest area and restoring degraded landscapes. Furthermore, community engagement is vital; empowering local communities through education and sustainable livelihood programs can lead to better forest stewardship and protection.

International cooperation is another critical aspect of tackling forest loss. Multi-nation agreements aimed at climate change and biodiversity conservation can enhance efforts to protect forests globally. Support for indigenous rights and traditional land management practices can also lead to successful outcomes in forest preservation. Aligning economic incentives with environmental goals through mechanisms like payment for ecosystem services can further motivate sustainable practices that curtail forest loss.

Despite these strategies, there are flaws and challenges to consider. Economic development pressures often overshadow environmental concerns, leading to conflicts over land use. Additionally, illegal logging and unregulated land clearing remain substantial hurdles that can undermine conservation efforts. Lack of accurate data can hinder effective policy-making and monitoring; therefore, improving data collection and transparency is critical for informed decision-making and effective resource management.

Examining the latest figures reveals the disparities in forest area across the globe. For instance, the top five countries with the highest forest area percentages—Suriname (94.52%), Guyana (93.46%), Micronesia (92.11%), Gabon (91.23%), and Palau (90.37%)—demonstrate successful conservation strategies and extensive, undisturbed natural landscapes. These countries have vast tracts of rainforest and benefit significantly from their ecological assets, suggesting that capitalizing on these resources in sustainable ways can lead to both environmental health and economic opportunities.

Conversely, the bottom five countries—Monaco, Nauru, Qatar, Greenland, and Oman—exhibit minimal forest area percentages. The reasons for their low forest cover vary; for example, Monaco's limited land area makes extensive forestation impractical, while desert nations like Qatar and Oman face geographical constraints that limit their tree cover. Conversely, nations heavily reliant on industrial development may prioritize land for infrastructure over forest preservation.

Over the past three decades, global forest area percentages have shown a general decline, from 33.01% in 1992 to 31.14% in 2022. This downward trend underscores the urgent need for concerted efforts to reverse deforestation and promote sustainable land practices globally. Countries can look to successful models of forest management while forging new paths that honor both environmental integrity and human needs. Only with a commitment to protecting our forests can we hope to secure a healthier planet for future generations.

                    
# 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 = 'AG.LND.FRST.ZS'

# 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 <- 'AG.LND.FRST.ZS'

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