import os
import pandas as pd
import geopandas as gpd
pd.set_option('display.max_columns', None)
# ------ IMPORT DATASETS ------
data_folder = os.path.join('data', 'WDPA_Nov2025_Latam')
fp = os.path.join(data_folder, 'WDPA_Nov2025_Latam_shp_0', 'WDPA_Nov2025_Latam_shp0-polygons.shp')
wdpa0 = gpd.read_file(fp)
fp = os.path.join(data_folder, 'WDPA_Nov2025_Latam_shp_1', 'WDPA_Nov2025_Latam_shp1-polygons.shp')
wdpa1 = gpd.read_file(fp)
fp = os.path.join(data_folder, 'WDPA_Nov2025_Latam_shp_2', 'WDPA_Nov2025_Latam_shp2-polygons.shp')
wdpa2 = gpd.read_file(fp)
# Standardize column names to lowercase
wdpa0.columns = wdpa0.columns.str.lower()
wdpa1.columns = wdpa1.columns.str.lower()
wdpa2.columns = wdpa2.columns.str.lower()World Database on Protected Areas (WDPA) - Central America Analysis
This notebook contains preliminary analysis of protected area coverage in Central American countries using the World Database on Protected Areas (WDPA) datasets.
The data accessed here is a subset of the original dataset and it only includes polygons for protected areas in Latin America (the original dataset is global with both polygon and point data). This subset was prepared for educational purposes and can be downloaded from the course’s Google Drive through the zip file WDPA_Nov2025_Latam.zip. It maintains the file structure of the original complete dataset.
References
UNEP-WCMC and IUCN (2025), Protected Planet: The World Database on Protected Areas (WDPA) [On-line], November 2025, Cambridge, UK: UNEP-WCMC and IUCN. Available at: www.protectedplanet.net.
UNEP-WCMC (2019). User Manual for the World Database on Protected Areas and world database on other effective area-based conservation measures: 1.6. UNEP-WCMC: Cambridge, UK. Available at: http://wcmc.io/WDPA_Manual
Data import and preparation
print("WDPA0 shape:", wdpa0.shape)
wdpa0.head()WDPA0 shape: (3679, 31)
| wdpaid | wdpa_pid | pa_def | name | orig_name | desig | desig_eng | desig_type | iucn_cat | int_crit | marine | rep_m_area | gis_m_area | rep_area | gis_area | no_take | no_tk_area | status | status_yr | gov_type | own_type | mang_auth | mang_plan | verif | metadataid | sub_loc | parent_iso | iso3 | supp_info | cons_obj | geometry | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 1.0 | 1 | 1 | Diamond Reef and Salt Fish Tail Reef | Diamond Reef | Marine Reserve | Marine Reserve | National | Ia | Not Applicable | 2 | 14.572487 | 14.587808 | 14.581467 | 14.587808 | All | 14.572487 | Designated | 1973 | Federal or national ministry or agency | State | Fisheries Division | Not Reported | State Verified | 1807 | AG-04 | ATG | ATG | Not Applicable | Not Applicable | POLYGON ((-61.82494 17.18497, -61.82497 17.184... |
| 1 | 2.0 | 2 | 1 | Palaster Reef | Palaster Reef | Marine Reserve | Marine Reserve | National | Ia | Not Applicable | 2 | 3.829107 | 3.833094 | 3.831674 | 3.833094 | All | 3.829107 | Designated | 1973 | Federal or national ministry or agency | State | Fisheries Division | Not Reported | State Verified | 1807 | AG-10 | ATG | ATG | Not Applicable | Not Applicable | POLYGON ((-61.74007 17.52001, -61.77174 17.526... |
| 2 | 3.0 | 3 | 1 | Laguna de los Pozuelos | Laguna de los Pozuelos | Monumento Natural | Nature Monument | National | III | Not Applicable | 0 | 0.000000 | 0.000000 | 160.000000 | 217.931016 | Not Applicable | 0.000000 | Designated | 1980 | Federal or national ministry or agency | Not Reported | Administración de Parques Nacionales | Not Reported | State Verified | 1935 | AR-Y | ARG | ARG | Not Applicable | Not Applicable | POLYGON ((-65.98955 -22.47423, -65.99441 -22.4... |
| 3 | 4.0 | 4 | 1 | Formosa | Formosa | Reserva Natural | Nature Reserve | National | Ia | Not Applicable | 0 | 0.000000 | 0.000000 | 90.050000 | 90.746053 | Not Applicable | 0.000000 | Designated | 1968 | Federal or national ministry or agency | Not Reported | Administración de Parques Nacionales | https://sib.gob.ar/archivos/plan_de_gestion_RN... | State Verified | 1935 | AR-P | ARG | ARG | Not Applicable | Not Applicable | POLYGON ((-61.83791 -24.20686, -61.83781 -24.2... |
| 4 | 6.0 | 6 | 1 | Los Glaciares | Los Glaciares | Parque Nacional | National Park | National | II | Not Applicable | 0 | 0.000000 | 0.000000 | 5385.500000 | 5368.384077 | Not Applicable | 0.000000 | Designated | 1937 | Federal or national ministry or agency | Not Reported | Administración de Parques Nacionales | https://sib.gob.ar/archivos/PG_PN_LOS_GLACIARE... | State Verified | 1935 | AR-Z | ARG | ARG | Not Applicable | Not Applicable | POLYGON ((-73.14850 -49.27008, -73.14368 -49.2... |
print("WDPA1 shape:", wdpa1.shape)
wdpa1.head()WDPA1 shape: (3421, 31)
| wdpaid | wdpa_pid | pa_def | name | orig_name | desig | desig_eng | desig_type | iucn_cat | int_crit | marine | rep_m_area | gis_m_area | rep_area | gis_area | no_take | no_tk_area | status | status_yr | gov_type | own_type | mang_auth | mang_plan | verif | metadataid | sub_loc | parent_iso | iso3 | supp_info | cons_obj | geometry | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 478006.0 | 478006 | 1 | Estero La Manzanilla | Estero La Manzanilla | Sitio Ramsar, Humedal de Importancia Internaci... | Ramsar Site, Wetland of International Importance | International | Not Reported | (ii)(iv)(vii)(viii) | 0 | 0.0 | 0.000334 | 2.64 | 2.641565 | Not Applicable | 0.0 | Designated | 2008 | Not Reported | Not Reported | Not Reported | Not Reported | State Verified | 1856 | MX-JAL | MEX | MEX | Not Applicable | Not Applicable | POLYGON ((-104.82210 19.31424, -104.82200 19.3... |
| 1 | 478007.0 | 478007 | 1 | Laguna Barra de Navidad | Laguna Barra de Navidad | Sitio Ramsar, Humedal de Importancia Internaci... | Ramsar Site, Wetland of International Importance | International | Not Reported | (i)(ii)(iv)(vii)(viii) | 1 | 0.0 | 2.817812 | 7.94 | 7.946036 | Not Reported | 0.0 | Designated | 2008 | Not Reported | Not Reported | Not Reported | Not Reported | State Verified | 1856 | MX-JAL | MEX | MEX | Not Applicable | Not Applicable | POLYGON ((-104.68078 19.20175, -104.68132 19.2... |
| 2 | 478008.0 | 478008 | 1 | Estero Majahuas | Estero Majahuas | Sitio Ramsar, Humedal de Importancia Internaci... | Ramsar Site, Wetland of International Importance | International | Not Reported | (ii)(iv)(vii)(viii) | 0 | 0.0 | 0.004628 | 7.86 | 7.867309 | Not Applicable | 0.0 | Designated | 2008 | Not Reported | Not Reported | Not Reported | Not Reported | State Verified | 1856 | MX-JAL | MEX | MEX | Not Applicable | Not Applicable | POLYGON ((-105.37759 19.84940, -105.37710 19.8... |
| 3 | 478009.0 | 478009 | 1 | Laguna Chalacatepec | Laguna Chalacatepec | Sitio Ramsar, Humedal de Importancia Internaci... | Ramsar Site, Wetland of International Importance | International | Not Reported | (i)(ii)(iv)(vii)(viii) | 0 | 0.0 | 0.000000 | 10.93 | 10.942113 | Not Applicable | 0.0 | Designated | 2008 | Not Reported | Not Reported | Not Reported | Not Reported | State Verified | 1856 | MX-JAL | MEX | MEX | Not Applicable | Not Applicable | POLYGON ((-105.21927 19.64621, -105.21986 19.6... |
| 4 | 478010.0 | 478010 | 1 | Oasis de la Sierra El Pilar | Oasis de la Sierra El Pilar | Sitio Ramsar, Humedal de Importancia Internaci... | Ramsar Site, Wetland of International Importance | International | Not Reported | (i)(ii)(iii) | 0 | 0.0 | 0.000000 | 1808.03 | 1775.209223 | Not Applicable | 0.0 | Designated | 2008 | Not Reported | Not Reported | Not Reported | Not Reported | State Verified | 1856 | MX-BCS | MEX | MEX | Not Applicable | Not Applicable | POLYGON ((-110.90110 25.02583, -110.88632 25.0... |
print("WDPA2 shape:", wdpa2.shape)
wdpa2.head()WDPA2 shape: (3276, 31)
| wdpaid | wdpa_pid | pa_def | name | orig_name | desig | desig_eng | desig_type | iucn_cat | int_crit | marine | rep_m_area | gis_m_area | rep_area | gis_area | no_take | no_tk_area | status | status_yr | gov_type | own_type | mang_auth | mang_plan | verif | metadataid | sub_loc | parent_iso | iso3 | supp_info | cons_obj | geometry | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 555636487.0 | 555636487 | 1 | Reserva Biológica Do Parque Equitativa | Reserva Biológica Do Parque Equitativa | Reserva Biológica | Biological Reserve | National | Ia | Not Applicable | 0 | 0.0 | 0.0 | 1.570550 | 1.570551 | Not Applicable | 0.0 | Designated | 2014 | Sub-national ministry or agency | Not Reported | Secretaria Municipal De Meio Ambiente, Agricul... | Not Reported | State Verified | 1802 | BRA-RJ | BRA | BRA | Not Applicable | Not Applicable | MULTIPOLYGON (((-43.25874 -22.63150, -43.25894... |
| 1 | 555636488.0 | 555636488 | 1 | Parque Natural Municipal Corredores De Biodive... | Parque Natural Municipal Corredores De Biodive... | Parque | Park | National | II | Not Applicable | 0 | 0.0 | 0.0 | 0.715180 | 0.715174 | Not Applicable | 0.0 | Designated | 2011 | Sub-national ministry or agency | Not Reported | Secretaria Do Meio Ambiente, Parques E Jardins... | Not Reported | State Verified | 1802 | BRA-SP | BRA | BRA | Not Applicable | Not Applicable | POLYGON ((-47.47996 -23.39006, -47.48335 -23.3... |
| 2 | 555636489.0 | 555636489 | 1 | Parque Natural Municipal De Brigadeiro Tobias | Parque Natural Municipal De Brigadeiro Tobias | Parque | Park | National | II | Not Applicable | 0 | 0.0 | 0.0 | 0.118531 | 0.118531 | Not Applicable | 0.0 | Designated | 2015 | Sub-national ministry or agency | Not Reported | Secretaria Do Meio Ambiente, Parques E Jardins... | Not Reported | State Verified | 1802 | BRA-SP | BRA | BRA | Not Applicable | Not Applicable | POLYGON ((-47.36366 -23.50666, -47.36462 -23.5... |
| 3 | 555636490.0 | 555636490 | 1 | Reserva Particular Do Patrimônio Natural Boa Fé | Reserva Particular Do Patrimônio Natural Boa Fé | Reserva Particular do Patrimônio Natural | Natural Heritage Private Reserve | National | IV | Not Applicable | 0 | 0.0 | 0.0 | 0.141830 | 0.141829 | Not Applicable | 0.0 | Designated | 2016 | Individual landowners | Individual landowners | Instituto Estadual De Meio Ambiente E Recursos... | Not Reported | State Verified | 1802 | BRA-ES | BRA | BRA | Not Applicable | Not Applicable | POLYGON ((-41.14679 -20.07258, -41.14852 -20.0... |
| 4 | 555636491.0 | 555636491 | 1 | Parque Estadual Ponta Da Tulha | Parque Estadual Ponta Da Tulha | Parque | Park | National | II | Not Applicable | 0 | 0.0 | 0.0 | 17.053069 | 17.052181 | Not Applicable | 0.0 | Designated | 2015 | Sub-national ministry or agency | Not Reported | Instituto Do Meio Ambiente E Recursos Hídricos... | Not Reported | State Verified | 1802 | BRA-BA | BRA | BRA | Not Applicable | Not Applicable | POLYGON ((-39.06462 -14.59730, -39.06520 -14.5... |
Calculate protected area coverage in Central America
# Calculate total protected reported area for each Central American country from WDPA datasets
# Standardize column names to lowercase
wdpa0.columns = wdpa0.columns.str.lower()
wdpa1.columns = wdpa1.columns.str.lower()
wdpa2.columns = wdpa2.columns.str.lower()
# Belize
area0 = wdpa0.loc[wdpa0["iso3"] == "BLZ", "rep_area"].sum()
area1 = wdpa1.loc[wdpa1["iso3"] == "BLZ", "rep_area"].sum()
area2 = wdpa2.loc[wdpa2["iso3"] == "BLZ", "rep_area"].sum()
total_area_blz = area0 + area1 + area2
print(f"Total protected area in Belize (sq. km): {total_area_blz:,.2f}")
# Costa Rica
area0 = wdpa0.loc[wdpa0["iso3"] == "CRI", "rep_area"].sum()
area1 = wdpa1.loc[wdpa1["iso3"] == "CRI", "rep_area"].sum()
area2 = wdpa2.loc[wdpa2["iso3"] == "CRI", "rep_area"].sum()
total_area_cri = area0 + area1 + area2
print(f"Total protected area in Costa Rica (sq. km): {total_area_cri:,.2f}")
# El Salvador
area0 = wdpa0.loc[wdpa0["iso3"] == "SLV", "rep_area"].sum()
area1 = wdpa1.loc[wdpa1["iso3"] == "SLV", "rep_area"].sum()
area2 = wdpa2.loc[wdpa2["iso3"] == "SLV", "rep_area"].sum()
total_area_slv = area0 + area1 + area2
print(f"Total protected area in El Salvador (sq. km): {total_area_slv:,.2f}")
# Guatemala
area0 = wdpa0.loc[wdpa0["iso3"] == "GTM", "rep_area"].sum()
area1 = wdpa1.loc[wdpa1["iso3"] == "GTM", "rep_area"].sum()
area2 = wdpa2.loc[wdpa2["iso3"] == "GTM", "rep_area"].sum()
total_area_gtm = area0 + area1 + area2
print(f"Total protected area in Guatemala (sq. km): {total_area_gtm:,.2f}")
# Honduras
area0 = wdpa0.loc[wdpa0["iso3"] == "HND", "rep_area"].sum()
area1 = wdpa1.loc[wdpa1["iso3"] == "HND", "rep_area"].sum()
area2 = wdpa2.loc[wdpa2["iso3"] == "HND", "rep_area"].sum()
total_area_hnd = area0 + area1 + area2
print(f"Total protected area in Honduras (sq. km): {total_area_hnd:,.2f}")
# Nicaragua
area0 = wdpa0.loc[wdpa0["iso3"] == "NIC", "rep_area"].sum()
area1 = wdpa1.loc[wdpa1["iso3"] == "NIC", "rep_area"].sum()
area2 = wdpa2.loc[wdpa2["iso3"] == "NIC", "rep_area"].sum()
total_area_nic = area0 + area1 + area2
print(f"Total protected area in Nicaragua (sq. km): {total_area_nic:,.2f}")
# Panama
area0 = wdpa0.loc[wdpa0["iso3"] == "PAN", "rep_area"].sum()
area1 = wdpa1.loc[wdpa1["iso3"] == "PAN", "rep_area"].sum()
area2 = wdpa2.loc[wdpa2["iso3"] == "PAN", "rep_area"].sum()
total_area_pan = area0 + area1 + area2
print(f"Total protected area in Panama (sq. km): {total_area_pan:,.2f}")
Total protected area in Belize (sq. km): 10,181.87
Total protected area in Costa Rica (sq. km): 199,170.72
Total protected area in El Salvador (sq. km): 5,701.12
Total protected area in Guatemala (sq. km): 40,316.17
Total protected area in Honduras (sq. km): 96,103.89
Total protected area in Nicaragua (sq. km): 84,985.39
Total protected area in Panama (sq. km): 133,553.40
# ----------------------------------------------------------------
# Calculate percentage of protected area for Belize
pct_blz = (total_area_blz / 22966) * 100
print(f"Percentage of protected area in Belize relative to country's land area: {pct_blz:.2f}%\n")Percentage of protected area in Belize relative to country's land area: 44.33%
TO DO: Repeat percentage calculation for the rest of the Central American countries.
The areas are:
- Belize: 22,966 km²
- Costa Rica: 51,180 km²
- El Salvador: 21,041 km²
- Guatemala: 108,889 km²
- Honduras: 112,492 km²
- Nicaragua: 130,375 km²
- Panama: 75,417 km²
Source: Wikipedia, November 5, 2025.