Google Earth Engine(GEE)实例代码学习六——土地利用分类(Landcover Cleanup)

标题

利用MODSI全球土地覆盖产品显示土地利用分类

首先大致介绍一下MODIS土地覆盖产品MCD12Q1
MCD12Q1 V6产品按六种不同的分类方案按年间隔(2001-2016年)提供全球土地覆盖类型。 它是使用MODIS Terra和Aqua反射数据的监督分类得出的。 然后,对监督分类结果进行额外的后处理,这些后处理结合了先验知识和辅助信息以进一步完善分类。
分为1-17表示不同的类别
LC_Type1表示IGBP分类系统
LC_Type表示不同的分类系统,可通过查看该产品自行查阅

实例代码如下:

var SCALE = 500;//在投影时强制比例为500米/像素
var image1 = ee.Image('MODIS/051/MCD12Q1/2001_01_01');// 加载MODIS土地覆盖产品MCD12Q1
var image2 = image1.select(['Land_Cover_Type_1']);// 选择IGBP分类系统
var image3 = image2.reproject('EPSG:4326', null, SCALE);// 重投影为WGS84坐标系
var image4 = image3.focal_mode();//平滑图像
//采用不同窗口平滑图像目的是为了减小分类为很小的土地类型
var image5 = image4.focal_max(3).focal_min(5).focal_max(3);
// 将上面的影像再次投影
var image6 = image5.reproject('EPSG:4326', null, SCALE);

// 设定一个土地分类调色板
var PALETTE = [
    'aec3d4', // water
    '152106', '225129', '369b47', '30eb5b', '387242', // forest
    '6a2325', 'c3aa69', 'b76031', 'd9903d', '91af40', // shrub, grass, savannah
    '111149', // wetlands
    'cdb33b', // croplands
    'cc0013', // urban
    '33280d', // crop mosaic
    'd7cdcc', // snow and ice
    'f7e084', // barren
    '6f6f6f'  // tundra
].join(',');
var vis_params = {min: 0, max: 17, palette: PALETTE};//类别有17类
// 将每步计算结果都进行显示
Map.setCenter(116, 39.9, 6);
Map.addLayer(image2, vis_params, 'IGBP classification');
Map.addLayer(image3, vis_params, 'Reprojected');
Map.addLayer(image4, vis_params, 'Mode');
Map.addLayer(image5, vis_params, 'Smooth');
Map.addLayer(image6, vis_params, 'Smooth');

代码运行结果如下,可以看到全球土地类别
在这里插入图片描述
这个是进行平滑后的图像
在这里插入图片描述

### GEE 土地利用分类代码示例 为了实现基于GEE土地利用分类,可以采用监督学习方法中的随机森林算法。下面展示了一个完整的Python脚本用于执行这一任务: ```python import ee ee.Initialize() # 定义研究区域 roi = ee.Geometry.Polygon( [[[107.8, 29], [107.8, 28], [108.5, 28], [108.5, 29]]]) # 加载Landsat 8 图像集合并过滤日期范围和地理位置 landsatCollection = (ee.ImageCollection('LANDSAT/LC08/C01/T1_TOA') .filterDate('2020-01-01', '2020-12-31') .filterBounds(roi)) # 获取训练样本数据集 trainingDataset = ee.FeatureCollection([ ee.Feature(ee.Geometry.Point([108.0, 28.5]), {'class': 1}), # 类型1样点 ee.Feature(ee.Geometry.Point([108.2, 28.6]), {'class': 2}) # 类型2样点 ]) # 提取波段作为特征变量 bands = ['B2', 'B3', 'B4', 'B5', 'B6', 'B7'] # 训练模型 classifier = ee.Classifier.smileRandomForest(10).train({ 'features': trainingDataset, 'classProperty': 'class', 'inputProperties': bands}) # 应用分类器到图像上 classifiedImage = landsatCollection.mean().classify(classifier) # 可视化结果 palette = ['red', 'green'] mapIdDict = classifiedImage.getMapId({'min': 1, 'max': 2, 'palette': palette}) print(mapIdDict['tile_fetcher'].url_format) ``` 上述代码实现了以下功能: - 设置感兴趣区`roi`; - 过滤特定时间段内的 Landsat 8 影像; - 创建包含已知类别标签的位置点组成的训练样本集; - 使用这些位置处的光谱反射率值训练一个随机森林分类器; - 将该分类器应用于整个影像以获得土地覆盖类型的预测图层。 此过程能够有效地识别不同种类的地物,并生成对应的地图可视化输出[^2]。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值