Introduction
Protected areas have a large role to play in environmental conservation. However, with varying levels of protection, preserving tree cover is not necessarily guaranteed. This analysis investigates tree cover loss in Cameroon’s strictly protected and less protected parks, categorized according to IUCN standards.
Analysis and Findings
The geospatial analysis reveals that less protected (LP) parks in Cameroon had more deforestation (0.106%) in 2020 compared to strictly protected (SP) parks (0.023%). Most of the SP parks in Cameroon fall under IUCN categories II and IV: National Parks protecting large-scale ecological processes and Management Areas protecting specific habitats and species. The LP parks in Cameroon were categorized as either ‘Not Applicable’ or ‘Not Reported’, except for one park in category VI. Therefore, there are a few aspects as to what constitutes an LP park that may be limiting the strength of this analysis.
As seen in Figure 1, many of the LP parks overlap with already-established SP parks that extend further outward from the SP boundaries. It appears that areas of concentrated deforestation are largely taking place just outside the boundaries of SP parks, speaking to strong protection levels within SP parks. Much of the deforestation also appears to be taking place around cities and alongside roadways, such as in Figure 2, where the red pixels form straight lines along the boundaries of SP parks. Therefore, the LP park areas are overlapping with many of these pockets and lines of deforestation. However, it is unlikely that the same area can be considered as both an SP and LP park. It appears that the data in the Cameroon protected parks dataset needs to be updated with single features containing the latest categorized protection level. Many of the ‘Not Applicable’ or ‘Not Reported’ features may be remnants of previous categorizations, which are leading to an inaccurate representation in this analysis concerning the deforestation taking place in 2020.
Furthermore, below are the IUCN guidelines for categorizing ‘Not Applicable’ and ‘Not Reported’ parks:
“For reporting on international protected areas the option of listing ‘Not Applicable’ is accepted. For national protected areas where an IUCN category has not been adopted ‘Not Reported’ can be listed.”
IUCN: GUIDELINES FOR APPLYING PROTECTED AREA MANAGEMENT CATEGORIES
Keeping the status of these parks as ambiguous and grouping them among the LP parks can be misleading for an analysis.
Furthermore, quantifying aspects of the natural environment and applying analytical methods on a global scale is a difficult challenge. The Hansen dataset is not free from certain baseline assumptions about how we understand our environment. In Hansen et al.’s paper, ‘forests’ are synonymous with any tree cover that is taller than 5 meters, not considering density factors or differences among bioregions. This ambiguity also makes it difficult to understand ‘forest loss’, which Hansen defines as a “stand-replacement disturbance” or anything that moves from a certain percentage of tree cover (within a pixel) to zero.
While there are many areas in this analysis where true loss in tree cover seems to be taking place, such as along roads or around urban areas, places of concentrated deforestation also overlap with plantation fields. For example, as seen in Figure 3, towards the southeast of Yaoundé, on the west of the Dja Faunal reserve lies a huge plantation (seem to have been developed starting 2015) that in this analysis, is marked as an area of intense forest loss for the year 2020. It is in such examples that the ambiguous definition of both ‘forests’ and ‘forest loss’ leads to problematic analyses and conclusions.
While there is much that is revealed about deforestation in Cameroon through this analysis and using the Hansen et al. (2013) dataset, there are many factors that we need to carefully consider before drawing our interpretations.
Code
Google Earth Engine code link: https://code.earthengine.google.com/5ce1bcb9ce101eaa2f1fb0c34a8800ad
/// PORTFOLIO PROBLEM 1 ///
/*
Name: Sanjana Roy
Middlebury email: sroy@middlebury.edu
Date: 25th February, 2022
*/
// 1. SELECTING COUNTRY
// Inputing country polygons by pulling from feature collection
// Feature Collection link: https://developers.google.com/earth-engine/datasets/catalog/USDOS_LSIB_SIMPLE_2017#table-schema
var countries = ee.FeatureCollection('USDOS/LSIB_SIMPLE/2017');
//Selecting for Cameroon
var cameroon = ee.Feature(
countries
.filter(ee.Filter.eq('country_na', 'Cameroon'))
.first()
);
// 2. SELECTING AND CATEGORIZING PARKS
//Checking for protection level range in Cameroon
var allprotected = ee.FeatureCollection('WCMC/WDPA/current/polygons')
.filter(ee.Filter.bounds(cameroon.geometry()));
//Printing protection levels for all parks in Cameroon
var protectedstatus = allprotected.aggregate_array("IUCN_CAT").sort();
print("protectedstatus", protectedstatus)
// Selecting for strictly protected parks
var strictlyprotected = ee.FeatureCollection('WCMC/WDPA/current/polygons')
.filter(ee.Filter.and(
ee.Filter.bounds(cameroon.geometry()), //filtering by Cameroon boundary
ee.Filter.inList('IUCN_CAT', ['Ia', 'Ib', 'II', 'III', 'IV'])
))
.map(function(feature){
return cameroon.intersection(feature); //clipping by Cameroon boundary
});
// Selecting for less protected parks
var lessprotected = ee.FeatureCollection('WCMC/WDPA/current/polygons')
.filter(ee.Filter.bounds(cameroon.geometry())) //filtering by Cameroon boundary separately
.filter(ee.Filter.or( //making sure that map displays both IUCN categories and 'proposed' parks using .or
ee.Filter.inList('IUCN_CAT', ['V', 'VI', 'Not Reported', 'Not Applicable']),
ee.Filter.eq('STATUS', 'proposed')
))
.map(function(feature){
return cameroon.intersection(feature); //clipping by Cameroon boundary
});
// 3. CALCULATING AREA LOST in STRICTLY AND LESS PROTECTED PARKS
//Importing Hansen dataset
var gfc2020 = ee.Image("UMD/hansen/global_forest_change_2020_v1_8");
// Selecting for loss in 2020
var lossIn2020 = gfc2020.select(['lossyear']).eq(20);
//Selecting for tree cover in 2000 where pixels have at least(>=) 30% tree cover
var treeCover2000 = gfc2020.select(['treecover2000']).gte(30);
//**CHALLENGE**//
//Making sure loss in 2020 overlaps with pixels that had >= 30% tree cover
//multiplying images --> pixels with overlap = 1
var true_lossIn2020 = lossIn2020.multiply(treeCover2000);
// Calculating loss of tree cover pixles for strictly protected parks
var SP_stats = true_lossIn2020.reduceRegion({
reducer: ee.Reducer.sum(),
geometry: strictlyprotected.geometry(),
scale: 30,
maxPixels: 1e13
});
// Calculating loss of tree cover area for less protected parks
var LP_stats = true_lossIn2020.reduceRegion({
reducer: ee.Reducer.sum(),
geometry: lessprotected.geometry(),
scale: 30,
maxPixels: 1e13
});
// 4. CALCULATING PERCENTAGE LOSS
//Calculating strictly protected pixel count for tree cover area in 2000
var SPcount_treeCover2000 = treeCover2000.reduceRegion({
reducer: ee.Reducer.sum(),
geometry: strictlyprotected.geometry(),
scale: 30,
maxPixels: 1e13
});
print('SPcount_treeCover2000', SPcount_treeCover2000.get('treecover2000'));
//Calculating less protected pixel count for tree cover area in 2000
var LPcount_treeCover2000 = treeCover2000.reduceRegion({
reducer: ee.Reducer.sum(),
geometry: lessprotected.geometry(),
scale: 30,
maxPixels: 1e13
});
print('LPcount_treeCover2000', LPcount_treeCover2000.get('treecover2000'));
// Calculating strictly protected tree cover loss percentage
var SP_percent = ee.Number(SP_stats.get('lossyear'))
.divide(ee.Number((SPcount_treeCover2000.get('treecover2000'))))
.multiply(100);
print('Strictly Protected parks lost', SP_percent, '% of tree cover');
// //Figuring out object type
// var valueType = ee.Algorithms.ObjectType(SP_percent);
// print('SP_percent value', valueType);
//Calculating less protected tree cover loss percentage
var LP_percent = ee.Number(LP_stats.get('lossyear'))
.divide(ee.Number((LPcount_treeCover2000.get('treecover2000'))))
.multiply(100);
print('Less Protected parks lost', LP_percent, '% of tree cover');
// 5. VISUALIZATION
//Centering map on Cameroon
Map.centerObject(cameroon, 6);
Map.setOptions('TERRAIN'); //basemap
//Adding tree cover (>=30%) in the year 2000
Map.addLayer(treeCover2000.clip(cameroon), {palette: ['white','#bfac00']}, 'Tree Cover in 2000', true, 0.4);
//Adding tree cover loss in 2020
Map.addLayer(lossIn2020.clip(cameroon), {palette:['red']}, 'Tree Cover Loss in 2020');
//Creating a blank image to manipulate park features
var blankImage = ee.Image().byte(); //Creates a blank image
//Painting strictly protected
var SP_bounds = blankImage.paint({
featureCollection: strictlyprotected,
color: 1
});
//Painting less protected
var LP_bounds = blankImage.paint({
featureCollection: lessprotected,
color: 1
});
//Mapping SP and LP parks
Map.addLayer(SP_bounds, {palette: ['#435900']}, 'Strictly Protected Parks', true, 0.6); //green
Map.addLayer(LP_bounds, {palette: ['#00a889']}, 'Less Protected Parks', true, 0.7); //blue