Bird species, threatened

Source: worldbank.org, 01.09.2025

Year: 2018

Flag Country Value Value change, % Rank
Aruba Aruba 2 57
Afghanistan Afghanistan 16 43
Angola Angola 32 27
Albania Albania 8 51
Andorra Andorra 3 56
United Arab Emirates United Arab Emirates 13 46
Argentina Argentina 52 17
Armenia Armenia 14 45
American Samoa American Samoa 8 51
Antigua & Barbuda Antigua & Barbuda 3 56
Australia Australia 52 17
Austria Austria 13 46
Azerbaijan Azerbaijan 17 42
Burundi Burundi 15 44
Belgium Belgium 8 51
Benin Benin 12 47
Burkina Faso Burkina Faso 12 47
Bangladesh Bangladesh 36 24
Bulgaria Bulgaria 17 42
Bahrain Bahrain 7 52
Bahamas Bahamas 10 49
Bosnia & Herzegovina Bosnia & Herzegovina 7 52
Belarus Belarus 9 50
Belize Belize 6 53
Bermuda Bermuda 3 56
Bolivia Bolivia 55 15
Brazil Brazil 175 1
Barbados Barbados 4 55
Brunei Brunei 31 28
Bhutan Bhutan 21 38
Botswana Botswana 16 43
Central African Republic Central African Republic 16 43
Canada Canada 24 35
Switzerland Switzerland 9 50
Chile Chile 35 25
China China 96 6
Côte d’Ivoire Côte d’Ivoire 25 34
Cameroon Cameroon 29 30
Congo - Kinshasa Congo - Kinshasa 42 20
Congo - Brazzaville Congo - Brazzaville 7 52
Colombia Colombia 126 3
Comoros Comoros 14 45
Cape Verde Cape Verde 7 52
Costa Rica Costa Rica 27 32
Cuba Cuba 19 40
Curaçao Curaçao 2 57
Cayman Islands Cayman Islands 3 56
Cyprus Cyprus 7 52
Czechia Czechia 9 50
Germany Germany 11 48
Djibouti Djibouti 12 47
Dominica Dominica 7 52
Denmark Denmark 9 50
Dominican Republic Dominican Republic 17 42
Algeria Algeria 15 44
Ecuador Ecuador 106 5
Egypt Egypt 14 45
Eritrea Eritrea 21 38
Spain Spain 19 40
Estonia Estonia 9 50
Ethiopia Ethiopia 35 25
Finland Finland 11 48
Fiji Fiji 14 45
France France 16 43
Faroe Islands Faroe Islands 6 53
Micronesia (Federated States of) Micronesia (Federated States of) 12 47
Gabon Gabon 7 52
United Kingdom United Kingdom 11 48
Georgia Georgia 14 45
Ghana Ghana 23 36
Gibraltar Gibraltar 6 53
Guinea Guinea 20 39
Gambia Gambia 14 45
Guinea-Bissau Guinea-Bissau 12 47
Equatorial Guinea Equatorial Guinea 6 53
Greece Greece 17 42
Grenada Grenada 2 57
Greenland Greenland 6 53
Guatemala Guatemala 17 42
Guam Guam 14 45
Guyana Guyana 16 43
Hong Kong SAR China Hong Kong SAR China 21 38
Honduras Honduras 14 45
Croatia Croatia 14 45
Haiti Haiti 17 42
Hungary Hungary 13 46
Indonesia Indonesia 160 2
Isle of Man Isle of Man 0 59
India India 93 7
Ireland Ireland 9 50
Iran Iran 28 31
Iraq Iraq 17 42
Iceland Iceland 7 52
Israel Israel 18 41
Italy Italy 17 42
Jamaica Jamaica 11 48
Jordan Jordan 14 45
Japan Japan 49 18
Kazakhstan Kazakhstan 27 32
Kenya Kenya 44 19
Kyrgyzstan Kyrgyzstan 15 44
Cambodia Cambodia 31 28
Kiribati Kiribati 6 53
St. Kitts & Nevis St. Kitts & Nevis 3 56
South Korea South Korea 33 26
Kuwait Kuwait 11 48
Laos Laos 29 30
Lebanon Lebanon 11 48
Liberia Liberia 14 45
Libya Libya 8 51
St. Lucia St. Lucia 7 52
Liechtenstein Liechtenstein 2 57
Sri Lanka Sri Lanka 16 43
Lesotho Lesotho 8 51
Lithuania Lithuania 10 49
Luxembourg Luxembourg 3 56
Latvia Latvia 11 48
Macao SAR China Macao SAR China 4 55
Saint Martin (French part) Saint Martin (French part) 1 58
Morocco Morocco 18 41
Monaco Monaco 0 59
Moldova Moldova 11 48
Madagascar Madagascar 37 23
Maldives Maldives 0 59
Mexico Mexico 71 9
Marshall Islands Marshall Islands 4 55
North Macedonia North Macedonia 13 46
Mali Mali 17 42
Malta Malta 5 54
Myanmar (Burma) Myanmar (Burma) 56 14
Montenegro Montenegro 13 46
Mongolia Mongolia 24 35
Northern Mariana Islands Northern Mariana Islands 17 42
Mozambique Mozambique 30 29
Mauritania Mauritania 19 40
Mauritius Mauritius 12 47
Malawi Malawi 19 40
Malaysia Malaysia 63 11
Namibia Namibia 32 27
New Caledonia New Caledonia 17 42
Niger Niger 13 46
Nigeria Nigeria 21 38
Nicaragua Nicaragua 17 42
Netherlands Netherlands 10 49
Norway Norway 11 48
Nepal Nepal 38 22
Nauru Nauru 2 57
New Zealand New Zealand 69 10
Oman Oman 13 46
Pakistan Pakistan 33 26
Panama Panama 25 34
Peru Peru 119 4
Philippines Philippines 93 7
Palau Palau 6 53
Papua New Guinea Papua New Guinea 39 21
Poland Poland 11 48
Puerto Rico Puerto Rico 11 48
North Korea North Korea 29 30
Portugal Portugal 15 44
Paraguay Paraguay 27 32
Palestinian Territories Palestinian Territories 15 44
French Polynesia French Polynesia 35 25
Qatar Qatar 9 50
Romania Romania 17 42
Russia Russia 57 13
Rwanda Rwanda 20 39
Saudi Arabia Saudi Arabia 18 41
Sudan Sudan 26 33
Senegal Senegal 19 40
Singapore Singapore 22 37
Solomon Islands Solomon Islands 24 35
Sierra Leone Sierra Leone 16 43
El Salvador El Salvador 7 52
San Marino San Marino 0 59
Somalia Somalia 21 38
Serbia Serbia 13 46
South Sudan South Sudan 21 38
São Tomé & Príncipe São Tomé & Príncipe 12 47
Suriname Suriname 9 50
Slovakia Slovakia 12 47
Slovenia Slovenia 10 49
Sweden Sweden 11 48
Eswatini Eswatini 13 46
Sint Maarten Sint Maarten 1 58
Seychelles Seychelles 13 46
Syria Syria 17 42
Turks & Caicos Islands Turks & Caicos Islands 4 55
Chad Chad 16 43
Togo Togo 13 46
Thailand Thailand 62 12
Tajikistan Tajikistan 15 44
Turkmenistan Turkmenistan 19 40
Timor-Leste Timor-Leste 6 53
Tonga Tonga 5 54
Trinidad & Tobago Trinidad & Tobago 5 54
Tunisia Tunisia 11 48
Turkey Turkey 20 39
Tuvalu Tuvalu 1 58
Tanzania Tanzania 49 18
Uganda Uganda 30 29
Ukraine Ukraine 17 42
Uruguay Uruguay 22 37
United States United States 91 8
Uzbekistan Uzbekistan 19 40
St. Vincent & Grenadines St. Vincent & Grenadines 4 55
Venezuela Venezuela 52 17
British Virgin Islands British Virgin Islands 3 56
U.S. Virgin Islands U.S. Virgin Islands 3 56
Vietnam Vietnam 52 17
Vanuatu Vanuatu 8 51
Samoa Samoa 6 53
Yemen Yemen 16 43
South Africa South Africa 54 16
Zambia Zambia 20 39
Zimbabwe Zimbabwe 19 40

The issue of bird species population decline is a pressing environmental concern that reflects the broader health of our ecosystems. In 2018, the median number of threatened bird species worldwide was reported at 14.0, indicating a significant decline in bird populations globally. While this figure helps to highlight the risks facing avian life, the story is much more nuanced when we look at specific regions around the world.

Latin America emerges as a stark example, where countries such as Brazil, Indonesia, Colombia, Peru, and Ecuador report alarmingly high numbers of threatened bird species. Brazil tops the list with a staggering count of 175 species at risk, followed closely by Indonesia with 160. Colombia and Peru also showcase troubling figures, with 126 and 119 species threatened, respectively. These numbers reflect ongoing deforestation, habitat loss, and changes in land use practices that severely impact avian habitats. The tropical rainforests of Brazil and Indonesia, for instance, are rich in biodiversity but are undergoing rapid degradation due to agricultural expansion and illegal logging.

On the other end of the spectrum, certain areas report no threatened bird species at all. The Isle of Man, Maldives, Monaco, and San Marino, for example, each have a count of zero. Sint Maarten isn’t far behind, with just one threatened species. These regions boast relatively stable environments and effective conservation practices, showing that proactive measures can lead to positive outcomes for wildlife preservation. The contrast between the top and bottom areas sheds light on the effectiveness of conservation efforts as well as the varying levels of biodiversity pressure in different parts of the world.

Globally, the total number of threatened bird species was recorded at 4584 as of 2017. This staggering figure underscores the necessity for immediate action and policy development aimed at habitat protection, reduction of pollution, and conservation education to mitigate the challenges faced by bird populations. The varying figures across regions illustrate not just a crisis, but also the scope and scale of the conservation work needed to reverse these trends.

In conclusion, the plight of threatened bird species is a multifaceted issue that requires targeted attention and sustained action. By learning from the regions that have successfully minimized their threatened species counts, we can implement effective strategies to protect our avian friends and, by extension, the ecosystems they inhabit.

                    
# 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.BIR.THRD.NO'

# 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.BIR.THRD.NO'

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