前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Google Earth Engine(地物分类统计)

Google Earth Engine(地物分类统计)

作者头像
GIS与遥感开发平台
发布2022-04-29 08:42:18
9090
发布2022-04-29 08:42:18
举报

Google Earth Engine(地物分类统计)

本期我们就讲一下利用GEE对遥感影像进行分类后,如何对地物类型进行统计。

本次我们还是采用MODIS官方的地物分类产品(MCD12Q1.006),空间分辨率为500m,时间分辨率为一年。这个MODIS产品中含有多个地物分类的产品。

我们选用其中一种产品,波段为LC_Type1,GEE对它的描述为:Annual International Geosphere-Biosphere Programme (IGBP) classification。

首先我们看一下这种分类产品

LC_Type1可视化

这种地物分类总共把地物分成17类,分别用从1到17的数字表示,例如波段中17就表示水体。

代码:

代码语言:javascript
复制
var beijing = ee.FeatureCollection("users/boyxiaozheng/feature/beijing");
//选取2017年的地物分类产品
var img = ee.ImageCollection('MODIS/006/MCD12Q1')
                            .filterDate('2017-01-01','2017-12-31')
                            .first();
//选择LC_Type1产品
var igbpLandCover = img.select('LC_Type1');

var igbpLandCoverVis = {
  min: 1.0,
  max: 17.0,
  palette: [
    '05450a', '086a10', '54a708', '78d203', '009900', 'c6b044', 'dcd159',
    'dade48', 'fbff13', 'b6ff05', '27ff87', 'c24f44', 'a5a5a5', 'ff6d4c',
    '69fff8', 'f9ffa4', '1c0dff'
  ],
};
Map.centerObject(beijing, 6);
Map.addLayer(igbpLandCover, igbpLandCoverVis, 'IGBP Land Cover');

地物面积统计

我们已经看到这种地物分类的样子,下面我们就对地物进行统计。我们下面以北京地区为例,统计北京地区水体的面积。

大致的思路就是把非水体进行mask,然后对返回的图像(只含水体)利用reduce进行统计。我们对水体的像元个数进行统计,然后已知每个像元的面积,就可以算出水体的面积。

代码:

代码语言:javascript
复制
var beijing = ee.FeatureCollection("users/boyxiaozheng/feature/beijing");
//建立一个函数,函数可以把image中不等于my_value的数值都mask掉
var mask=function(image,my_type){
  var mask=image.eq(my_type);
  var masked_image=image.updateMask(mask);
  return masked_image;
}
//选择2017年地物分类产品
var dataset = ee.ImageCollection('MODIS/006/MCD12Q1')
                                .filterDate('2017-01-01','2017-12-31');
var igbpLandCover = dataset.first().select('LC_Type1');
//调用上面写的函数,把不等于17(表示水体)的数值都mask掉
var image_17=mask(igbpLandCover,17)
//统计水体的像元个数
var countDictionary = image_17.reduceRegion({
  reducer: ee.Reducer.count(),
  geometry: beijing.geometry(),
  scale: 30,
  maxPixels: 1e9
});
//把统计结果打印出来
print(countDictionary);

var visparam = {
  min: 17.0,
  max: 17.0,
  palette: ['1c0dff']
};
Map.centerObject(beijing,10);
//显示北京矢量
Map.addLayer(beijing);
//显示北京的水体
Map.addLayer(image_17.clip(beijing), visparam);

本次我们讲了利用GEE对地物类型进行统计。大家有什么想实现的功能呢?可以随时留言交流。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GIS与遥感开发平台 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档