//Access in the Google Earth Engine code editor: https://code.earthengine.google.com/?accept_repo=users/tatiana/SeteSetembro //////////////////////////////////////////////////////// // // // SCRIPT4: VEGETATION LOSS AND GAIN MAP // // // //////////////////////////////////////////////////////// //////////////////////////////////////////////////////// //ENTRER LES DATES ET DATATAKE DES DEUX IMAGES A COMPARER //Image 1 var datefrom1 = '2019-09-10' //ENTER DATE var dateto1 = '2019-09-11' //ENTER DATE (must be datefrom + at least 1) var datatake1 = '20190910' //ENTER DATATAKE ('YYYYMMDD') //Image 2 var datefrom2 = '2019-09-20' //ENTER DATE var dateto2 = '2019-09-21' //ENTER DATE (must be datefrom + at least 1) var datatake2 = '20190920' //ENTER DATATAKE ('YYYYMMDD') //Export name var nameExp = datatake2; //////////////////////////////////////////////////////// //PARAMETRES DU SITE //Géométrie du site var studySite = ee.Geometry.Polygon( [[[-61.4417, -10.7464], [-61.4383, -11.2584], [-60.8973, -11.2551], [-60.9098, -10.7198]]]); //Polygone de la terre indigène Sete de Setembro //Source: "WCMC/WDPA/current/polygons").filterMetadata('NAME','equals','Sete de Setembro') var protectedArea = ee.FeatureCollection([ee.Geometry.Polygon( [[[-61.430890367207255,-10.751891444900613], [-61.42519163574619,-11.11447884042015], [-61.37005491417673,-11.114298205538441], [-61.31491808398053,-11.114117608447993], [-61.31458365364846,-11.249759040437475], [-61.23209698577483,-11.249121383106058], [-61.149610266132704,-11.248483719229005], [-61.09324164199908,-11.175238503746515], [-61.036873050995155,-11.101993360397458], [-60.98050448006274,-11.028748124678014], [-60.92413582759241,-10.955502938986513], [-60.92913000110267,-10.738589998072223], [-60.99185011285132,-10.740252698436697], [-61.05457014507297,-10.741915331211235], [-61.11729013718773,-10.743578015404607], [-61.180010217902435,-10.745240724477434], [-61.24273024957612,-10.746903404731825], [-61.30545027262106,-10.748566097570336], [-61.368170327808194,-10.750228766894775], [-61.430890367207255,-10.751891444900613]]])]); // Centrer sur la zone d'exportation Map.centerObject(studySite,10); //////////////////////////////////////////////////////// //SELECTION ET IMPORTATION DES IMAGES SENTINEL-2 //First image var img1 = ee.ImageCollection('COPERNICUS/S2') .filterBounds(studySite) .filterDate(datefrom1,dateto1); //Caractéristiques de l'image var meanClouds1 = img1.aggregate_mean('CLOUDY_PIXEL_PERCENTAGE').getInfo(); //Cliper sur la zone d'exportation pour chaque image de la collection var img1 = img1.map(function(image){return image.clip(studySite)}) // Créer une image unique à partir de la sélection .mean(); //Second image var img2 = ee.ImageCollection('COPERNICUS/S2') .filterBounds(studySite) .filterDate(datefrom2,dateto2); //Caractéristiques de l'image var meanClouds2 = img2.aggregate_mean('CLOUDY_PIXEL_PERCENTAGE').getInfo(); //Cliper sur la zone d'exportation pour chaque image de la collection var img2 = img2.map(function(image){return image.clip(studySite)}) // Créer une image unique à partir de la sélection .mean(); print('First image:',datatake1); print('Mean cloud cover percentage for the first image: ',meanClouds1); print('Second image:',datatake2); print('Mean cloud cover percentage for the second image: ',meanClouds2); //Affichage de l'image //Paramètres d'affichage pour les image en vraies couleurs var B432 = { bands: ['B4','B3','B2'], min: 200, max: 6200, gamma: 1.8 }; //////////////////////////////////////////////////////// //SELECTION ET IMPORTATION DES IMAGES ISSUES DE LA CLASSIFICATION //Automatic variables var ClassifName1 = datatake1+'_compared'; var ClassifName2 = datatake2+'_classifiedStorage'; var Classif1 = ee.Image('users/tatiana/'+ClassifName1); var Classif2 = ee.Image('users/tatiana/'+ClassifName2); //Paramètres d'affichage storage var visStorage = { bands: ['all'], palette: ['ffffff','89d4a4','deb37d'], min: 0, max: 2, }; //Paramètres d'affichage pour la comparaison var visClassif = { bands: ['all'], palette: ['ffffff','89d4a4','deb37d','37934f','ff8d3d','ff0000'], min: 0, max: 5, }; //Afficher les images Map.addLayer(img1, B432, 'Image 1',true); Map.addLayer(Classif1, visClassif, 'Image1_compared',false); Map.addLayer(img2, B432, 'Image 2',true); Map.addLayer(Classif2, visStorage, 'Image2_classifiedStorage',false); //////////////////////////////////////////////////////// //COMPARAISON DES IMAGES var classifx10 = Classif1.multiply(10); var comparison = classifx10.subtract(Classif2); var addBMVegetation = function(image) { var img = image.select('all'); var values = img.expression( 'V1 + V2 + V3 + V4', { 'V1': img.gte(-1).and(img.lt(0)), 'V2': img.gte(9).and(img.lt(11)), 'V3': img.gte(29).and(img.lt(30)), 'V4': img.gte(39).and(img.lt(40)), }).eq(1).rename('comparisonVegetation'); return image.addBands(values); }; var addBMBare = function(image) { var img = image.select('all'); var values = img.expression( 'V1 + V2 + V3 + V4', { 'V1': img.gte(-2).and(img.lt(-1)), 'V2': img.gte(20).and(img.lt(21)), 'V3': img.gte(18).and(img.lt(19)), 'V4': img.gte(28).and(img.lt(29)), }).eq(1).multiply(2).rename('comparisonBare'); return image.addBands(values); }; var addBMNewVegetation = function(image) { var img = image.select('all'); var values = img.expression( 'V1 + V2 + V3', { 'V1': img.gte(19).and(img.lt(20)), 'V2': img.gte(30).and(img.lt(31)), 'V3': img.gte(49).and(img.lt(50)), }).eq(1).multiply(3).rename('comparisonNewVegetation'); return image.addBands(values); }; var addBMNewBare = function(image) { var img = image.select('all'); var values = img.expression( 'V1 + V2', { 'V1': img.gte(8).and(img.lt(9)), 'V2': img.gte(40).and(img.lt(41)), }).eq(1).multiply(4).rename('comparisonNewBare'); return image.addBands(values); }; var addBMDeforestation = function(image) { var img = image.select('all'); var values = img.expression( 'V1 + V2 + V3', { 'V1': img.gte(38).and(img.lt(39)), 'V2': img.gte(50).and(img.lt(51)), 'V3': img.gte(48).and(img.lt(49)), }).eq(1).multiply(5).rename('comparisonDeforestation'); return image.addBands(values); }; var comparison = addBMVegetation(comparison); var comparison = addBMBare(comparison); var comparison = addBMNewVegetation(comparison); var comparison = addBMNewBare(comparison); var comparison = addBMDeforestation(comparison); var comparisonVG = comparison.select('comparisonVegetation'); var comparisonB = comparison.select('comparisonBare'); var comparisonNVG = comparison.select('comparisonNewVegetation'); var comparisonNB = comparison.select('comparisonNewBare'); var comparisonDF = comparison.select('comparisonDeforestation'); var comparisonAll = comparisonVG.add(comparisonB).add(comparisonNVG).add(comparisonNB).add(comparisonDF).rename('all').byte(); //Masking var mask = comparisonAll.gte(0).and(comparisonAll.lt(2)).not(); var comparisonAllMasked = comparisonAll.updateMask(mask); Map.addLayer(comparisonAll, visClassif, 'Export image',false); Map.addLayer(comparisonAllMasked, visClassif, 'New classification',true); /////////////////////////////////////////////////// //EXPORT IMAGES //Current date and time var datetime = new Date(); var datetime = datetime.getFullYear() + "" + ("0" + (datetime.getMonth() + 1)).slice(-2) + "" + ("0" + datetime.getDate()).slice(-2) + "_" + ("0" + datetime.getHours()).slice(-2) + "" + ("0" + datetime.getMinutes()).slice(-2); //Export Export.image.toDrive({ image: comparisonAll, description: nameExp+'_comparedW'+datatake1+'_'+datetime, folder: 'GEEexportCompared', scale: 30, region: studySite, fileFormat: 'GeoTIFF'}); Export.image.toAsset({ image: comparisonAll, description: nameExp+'_compared', scale: 30, region: studySite});