当前位置:   article > 正文

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

gee随机森林分类

今日分享:

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

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

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

34972a4bd5f6028dddf7deff35dbeab5.png

01

GEE部分实现代码

选择研究区和数据集

  1. var roi = ee.Geometry.Polygon(
  2. [[[105.76168216373424, 38.90136066495491],
  3. [105.76168216373424, 37.81375799864711],
  4. [106.89327396060924, 37.81375799864711],
  5. [106.89327396060924, 38.90136066495491]]], null, false);
  6. Map.centerObject(roi,10)
  7. var landsat8col = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2')
  8. .filterDate('2021-07-01', '2021-09-30')
  9. .filterBounds(roi)
  10. .filter(ee.Filter.lte('CLOUD_COVER',5))//云量设置
  11. .median();
  12. //显示
  13. var visualization = {
  14. min: 0.0,
  15. max: 60000,
  16. bands: ['SR_B5', 'SR_B4', 'SR_B3'],
  17. };
  18. var clip_L8_ = landsat8col.clip(roi)
  19. Map.addLayer(landsat8col.clip(roi), visualization, '假彩色');

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

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

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

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

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

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

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

  1. Export.image.toDrive({
  2. image: Classified_RF,
  3. description: 'RF2021a',
  4. crs: "EPSG:32649",
  5. scale: 30,
  6. region: roi,
  7. maxPixels: 1e13,
  8. folder: 'RF'
  9. });

02

结果显示

ba59ef605cbce791c690c735b882f44d.png

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

404a8c8b295e0398b8eb09c94be7c767.png

分类结果

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

感谢关注,欢迎转发!

声明:仅供学习使用!

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/239197
推荐阅读
相关标签
  

闽ICP备14008679号