//a case area; The study area and related samples can be seen in http://www.dx.doi.org/10.11922/sciencedb.00279 var fc = ee.Geometry.Polygon([[110.269681733,20.7162672501],[110.491757365,20.7160574589],[110.491614061,20.5643624595],[110.269538429,20.5645722507],[110.269681733,20.7162672501]]); //features related to DEM var dem = ee.Image('JAXA/ALOS/AW3D30/V2_2').select('AVE_DSM').rename('ele'); var slope = ee.Terrain.slope(dem).rename('slope'); var aspect = ee.Terrain.aspect(dem).rename('aspect'); //features related to Sentinel-2 function maskS2clouds(image) { var qa = image.select('QA60'); // Bits 10 and 11 are clouds and cirrus, respectively. var cloudBitMask = 1 << 10; var cirrusBitMask = 1 << 11; // Both flags should be set to zero, indicating clear conditions. var mask = qa.bitwiseAnd(cloudBitMask).eq(0) .and(qa.bitwiseAnd(cirrusBitMask).eq(0)); return image.updateMask(mask).divide(10000); } var S2 = ee.ImageCollection("COPERNICUS/S2") .filterBounds(fc) .filterDate('2017-07-01','2019-07-01') .map(maskS2clouds); //specific featurs: frequency-based indices var NDVIo=S2.map(function(image){ return image.addBands(image.normalizedDifference(["B8","B4"]).rename('NDVI')); }); var EVIo=NDVIo.map(function(image){ return image.addBands(image.expression('2.5*((NIR-RED)/(NIR+6*RED-7.5*BLUE+1))',{ 'NIR':image.select('B8'),'RED':image.select('B4'),'BLUE':image.select('B2') }).rename('EVI')); }); var LSWIo=EVIo.map(function(image){ return image.addBands(image.normalizedDifference(["B8","B11"]).rename('LSWI')); }); var mNDWIo=LSWIo.map(function(image){ return image.addBands(image.normalizedDifference(["B3","B11"]).rename('mNDWI')); }); var greenness=mNDWIo.map(function(image){ return image.addBands(image.select('LSWI').gt(0).and(image.select('EVI').gt(0.2)).rename('greenness')); }).select('greenness').sum().divide(mNDWIo.select('B8').count()).rename('greenfq'); var canopy=mNDWIo.map(function(image){ return image.addBands(image.select('LSWI').gt(0.3).and(image.select('NDVI').gt(0.3)).rename('canopy')); }).select('canopy').sum().divide(mNDWIo.select('B8').count()).rename('canopyfq'); var tide=mNDWIo.map(function(image){ return image.addBands(image.select('LSWI').gte(image.select('EVI')).or(image.select('LSWI').gte(image.select('NDVI'))).rename('tide')); }).select('tide').sum().divide(mNDWIo.select('B8').count()).rename('tidefq'); var water=mNDWIo.map(function(image){ return image.addBands(image.select('EVI').lt(0.1).and(image.select('mNDWI').gt(image.select('EVI')).or(image.select('mNDWI').gt(image.select('NDVI')))).rename('water')); }).select('water').sum().divide(mNDWIo.select('B8').count()).rename('waterfq'); var vege=mNDWIo.map(function(image){ return image.addBands(image.select('EVI').gte(0.1).and(image.select('NDVI').gte(0.2).and(image.select('LSWI').gt(0))).rename('vege')); }).select('vege').sum().divide(mNDWIo.select('B8').count()).rename('vegefq'); //general features : other indices var S2median = S2.median(); var NDVI=S2median.normalizedDifference(["B8","B4"]).rename('NDVI'); var EVI=S2median.expression('2.5*((NIR-RED)/(NIR+6*RED-7.5*BLUE+1))',{ 'NIR':S2median.select('B8'),'RED':S2median.select('B4'),'BLUE':S2median.select('B2') }).rename('EVI'); var LSWI=S2median.normalizedDifference(["B8","B11"]).rename('LSWI'); var LSWI2=S2median.normalizedDifference(["B8","B12"]).rename('LSWI2'); var NDWIt=S2median.normalizedDifference(["B3","B11"]).rename('NDWIt'); var NDWIt2=S2median.normalizedDifference(["B3","B12"]).rename('NDWIt2'); var NDWIg=S2median.normalizedDifference(["B3","B8"]).rename('NDWIg'); var NDRE1=S2median.normalizedDifference(["B8","B5"]).rename('NDRE1'); var NDRE2=S2median.normalizedDifference(["B8","B6"]).rename('NDRE2'); var NDRE3=S2median.normalizedDifference(["B8","B7"]).rename('NDRE3'); var NDRE4=S2median.normalizedDifference(["B8","B8A"]).rename('NDRE4'); var NIRv=S2median.expression('NIR*(NIR-RED)/(NIR+RED)',{ 'NIR':S2median.select('B8'),'RED':S2median.select('B4') }).rename('NIRv'); var NIRv2=S2median.expression('NIR*((NIR-RED)/(NIR+RED)-0.08)',{ 'NIR':S2median.select('B8'),'RED':S2median.select('B4') }).rename('NIRv2'); //general features : band ratios var sr1=S2median.expression('RED/NIR',{ 'NIR':S2median.select('B8'),'RED':S2median.select('B4') }).rename('sr1'); var sr2=S2median.expression('NIR/RED',{ 'NIR':S2median.select('B8'),'RED':S2median.select('B4') }).rename('sr2'); var sr3=S2median.expression('NIR/SWIR',{ 'NIR':S2median.select('B8'),'SWIR':S2median.select('B11') }).rename('sr3'); var sr4=S2median.expression('NIR/SWIR2',{ 'NIR':S2median.select('B8'),'SWIR2':S2median.select('B12') }).rename('sr4'); var sr5=S2median.expression('SWIR/SWIR2',{ 'SWIR':S2median.select('B11'),'SWIR2':S2median.select('B12') }).rename('sr5'); var sr6=S2median.expression('BLUE/RED',{ 'BLUE':S2median.select('B2'),'RED':S2median.select('B4') }).rename('sr6'); var sr7=S2median.expression('RED/BLUE',{ 'BLUE':S2median.select('B2'),'RED':S2median.select('B4') }).rename('sr7'); var sr8=S2median.expression('RED/GREEN',{ 'GREEN':S2median.select('B3'),'RED':S2median.select('B4') }).rename('sr8'); var sr9=S2median.expression('GREEN/RED',{ 'GREEN':S2median.select('B3'),'RED':S2median.select('B4') }).rename('sr9'); //specific featurs: indices var MI=S2median.expression('(NIR-SWIR)/(NIR*SWIR)',{ 'NIR':S2median.select('B8'),'SWIR':S2median.select('B11') }).rename('MI'); var CMRI=NDVI.subtract(NDWIg).rename('CMRI'); var MFI=S2median.expression('(B5+B6+B7+B8A)/4-0.071*B12-0.929*B4',{ 'B5':S2median.select('B5'),'B6':S2median.select('B6'),'B7':S2median.select('B7'), 'B8A':S2median.select('B8A'),'B4':S2median.select('B4'),'B12':S2median.select('B12') }).rename('MFI'); var MVI=S2median.expression('(NIR-Green)/(SWIR-Green)',{ 'NIR':S2median.select('B8'),'SWIR':S2median.select('B11'),'Green':S2median.select('B3') }).rename('MVI'); var S2REP=S2median.expression('705+35*(0.5*(b7+b4)-b5)/(b6-b5)',{ 'b4':S2median.select('B4'),'b5':S2median.select('B5'),'b6':S2median.select('B6'),'b7':S2median.select('B7') }).rename('S2REP'); var MSAVI=S2median.expression('1.5*(b8-b4)/(b8+b4+0.5)',{ 'b4':S2median.select('B4'),'b8':S2median.select('B8') }).rename('MSAVI'); var DNVI=(S2median.select('B11').subtract(S2median.select('B12'))).multiply(S2median.select('B11').subtract(S2median.select('B12'))).divide((S2median.select('B11').add(S2median.select('B12'))).sqrt()).rename('DNVI'); var FDI=S2median.expression('NIR-GREEN-RED',{ 'GREEN':S2median.select('B3'),'RED':S2median.select('B4'),'NIR':S2median.select('B8') }).rename('FDI'); var WFI=S2median.expression('(NIR-RED)/SWIR2',{ 'RED':S2median.select('B4'),'NIR':S2median.select('B8'),'SWIR2':S2median.select('B12') }).rename('WFI'); var MDI1=S2median.expression('(NIR-SWIR1)/SWIR1',{ 'NIR':S2median.select('B8'),'SWIR1':S2median.select('B11') }).rename('MDI1'); var MDI2=S2median.expression('(NIR-SWIR2)/SWIR2',{ 'NIR':S2median.select('B8'),'SWIR2':S2median.select('B12') }).rename('MDI2'); //features related to Sentinel-1 var S1=ee.ImageCollection('COPERNICUS/S1_GRD') .filter(ee.Filter.eq('instrumentMode', 'IW')) .map(function(image) { var edge = image.lt(-30.0); var maskedImage = image.mask().and(edge.not()); return image.updateMask(maskedImage); }) .filterDate('2017-07-01','2019-07-01') .filterBounds(fc); function toGamma01(image) { return image.select('VV').subtract(image.select('angle').multiply(Math.PI/180.0).cos().log10().multiply(10.0)) .addBands(image.select('VH').subtract(image.select('angle').multiply(Math.PI/180.0).cos().log10().multiply(10.0))); } // Apply angle correciton to image collection var S1median = S1.map(toGamma01).median(); //concat all 54 features var img=ee.Image.cat([S1median.select(['VV','VH']),S2median.select(['B2','B3','B4','B5','B6','B7','B8','B8A','B11','B12']),NDVI,dem,slope,aspect, EVI,LSWI,LSWI2,NDWIt,NDWIt2,NDWIg,NDRE1,NDRE2,NDRE3,NDRE4,NIRv,NIRv2,sr1,sr2,sr3,sr4,sr5,sr6,sr7,sr8,sr9,MI,CMRI,MFI,MVI,S2REP,MSAVI,DNVI,FDI,WFI,MDI1,MDI2,greenness,canopy,tide,greenness.divide(NDVI).rename('greendv'),canopy.divide(NDVI).rename('canopydv'),tide.divide(NDVI).rename('tidedv')]); var bands=['B11','B12','B2','B3','B4','B5','B6','B7','B8','B8A','CMRI','DNVI','EVI','FDI','LSWI','LSWI2','MDI1','MDI2','MFI','MI','MSAVI','MVI','NDRE1','NDRE2','NDRE3','NDRE4','NDVI','NDWIg','NDWIt','NDWIt2','NIRv','NIRv2','S2REP','VH','VV','WFI','aspect','canopydv','canopyfq','ele','greendv','greenfq','slope','sr1','sr2','sr3','sr4','sr5','sr6','sr7','sr8','sr9','tidedv','tidefq']; //training samples var pnts=ee.FeatureCollection('users/pig1942284571/c1train_fn'); //classification var trained = ee.Classifier.smileRandomForest({ numberOfTrees: 500, variablesPerSplit: 7 }) .train(pnts, 'cls', bands) .setOutputMode('CLASSIFICATION'); var classified = img.clip(fc).select(bands).classify(trained); //export results Export.image.toDrive({ image: classified, description: "test_all_features", folder:'p7', maxPixels:70e9, scale: 10, region: fc });