I am attempting to calculate the area of water bodies in my classified map using landsat images in Google earth engine. from youtube I found a tutorial on GEE which showed me a method of calculating an area. However I struggled to apply it because I don't understand why my code is showing error.
Can someone guide me through how to calculate area, whether using the same method, or another?
Here's the link to my map:
https://code.earthengine.google.com/ff99d299831a9768fc70cd8fec15807b
the code is:
var l5 = ee.ImageCollection("LANDSAT/LT05/C01/T1_SR"),
table =
/* color: #d63000 */
/* displayProperties: [
{
"type": "rectangle"
}
] */
ee.Geometry.Polygon(
[[[90.95591178825589, 23.73559234169589],
[90.95591178825589, 23.528001478587907],
[91.1265431969473, 23.528001478587907],
[91.1265431969473, 23.73559234169589]]], null, false);
var cloudMaskL457 = function(image) {
var qa = image.select('pixel_qa');
// If the cloud bit (5) is set and the cloud confidence (7) is high
// or the cloud shadow bit is set (3), then it's a bad pixel.
var cloud = qa.bitwiseAnd(1 << 5)
.and(qa.bitwiseAnd(1 << 7))
.or(qa.bitwiseAnd(1 << 3));
// Remove edge pixels that don't occur in all bands
var mask2 = image.mask().reduce(ee.Reducer.min());
return image.updateMask(cloud.not()).updateMask(mask2);
};
l5 = l5.filterDate('1989-09-01', '1990-03-30')
.filterBounds(table)
.filterMetadata('CLOUD_COVER_LAND', 'less_than', 10)
.map(cloudMaskL457);
Map.centerObject(table, 12);
print('l1: ', l5);
var visParams = {bands: ['B3','B2', 'B1'], min: 600, max: 2500};
//['B3_median','B2_median', 'B1_median'], min: 600, max: 2500};
var visParamsFalse = {bands: ['B4','B3', 'B2'], min: 600, max: 2500};
var median = l5
//.reduce(ee.Reducer.median())
.median()
.clip(table);
print(median)
//Map.addLayer(median, visParams, 'median');
Map.addLayer(median, visParamsFalse, '1990False');
//Map.addLayer(awei1, {min: -1, max: 1, palette: ['FF0000', '0000FF']},'1990l1');
var awei2 = median.expression(
'blue + 2.5 * green - 1.5 * (NIR + MIR) - 0.25 * SWIR', {
'blue': median.select('B1'),
'green': median.select('B2'),
'NIR': median.select('B4'),
'MIR': median.select('B5'),
'SWIR': median.select('B7')
}).rename('awei2');
print(awei2)
Map.addLayer(awei2, {min: 1, max: 2, palette: ['FF0000', '0000FF']},'classified');
var area_pxa = awei2.multiply(ee.Image.pixelArea())
.reduceRegion(ee.Reducer.sum(),table,30,null,null,false,1e13)
.get('constant')
area_pxa = ee.Number(area_pxa).divide(1e6)
print ('Area using ee.Image.pixelArea (km²)', area_pxa)