首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在地球引擎中找到一个区域(以多边形为界)内的所有湖泊?

如何在地球引擎中找到一个区域(以多边形为界)内的所有湖泊?
EN

Stack Overflow用户
提问于 2019-06-19 14:23:45
回答 1查看 286关注 0票数 0

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

我需要使用NDWI水体索引来查找多边形边界区域中的所有湖泊,这些湖泊的高度超过1500米。然后在Google Earth Engine中以表格形式显示从1984年到2018年两年一次的湖面水面积的变化。我使用了陆地卫星5号和7号数据。

我创建了以下代码:Earth Engine Code

现在我需要在多边形标记区域中以如下格式显示结果:-行-( 1号湖,2号湖,3号湖...n)湖柱-(1984年的表面积,1986年的表面积,....2018)

我该怎么做呢?

EN

回答 1

Stack Overflow用户

发布于 2019-07-01 11:11:14

关于评论中发布的代码,我回答了这个问题,希望这个问题会随着评论中发布的代码而更新。

过滤: ok。

这只是一个注释,我不会将图像集合变量命名为img,这让我很困惑,但变量的名称由您决定。

代码语言:javascript
运行
复制
var mf = ee.Filter.calendarRange(10, 12, 'month');

var img1 = ee.ImageCollection(l5
            .filterDate('1984-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));

添加NDWI:这是您的代码:

代码语言:javascript
运行
复制
var addNDWI = function(image){
  var ndwi = image.normalizedDifference(['B2', 'B4']).rename('NDWI');
  var ndwiMask = ndwi.gte(0.3);
  return image.addBands(ndwi);
};
var image1 = img1.map(addNDWI);
var image2 = img2.map(addNDWI);

您没有保存ndwiMask,因此您不能在此函数之外使用它。同样,我不会将它们命名为image,因为它们不是图像,而是图像集合。

elevation mask:您必须选择elevation频段:

代码语言:javascript
运行
复制
var elevMask = elevation.select('elevation').gt(1500)

此遮罩图像将具有高度大于1500的1和不大于1500的0。

应用掩码:在这一部分中,你必须记住地球引擎使用函数式编程,所以对象是不可变的,这意味着你不能使用方法更新对象的状态,你必须捕获你正在调用的方法的输出。这里你需要ndwi掩码,所以你必须用NDWI band来计算它。

代码语言:javascript
运行
复制
var mask = function(image){
  var ndwiMask = image.select('NDWI').gt(0.3)
  var ndwi_masked = image.updateMask(ndwiMask);
  return ndwi_masked.updateMask(elevMask);
};

var maskedImg = image1.map(mask);  // ImageCollection!
var maskedImg2 = image2.map(mask);  // ImageCollection!

当你将其添加到地图中时,Visualizing:会生成一个马赛克,这就是你会看到的。请记住这一点,以便进一步处理。

代码语言:javascript
运行
复制
var ndwiViz = {bands: ['NDWI'], min: 0.5, max: 1, palette: ['00FFFF', '0000FF']};
Map.addLayer(maskedImg, ndwiViz, 'Landsat 5 masked collection');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56661259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档