Can anyone explain why I am getting the memory limit error when trying to classify using the wekaKMeans algorithm over a cloud-free composite of Bangladesh? I'm trying to differentiate mangrove pixels.
I'm using a rectangle polygon that is the same size as the one used in the GEE tutorial (this one: https://developers.google.com/earth-engine/clustering) to try to avoid this as I assumed it would input the same amount of data into the algorithm.
// Specify feature collection by country
var region = ee.FeatureCollection('ft:1tdSwUL7MVpOauSgRzqVTOwdfy17KDbw-1d9omPw')
.filterMetadata('Country', 'equals', 'Bangladesh');
var landsat8_collection = ee.ImageCollection('LANDSAT/LC08/C01/T1_TOA');
// Filter to the scenes that intersect your study region.
var landsat8_studyArea = landsat8_collection.filterBounds(region);
var landsat8_SA_2015 = landsat8_studyArea.filterDate('2015-01-01', '2015-12-31');
// Get an image collection and center the display.
Map.addLayer(landsat8_SA_2015, { min: 0.05, max: 0.8, bands: ['B6', 'B5', 'B4'] }, 'Landsat Collection');
Map.centerObject(region, 7);
// Cloud mask function
// Specify the cloud likelihood threshold.
var cloud_thresh = 40;
// Create the cloud masking function.
var maskClouds = function(image){
// Add the cloud likelihood band to the image.
var cloudScore = ee.Algorithms.Landsat.simpleCloudScore(image);
// Isolate the cloud likelihood band.
var cloudLikelihood = cloudScore.select('cloud');
// Compute a mask in which pixels below the threshold are 1.
var cloudPixels = cloudLikelihood.lt(cloud_thresh);
// Mask these pixels from the input image.
// Return the masked input image.
return image.updateMask(cloudPixels);
};
// Mask the clouds from all images in the image collection with the map function.
var landsat8_SA_2015NoClouds = landsat8_SA_2015.map(maskClouds);
// Center map.
Map.centerObject(region, 7);
// Median reducer and display cloud free image composite
// Reduce the collection to the median value per pixel.
var median_L8_2015 = landsat8_SA_2015NoClouds.median();
// Print the information of the reduced image.
print(median_L8_2015, 'median_L8_2015');
// Display reduced image in the map window.
Map.addLayer(median_L8_2015,
{min: 0.05, max: 0.8, bands: ['B6', 'B5', 'B4']},
'median composite of cloud free images');
// Unsupervised clustering
// Make the training dataset.
var train = ee.Geometry.Rectangle(88.2, 22.9, 90.8, 21.2);
var training = median_L8_2015.sample({
region: train,
scale: 30,
numPixels: 5000
});
// Instantiate the clusterer and train it.
var clusterer = ee.Clusterer.wekaKMeans(30).train(training);
// Cluster the input using the trained clusterer.
var result = median_L8_2015.cluster(clusterer);
// Display the clusters with random colors.
Map.addLayer(result.randomVisualizer(), {}, 'clusters');
Here is a link to my script: https://code.earthengine.google.com/0dc528e63b6f340baa82bef70ce63c92