当前位置: 首页 > news >正文

【GEE笔记】在线分类流程,标注样本点、分类和精度评价

GEE在线分类流程

介绍

GEE(Google Earth Engine)是一个强大的地理信息处理平台,可以实现在线的遥感影像分析和处理。本文将介绍如何使用GEE进行在线的分类流程,包括标注样本点、分类和精度评价。本文以2020年5月至8月的哨兵2影像为例,对区域内的土地覆盖类型进行分类。

标注样本点

首先,加载原始影像,进行在线的标注。
加载的影像:
在这里插入图片描述

加载影像的代码如下:

var geometry = ee.Geometry.Polygon([[[121.81940156260009, 40.92383488850036],[121.81940156260009, 40.73887826797227],[121.99998933115478, 40.73887826797227],[121.99998933115478, 40.92383488850036]]], null, false)
var year=2020 //设置年份
var bandlist=['B2','B3','B4','B8','B11','B12'] //设置波段列表
var start = ee.Date(year+'-5-1'); //设置开始日期
var finish = ee.Date(year+'-8-1'); //设置结束日期var dataset = ee.ImageCollection('COPERNICUS/S2_SR') //加载哨兵2影像集合.filterDate(start, finish) //按日期过滤.filterBounds(geometry) //按范围过滤.filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 20)) //按云量过滤dataset=dataset.select(bandlist); //按波段选择            
var rgbVis = {min: 0.0, max: 3000, bands: ['B4', 'B3', 'B2'], //设置RGB波段
};Map.centerObject(geometry) //地图中心定位到范围
print(dataset) //打印影像集合信息var image=dataset.median().clip(geometry) //计算影像集合的中值,并裁剪到范围
Map.addLayer(image,rgbVis) //添加影像图层

标注样本点过程如下:
1、创建样本点集合对象(集合名称可以设置为类别名称便于区分)
在这里插入图片描述
2、设置类别字段及其属性(属性为类别数字代码)
在这里插入图片描述
在这里插入图片描述

分类

接下来,进行分类。选择随机森林算法作为分类器(也可选择GEE官方其他分类器)。将样本点集合分为训练集和测试集,用训练集来训练分类器,用测试集来评估分类器的性能。

分类主要包括合并样本点集合、划分训练集和测试集、训练分类器、应用分类器、添加分类图层。分类的结果如下图所示:
在这里插入图片描述

分类的代码如下:

var sample=danshui.merge(haishui).merge(jianpeng).merge(nongtian).merge(luwie).merge(jianzhu)
.merge(tantu).merge(caodi) //合并样本点集合var withRandom = sample.randomColumn('random'); //给样本点集合添加随机数列
var split = 0.7;  //七成训练 三成测试
var trainingPartition2 = withRandom.filter(ee.Filter.lt('random', split)); //按随机数列划分训练集
var testingPartition = withRandom.filter(ee.Filter.gte('random', split)); //按随机数列划分测试集var trainingPartition=image.sampleRegions({ //从影像中提取训练集的像素值collection: trainingPartition2, //输入训练集scale:10, //设置空间分辨率properties: ['Map'], //设置类别字段})
var classifier = ee.Classifier.smileRandomForest(100).train({ //训练随机森林分类器features: trainingPartition, //输入训练集classProperty:'Map', //设置类别字段// inputProperties :['B4', 'B3', 'B2']
});
var classied=image.classify(classifier,"smileRandomForest"); //应用分类器Map.addLayer(classied.randomVisualizer()) //添加分类图层

精度评价

最后需要评估分类器的性能,计算分类精度。
在这里插入图片描述

可以通过以下代码来评估分类精度:

var pixelValues2=classied.sampleRegions({ //从影像中提取测试集的像素值collection: testingPartition, //输入测试集scale:10, 
});
print("pixelValues2",pixelValues2); //打印测试集信息
var confusionMatrix2 = pixelValues2.errorMatrix("Map", 'smileRandomForest');//,[10,20,30,40,50,60,80,90] //计算混淆矩阵
print('confusionMatrix', confusionMatrix2); //打印混淆矩阵
print('accuracy()', confusionMatrix2.accuracy()); //打印总体精度
// print('consumersAccuracy', confusionMatrix2.consumersAccuracy());
print('kappa()', confusionMatrix2.kappa()); //打印Kappa系数
//print('order()', confusionMatrix.order());
// print('producersAccuracy()', confusionMatrix2.producersAccuracy());
http://www.lryc.cn/news/255844.html

相关文章:

  • MATLAB基础运算
  • Linux DAC权限的简单应用
  • JVS低代码表单引擎:数据校验与处理的先锋
  • clickhouse删除partition分区数据
  • 持续集成交付CICD:CentOS 7 安装 Nexus 3.63
  • Apache Flink(十):Flink集群基础环境搭建-JDK及MySQL搭建
  • LVS-DR+Keepalived+动静分离实验
  • java面试题-Hashmap、Hashtable、ConcurrentHashMap原理
  • 数据可视化:解锁企业经营的智慧之道
  • JVM 性能调优
  • linux常用命令-yum命令详解(超详细)
  • 解决 Element-ui中 表格(Table)使用 v-if 条件切换后,表格的列的筛选不显示了
  • Navicat 技术指引 | 适用于 GaussDB 分布式的自动运行功能
  • 爬虫 selenium语法 (八)
  • NTP时钟同步服务器(校时服务器)技术参数分享
  • JDBC详解——增删改查(CRUD)、sql注入、事务、连接池
  • K-means算法通俗原理及Python与R语言的分别实现
  • 使用 db2diag 工具来分析 db2diag 日志文件
  • 在Pytorch中使用Tensorboard可视化训练过程
  • Redis 命令全解析之 Hash类型
  • postgresql数据库配置主从并配置ssl加密
  • IO多路转接之select
  • linux如何删除大文件的第一行(sed)
  • Navicat 技术指引 | 适用于 GaussDB 分布式的备份/还原功能
  • 【广州华锐互动VRAR】VR戒毒科普宣传系统有效提高戒毒成功率
  • 守护安全,六氟化硫气体泄漏报警装置校准服务
  • 概率测度理论方法(第 2 部分)
  • 实战:Docker Compose 下 Nginx、Java、Mysql 和 Redis 服务协同部署(包含解决浏览器访问Linux部署服务器本地资源问题)
  • Docker 设置国内镜像源
  • 通信协议 远程调用RPC