// Script for extracting GEE data // Set projection var wkt = ' \ PROJCS["World_Mollweide", \ GEOGCS["GCS_WGS_1984", \ DATUM["WGS_1984", \ SPHEROID["WGS_1984",6378137,298.257223563]], \ PRIMEM["Greenwich",0], \ UNIT["Degree",0.017453292519943295]], \ PROJECTION["Mollweide"], \ PARAMETER["False_Easting",0], \ PARAMETER["False_Northing",0], \ PARAMETER["Central_Meridian",0], \ UNIT["Meter",1], \ AUTHORITY["EPSG","54009"]]'; var mollw = ee.Projection(wkt); var pa = ee.FeatureCollection("projects/ee-user/assets/TigerReserves"); Map.addLayer(pa) // 1. Generate forest layer var hansen = ee.Image("UMD/hansen/global_forest_change_2021_v1_9"); var forest2000 = hansen.select('treecover2000').gt(25); var lossyr = hansen.select('lossyear'); // 2. Calculate forest within each buffered region var calcFor = function(feat) { var forested = forest2000.reduceRegion({ geometry:feat.geometry(), reducer:ee.Reducer.sum(), scale:30, maxPixels: 1e13, tileScale:16, crs: mollw }).get('treecover2000'); return feat.set('Forest sq km',ee.Number(forested).multiply(0.0009)); }; // 3. Calculate forest loss year var yrs = ee.List.sequence(1,22); var calcLoss = function(feat){ var loss = yrs.map(function(y){ var this_yr_loss = lossyr.eq(ee.Number(y)).reduceRegion({ geometry:feat.geometry(), reducer:ee.Reducer.sum(), scale:30, maxPixels: 1e13, tileScale:16, crs: mollw }).get('lossyear'); return ee.Number(this_yr_loss).multiply(0.0009); }); return feat.set('loss sq km',loss); }; // 4. Travel time / distance var img= ee.Image("projects/earthengine-legacy/assets/users/One_Engine_Man/acc_50k"); var calcDist = function(feat) { var dist = img.reduceRegion({ geometry:feat.geometry(), reducer:ee.Reducer.mean(), scale:30, maxPixels: 1e13, crs: mollw }); return feat.set("distance",ee.Number(dist)); }; // 5. Rainfall var dataset = ee.ImageCollection("UCSB-CHG/CHIRPS/PENTAD"); var yr = ee.List.sequence(2000,2020); var calcRain = function(feat){ var rainfall = yr.map(function(y){ var image = dataset.filterDate(y).first(); var startDate = ee.Date.fromYMD(y, 1, 1) var endDate = startDate.advance(1, 'year') var filtered = dataset.filter(ee.Filter.date(startDate, endDate)) var total = filtered.reduce(ee.Reducer.sum()) var this_yr = total.reduceRegion({ geometry:feat.geometry(), reducer:ee.Reducer.mean(), scale:1000, maxPixels: 1e13, crs: mollw }).get('precipitation_sum'); return ee.Number(this_yr); }); return feat.set('Total rainfall',rainfall); }; // 6. Population var data = ee.ImageCollection("WorldPop/GP/100m/pop").filterMetadata('country', 'equals', 'LAO'); var ye = ee.List(['2000','2001','2002','2003','2004','2005','2006','2007','2008','2009','2010','2011','2012','2013','2014','2015','2016','2017','2018','2019','2020']); var calcPop = function(feat){ var population = ye.map(function(y){ var image = data.filterDate(y).first(); var this_yr = image.reduceRegion({ geometry:feat.geometry(), reducer:ee.Reducer.mean(), // Changed mean from sum scale:100, maxPixels: 1e13, crs: mollw }).get('population'); return ee.Number(this_yr); }); return feat.set('Total Populations',population); }; //7. PPP var im= ee.Image("projects/earthengine-legacy/assets/users/One_Engine_Man/PPP2000sum"); var calcPPP = function(feat) { var p = im.reduceRegion({ geometry:feat.geometry(), reducer:ee.Reducer.mean(), scale:30, maxPixels: 1e13, crs: mollw }); return feat.set("PPP2000",ee.Number(p)); }; // 8. Elevation var d = ee.Image('CGIAR/SRTM90_V4'); var elev = d.select('elevation'); var slopes = ee.Terrain.slope(elev); var aspects = ee.Terrain.aspect(elev); var calcElev = function(feat) { var elevation = elev.reduceRegion({ geometry:feat.geometry(), reducer:ee.Reducer.mean(), scale:100, crs: mollw })//.get('elevation'); return feat.set('elevation',elevation); }; var calcSlope = function(feat) { var slope = slopes.reduceRegion({ geometry:feat.geometry(), reducer:ee.Reducer.mean(), scale:100, crs: mollw })//.get('elevation'); return feat.set('slope',slope); }; var calcAspect = function(feat) { var aspect = aspects.reduceRegion({ geometry:feat.geometry(), reducer:ee.Reducer.mean(), scale:100, crs: mollw })//.get('elevation'); return feat.set('aspect',aspect); }; // 9. AGBC var agb = ee.ImageCollection("NASA/ORNL/biomass_carbon_density/v1").filterMetadata('system:index','equals','2010').select('agb').first(); var ucr = ee.ImageCollection("NASA/ORNL/biomass_carbon_density/v1").filterMetadata('system:index','equals','2010').select('agb_uncertainty').first(); var calcAGB = function(feat) { var biomass = agb.reduceRegion({ geometry:feat.geometry(), reducer:ee.Reducer.mean(), scale:300, crs: mollw })//.get('elevation'); return feat.set('biomass',biomass); }; var calcUCR = function(feat) { var uncertainty = ucr.reduceRegion({ geometry:feat.geometry(), reducer:ee.Reducer.mean(), scale:300, crs: mollw })//.get('elevation'); return feat.set('uncertainty',uncertainty); }; // 10. Run calculations var results = pa.map(calcFor).map(calcLoss).map(calcDist).map(calcRain).map(calcPop).map(calcPPP).map(calcElev).map(calcSlope).map(calcAspect).map(calcAGB).map(calcUCR); Export.table.toDrive({ collection: results, description:'TRsOuputs', folder: 'Syn', fileFormat: 'CSV', selectors: ['WDPAID','Forest sq km', 'loss sq km','Total rainfall','Total Populations','distance',"PPP2000", 'aspect', 'slope', 'elevation','biomass', 'uncertainty' , 'STATUS_YR','IUCN_CAT','area_km2','NAME','Zone'] });