Google Earth Engine(GEE)随机森林分类

今日分享:

Google Earth Engine(GEE)随机森林分类

九月第一天,来简单分享下如何在GEE中进行随机森林分类。之做土地利用分类,一直再用ENVI去做,发现做分类时,用ENVI的插件时间太长了,所以就试试用GEE去做一下监督分类。

主要参考Google Earth Engine(GEE)的官方文档

Google Earth Engine(GEE)随机森林分类_第1张图片

01

GEE部分实现代码

选择研究区和数据集

var roi = ee.Geometry.Polygon(
        [[[105.76168216373424, 38.90136066495491],
          [105.76168216373424, 37.81375799864711],
          [106.89327396060924, 37.81375799864711],
          [106.89327396060924, 38.90136066495491]]], null, false);
Map.centerObject(roi,10)


var landsat8col = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2')
                  .filterDate('2021-07-01', '2021-09-30')
                  .filterBounds(roi)
                  .filter(ee.Filter.lte('CLOUD_COVER',5))//云量设置
                  .median();
//显示
var visualization = {
  min: 0.0,
  max: 60000,
  bands: ['SR_B5', 'SR_B4', 'SR_B3'],
};


var clip_L8_ = landsat8col.clip(roi)
Map.addLayer(landsat8col.clip(roi), visualization, '假彩色');

建立并选择样本点,我大致分了常见的六个地类,分别是耕地,草地,林地,居民点及工矿用地,水域,未利用地,设置了用于训练的样本和验证的样本

var training = Crop.merge(grassland).merge(Forest).merge(Urban).merge(Water).merge(Bareland);
print(training);
var trainingData = training.randomColumn('random')
//其实就是80%的样本用于分类
//其余20%的样本用于验证
var sample_training = trainingData.filter(ee.Filter.lte("random", 0.8));
var sample_validate  = trainingData.filter(ee.Filter.gt("random", 0.8));

然后就可以调用模型进行随机森林分类了(ps:样本点还是要自己选的)

var classifier = ee.Classifier.smileRandomForest(50)
    .train({
      features: training, 
      classProperty: 'class', 
      inputProperties: clip_L8_.bandNames()
    });
var Classified_RF = clip_L8_ .classify(classifier).byte();
var dict = classifier.explain();
var variable_importance = ee.Feature(null, ee.Dictionary(dict).get('importance'));
Map.addLayer(Classified_RF.clip(roi),{min: 0, max: 5, 
palette: ['c0c220','26ff4a','7eff8d','ff4e28','319599',"989990"]},  'Classified_RF');

然后就可以用混淆矩阵法去计算分类精度和kappa系数

// 总体分类精度
var accuracy = testAccuracy.accuracy();
// Kappa系数
var kappa = testAccuracy.kappa();

最后就是的导出分类后的结果了

Export.image.toDrive({
  image: Classified_RF,
  description: 'RF2021a',
  crs: "EPSG:32649",
  scale: 30,
  region: roi,
  maxPixels: 1e13,
  folder: 'RF'
});

02

结果显示

Google Earth Engine(GEE)随机森林分类_第2张图片

kappa系数没有到80%以上,可能是我选的样本有点问题9d33cbf33ea20f73b61c46dc43e6871c.png07502679f243bebe5d284d9b30bf8c78.png0e65feafb1d5e5ae1d5a5fbf0b29f88e.png28f9fcfdb1c5badb9989a93e3de32788.png

Google Earth Engine(GEE)随机森林分类_第3张图片

分类结果

完整代码请在公众号后台私信“0901随机森林分类”

感谢关注,欢迎转发!

声明:仅供学习使用!

希望关注的朋友们转发,如果对你有帮助的话记得给小编点个赞或者在看

## ****更多内容请关注微信公众号“生态遥感监测笔记”**

你可能感兴趣的:(GEE,机器学习,js,土地利用分类,随机森林分类,GEE)