在地球引擎的表格中,如何显示多边形边界区域中湖泊表面积随时间的变化?

时间:2019-07-03 04:28:43

标签: google-earth-engine

问题陈述是给出了感兴趣的区域。

我需要使用NDWI指数查找水域中多边形边界区域内的所有湖泊,这些湖泊的高度超过1500m。然后以表格形式在Google Earth Engine中以两年为间隔显示从1984年到2018年开始的湖泊地表水面积的变化。我已经使用了Landsat 5和7数据。

我需要以以下格式在表格结构的多边形标记区域中显示结果:-行-(Lake 1,Lake 2,Lake 3 ... Lake n)列-(Surface 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()在这种情况下似乎不起作用。

This is the Earth Engine link to the same

0 个答案:

没有答案