ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【Google Earth Engine】GEE实例学习(3)--土地利用分类

2021-01-09 18:32:43  阅读:888  来源: 互联网

标签:Engine 下面 Google 土地利用 -- 分类 样本 var 进行


在数字图像处理中最多的就是应该对图像进行土地利用分类,因此下面是监督分类的流程以及代码案例。

1.首先分类最开始应该建立样本数据集,在这里我分了四类,然后就开始自己的采样吧。

设立好分类后,对目标进行分类。

然后对每个样本进行颜色选择和属性定义

 2.下面就开始进行编程啦

//选择需要裁剪的矢量数据 
var cc = ee.FeatureCollection("users/wangchengcong/CC_5ring");
//去云函数 
function maskL8sr(image) {
  var cloudShadowBitMask = (1 << 3);
  var cloudsBitMask = (1 << 5);
  var qa = image.select('pixel_qa');
  var mask = qa.bitwiseAnd(cloudShadowBitMask).eq(0)
                 .and(qa.bitwiseAnd(cloudsBitMask).eq(0));
  return image.updateMask(mask);
}
//选择栅格数据集 
var cc2019 = ee.ImageCollection('LANDSAT/LC08/C01/T1_SR')
                  .filterDate('2019-05-01', '2019-9-30')
                  .map(maskL8sr)
                  .median();
//定义光谱指数                  
var mndwi = cc2019.normalizedDifference(['B3', 'B6']).rename('MNDWI');//计算MNDWI
var ndbi = cc2019.normalizedDifference(['B6', 'B5']).rename('NDBI');//计算NDBI
var ndvi = cc2019.normalizedDifference(['B5', 'B4']).rename('NDVI');//计算NDVI
cc2019=cc2019.addBands(ndvi).addBands(ndbi).addBands(mndwi)
// 使用下列波段作为特征
var classNames = building.merge(water).merge(tree).merge(crop);
var bands = ['B2', 'B3', 'B4', 'B5', 'B6', 'B7','MNDWI','NDBI','NDVI'];
// 通过要素集在Landsat-8中选取样本,把landcover属性赋予样本
var training = cc2019.select(bands).sampleRegions({
  collection: classNames,
  properties: ['landcover'],
  scale: 30
});
//精度评价 
var withRandom = training.randomColumn('random');//样本点随机的排列
// 保留一些数据进行测试,以避免模型过度拟合。
var split = 0.7; 
var trainingPartition = withRandom.filter(ee.Filter.lt('random', split));//筛选70%的样本作为训练样本
var testingPartition = withRandom.filter(ee.Filter.gte('random', split));//筛选30%的样本作为测试样本
//分类方法选择smileCart() randomForest() minimumDistance libsvm
var classifier = ee.Classifier.libsvm().train({
  features: trainingPartition,
  classProperty: 'landcover',
  inputProperties: bands
});
//对Landsat-8进行分类
var class_img = cc2019.select(bands).classify(classifier);
//运用测试样本分类,确定要进行函数运算的数据集以及函数
var test = testingPartition.classify(classifier);
//计算混淆矩阵
var confusionMatrix = test.errorMatrix('landcover', 'classification');
print('confusionMatrix',confusionMatrix);//面板上显示混淆矩阵
print('overall accuracy', confusionMatrix.accuracy());//面板上显示总体精度
print('kappa accuracy', confusionMatrix.kappa());//面板上显示kappa值

Map.centerObject(cc)
Map.addLayer(cc);
Map.addLayer(class_img.clip(cc), {min: 0, max: 4, palette: ['orange', 'blue', 'green','yellow']});

3.分类好啦

 

 

 

标签:Engine,下面,Google,土地利用,--,分类,样本,var,进行
来源: https://www.cnblogs.com/wangchengcong/p/14255370.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有