在GEE非监督分类中,需要考虑的步骤:

1.筛选数据;

2.数据预处理(去云,镶嵌,裁剪等);

3.选择方法进行非监督分类;

4.结果导出;

5.使用arcgis进行分类结果的合并与重分类。

我先提供一个完整的代码,大家都可先看看效果:

gee 非监督分类共享链接:https://code.earthengine.google.com/c644c08bf6611a00d5123bccaf5ee871

下面是每一步具体的代码:

1.筛选数据;

选择landsat8作为数据源,并且制定研究区(我上传的是江苏某市的行政图),筛选研究时间,影像云量:

var startDate = ee.Date('2018-04-01');
var endDate = ee.Date('2018-9-30');
var collection = l8.filterDate(startDate, endDate)//时间过滤.filterBounds(roi)//位置过滤.filter(ee.Filter.lte('CLOUD_COVER',10))//云量过滤;

2.数据预处理(去云,镶嵌,裁剪等);

首先,使用一个去云函数,读取该像素在影像集合的云量,如果超过阈值,则直接去掉该像素值。去云函数要封装好,需要的时候直接调用,这可以保证你在任意的项目中都可以使用:

//去云函数
var remove_cloud=function(collection)//************select purified pixes************/{// 计算每个像元的云分量,定义函数fun_calCloudScorevar fun_calCloudScore = function(image) {return ee.Algorithms.Landsat.simpleCloudScore(ee.Image(image));//simpleCloudScore计算TOA数据每一个像元的云指数};//确定要进行函数运算的数据集以及函数var calCloudScore = ee.ImageCollection(collection).map(fun_calCloudScore);//屏蔽阈值超过10的像素var fun_maskCloud = function(image) {// Create a mask from the cloud score and combine it with the image mask.var mask = image.select(['cloud']).lte(10);//TOA数据经simpleCloudScore计算产生“cloud”属性,“cloud”小于10的像元保留// Apply the mask to the image and display the result.显示云显示云掩膜return image.updateMask(mask);//更新};//确定要进行函数运算的数据集以及函数var maskCloud = ee.ImageCollection(calCloudScore).map(fun_maskCloud);var maskCloud2=maskCloud.mean()print('maskCloud2',maskCloud2 )Map.addLayer(maskCloud,visualParam, 'maskCloud', false);//显示干净像元筛选过的maskCloudMap.addLayer(maskCloud2,visualParam, 'maskCloud2', false);//显示干净像元筛选过的maskCloudreturn maskCloud;}

之后直接对研究区进行去云、镶嵌与裁剪,这个一句话就行了:

var image=remove_cloud(collection).mosaic().clip(roi);

3.选择方法进行非监督分类:

目前gee提供非常多的非监督分类方法,可以根据自己的需求来,在这里我推荐大家使用:非监督分类方法wekaCobweb,wekaKMeans,wekaLVQ。需要注意的是每个方法,设置的必要参数是不一样的,这个一定要在使用前看看gee关于方法的说明,弄清楚哪些是必填项。clusters就是非监督分类结果。

//分类区域边界线
Map.addLayer(ee.Image().paint(roi, 0, 2), {}, 'roi');//分类区域的选择
var training = image.sample({region: roi,scale: 30,numPixels: 5000
});//非监督分类方法选择wekaCobweb,wekaKMeans,wekaLVQ
var clusterer = ee.Clusterer.wekaCobweb({cutoff:0.004}).train(training);var result = image.cluster(clusterer);//加载影像
Map.addLayer(result.randomVisualizer(), {}, 'clusters');

非监督分类结果:

4.结果导出;

导出到google drive里面,再进行下载,进行本地化处理。

//导出
Export.image.toDrive({image:result ,//分类结果description: 'unsupervised_kmeans',//文件名folder: 'unsupervised_kmeans',scale: 30,//分辨率region: roi,//区域maxPixels:34e10//此处值设置大一些,防止溢出});

5.使用arcgis进行分类结果的合并与重分类。

由于我使用的是wekaCobweb分类方法,最后导出了大概100个类别,但是我只需要4个类别,这个时候就对分类结果进行重分类。如果你想减少工作量,可以使用KMeans方法,只导出10类左右。

最后经过重分类,得到我需要的4类结果:

到此,利用GEE进行非监督分类就结束了。需要注意两个问题:1.非监督分类的方法与参数选择,可改变输出数量;

2.得到的结果,最好就行导出,在本地进行后续处理。

希望同行多多交流,谢谢

VX:kitmyfaceplease2;欢迎关注公众号:锐多宝的地理空间;

google earth engine(GEE)进行非监督分类相关推荐

  1. Google Earth Engine(GEE)——User memory limit exceeded(2)

    上一次我们已经知道如何去进行避免这种错误的发生,有关详细内容,如果单单只是解决这个问题我们用到的是limit 和 first,上一次的博客在这里: (207条消息) Google Earth Engi ...

  2. Google Earth Engine(GEE) 01-中输入提示快捷键Ctrl+space无法使用的问题

    Google Earth Engine(GEE) 01-中输入提示快捷键Ctrl+space无法使用的问题 GEE中 Ctrl+space组合键用于代码输入快捷提示,能够提高编码的准确度和速度,但是, ...

  3. Google Earth Engine(GEE)批量下载代码(以 NDVI数据为例)

    下载数据先准备工作(具体细节都能查到):科学上网 谷歌邮箱,谷歌邮箱注册GEE账号. 一:导入需要下载边界shp文件. 标题 找到自己的shp文件,导入除了sbx文件的所有文件. 导入成功 命名ass ...

  4. 使用Google Earth Engine (GEE)实现MODIS数据批量下载

    使用Google Earth Engine GEE实现MODIS数据批量下载 前言 下载数据代码 批量执行run任务 关注公众号,分享GIS知识.ArcGIS教程.SCI论文与科研日常等 前言 上图是 ...

  5. 基于google earth engine(GEE)下载研究区域影像

    基于google earth engine(GEE)下载研究区域影像 当研究需要Landsat数据时,我们可以通过USGS官网或者地理空间数据云平台下载.由于地理空间数据云目前无法下载到较新的数据,可 ...

  6. Google Earth Engine (GEE) ——卫星影像的监督分类(svm)

    问题 GEE 提供哪些机器学习技术? 如何对卫星图像进行监督分类? 如何评估分类器的准确性? 如何手动创建自己的几何图形? 目标 练习查找无云图像和使用手绘几何导入 学习训练和应用分类算法所需的基本功 ...

  7. Google Earth Engine(GEE)——可视化动态图

    代码: var geometry = /* color: #d63000 *//* shown: false *//* displayProperties: [{"type": & ...

  8. 关于google earth engine(GEE)的一些想法与大胆预测

    我接触GEE有两年了,GEE留给我的印象是:无所不能. 不管是从庞大的数据量,还是包含遥感的各类算法:随机森林.SVM.CNN,都让人惊讶. 从GEE的云端操作来看,传统遥感需要几个月做出来的全国ND ...

  9. google earth engine GEE批量 run下载插件

    在Google earth engine中,批量导出文件经常遇到多个文件下载的情况,只能一个个点击RUN.这里介绍一款插件,Open Earth Engine extension .该插件的作者是Ma ...

最新文章

  1. 2018机器阅读理解技术竞赛,奇点机智获第一名
  2. Bio-protocol首届生物实验短视频大赛
  3. MVC (ModelBinder等)技巧
  4. 在cxf中使用配置避免增加字段导致客户端必须更新、同步实体属性的问题
  5. junit5_使用JUnit对ADF应用程序进行单元测试
  6. 独占一行 html_HTML基础-语义化标签
  7. Abp + Grpc 如何实现用户会话状态传递
  8. 0x80070003系统找不到指定路径_Win7系统中gpedit.msc找不到应该如何解决?
  9. c6x Linux 内核中断分析
  10. mui 框架:a标签无法跳转 - 解决篇
  11. vue划入划出事件_基于vue中对鼠标划过事件的处理方式详解
  12. 实验1 数字图像处理的MATLAB基础,《数字图像处理(实验部分)》实验1_数字图像处理中MATLAB使用基础...
  13. oracle10gr2安装教程,Solaris10安装Oracle10gR2时的注意事项
  14. 总结: C++ 中如何把输出结果写入到文件中
  15. StreamSets sdc rpc 测试
  16. SPSS如何进行一致性检验(计算kappa值)
  17. it人才外包可以帮助企业解决这些问题
  18. UESTC_冬马党 CDOJ 882
  19. php设置pst时区,PHP时区标识符含义
  20. RESTful风格的springMVC

热门文章

  1. 我用过的最好的python编辑器PyScripter
  2. 八年你我贷的冷静与激情
  3. Android——GT-DataBinding(彻底解放 findViewById)
  4. 数据库基本结构SQL语句
  5. flutter dart 获取当前时间戳
  6. corspost请求失败_记一次 CORS 跨域请求出现 OPTIONS 请求的问题及解决方法
  7. cordova 把网页打包成app
  8. cesium着色器学习系列3-着色器方式绘制图元
  9. 计算七参数,原来是这么操作的,一学就会!
  10. 人防消防给水排水和灭火设备