Проблема в том, что задана интересующая область.
Мне нужно найти все озера в ограниченном полигоном районе, используя индекс NDWI для водоемов, которые находятся на высоте более 1500 м. Затем отобразите изменения в площади поверхностных вод озера, начиная с 1984 по 2018 год, с двухлетним интервалом в виде таблицы в Google Earth Engine. Я использовал данные Landsat 5 и 7.
Мне нужно отобразить результаты в области, отмеченной полигонами, в виде структуры таблицы в следующем формате: - Ряды - (Озеро 1, Озеро 2, Озеро 3 ... Озеро n) Столбцы - (Поверхность Площадь в 1984 г., Площадь поверхности в 1986 г., .... 2018 г.) - площадь поверхности в кв. Км.
Как мне это сделать?
Я создал следующий код:
var l5 = ee.ImageCollection("LANDSAT/LT05/C01/T1_SR"),
roi = /* color: #d63000 */ee.Geometry.Polygon(
[[[77.68018052033392, 31.0091863423649],
[80.36084458283392, 29.5863837026937],
[80.98706528595892, 30.233944725529557],
[78.85571762970892, 31.57247908795104]]]),
elevation = ee.Image("USGS/SRTMGL1_003"),
l7 = ee.ImageCollection("LANDSAT/LE07/C01/T1_RT_TOA");
var mf = ee.Filter.calendarRange(10, 12, 'month');
Map.centerObject(roi);
var img1 = ee.ImageCollection(l5
.filterDate('1995-01-01','1999-12-31')
.filterBounds(roi)
.filter(mf));
var img2 = ee.ImageCollection(l7
.filterDate('2000-01-01','2018-12-31')
.filterBounds(roi)
.filter(mf));
//add NDWI band function
var addNDWI = function(image) {
return image
// NDWI
.addBands(image.normalizedDifference(['B2', 'B4']).rename('NDWI'))
};
//map add ndwi function to both image collections
var image1 = img1.map(addNDWI);
var image2 = img2.map(addNDWI);
Map.addLayer(image1, {}, 'image1');
Map.addLayer(image2, {}, 'image2');
//masking function for elevation and ndwi
var mask = function(image) {
var ndwiMask = image.select('NDWI').gte(0.3);
var elevMask = elevation.updateMask(elevation.gt(1500));
return image.updateMask(ndwiMask)
return image.updateMask(elevMask);
};
//map masking function
var maskedImg = image1.map(mask); //For 1984-1999
var maskedImg2 = image2.map(mask); //For 2000-2018
print(maskedImg);
print(maskedImg2);
//set up params to view NDWI band
var ndwiViz = {bands: 'NDWI',min: 0.3, palette: ['00FFFF', '0000FF']};
Map.addLayer(maskedImg, ndwiViz, 'NDWI 1984-1999');
Map.addLayer(maskedImg2, ndwiViz, 'NDWI 2000-2018');
На выходе отображаются неожиданные синие линии на дисплее карты. Также мне нужно ограничить вывод только ограниченной областью многоугольника, но, похоже, в этом случае .clip () не работает.
Это ссылка Earth Engine на тот же