Я пытаюсь извлечь пиксели со значением 2, в данном случае это пиксели воды из классифицированных результатов. До сих пор я нашел только функцию .lt, которая дает только 0 или 1, в зависимости от того, меньше ли пиксели значение в аргументе, что затем можно использовать для маскировки неводных пикселей (пикселей со значением 0 и 1) получить водные. Однако я попробовал это безуспешно. Где я go ошибся?
Кроме того, есть ли способ непосредственно извлекать пиксели со значением 2 без необходимости go проходить через все трудности маскировки неводных пикселей, чтобы получить водяные пиксели?
Большое спасибо.
// Make a cloud-free Landsat 8 TOA composite (from raw imagery).
var l8 = ee.ImageCollection('LANDSAT/LC08/C01/T1');
var image = ee.Algorithms.Landsat.simpleComposite({
collection: l8.filterDate('2018-01-01', '2018-12-31'),
asFloat: true
});
// Use these bands for prediction.
var bands = ['B2', 'B3', 'B4', 'B5', 'B6', 'B7', 'B10', 'B11'];
// Load training points. The numeric property 'class' stores known labels.
var points = ee.FeatureCollection('GOOGLE/EE/DEMOS/demo_landcover_labels');
// This property stores the land cover labels as consecutive
// integers starting from zero.
var label = 'landcover';
// Overlay the points on the imagery to get training.
var training = image.select(bands).sampleRegions({
collection: points,
properties: [label],
scale: 30
});
// Train a CART classifier with default parameters.
var trained = ee.Classifier.smileCart().train(training, label, bands);
// Classify the image with the same bands used for training.
var classified = image.select(bands).classify(trained);
var random = classified.lte(1);
//extracting out pixels less than or equals to 1, i.e. not water
var notWater = classified.updateMask(random);
// Display the inputs and the results.
Map.centerObject(points, 11);
Map.addLayer(image, {bands: ['B4', 'B3', 'B2'], max: 0.4}, 'image');
Map.addLayer(notWater,
{},
'not water');
Map.addLayer(classified,
{min: 0, max: 2, palette: ['red', 'green', 'blue']},
'classification');
Map.addLayer(random,
{},
'random');
Map.addLayer(classified.updateMask(random),
{},'classified masked with random');
// to display only water pixels
Map.addLayer(classified.updateMask(notWater),
{},
'classified masked with not water');