主要内容

统计掩膜后数据集像元数量统计,区域面积、数量统计,在GEE线上的Code Editor编写JavaScript代码实现相关功能:传入范围,筛选出符合条件的数据,预处理之后计算

代码实现

数据准备

原始影像:定义示例矢量区域geometry(山东省潍坊市峡山水库周边),时间范围(为凸显去云效果,选择多雨季节,云量较大),筛选出符合条件的Landsat8影像集dataset并借助函数maskL8sr去掉质量不合适的像元

var geometry = ee.Geometry.Polygon([[[119.3140376290338, 36.559328749628065],[119.3140376290338, 36.263933411986294],[119.62234146204162, 36.263933411986294],[119.62234146204162, 36.559328749628065]]], null, false);// QA_PIXEL band (CFMask) to mask unwanted pixels.
function maskL8sr(image) {// Bit 0 - Fill// Bit 1 - Dilated Cloud// Bit 2 - Cirrus// Bit 3 - Cloud// Bit 4 - Cloud Shadowvar qaMask = image.select('QA_PIXEL').bitwiseAnd(parseInt('11111', 2)).eq(0);var saturationMask = image.select('QA_RADSAT').eq(0);// Apply the scaling factors to the appropriate bands.var opticalBands = image.select('SR_B.').multiply(0.0000275).add(-0.2);var thermalBands = image.select('ST_B.*').multiply(0.00341802).add(149.0);// Replace the original bands with the scaled ones and apply the masks.return image.addBands(opticalBands, null, true).addBands(thermalBands, null, true).updateMask(qaMask).updateMask(saturationMask);
}var dataset = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2').filterDate('2021-6-01', '2021-7-01').filterBounds(geometry)// .filter(ee.Filter.lt('CLOUD_COVER', 20)).map(maskL8sr).select(['SR_B4', 'SR_B3', 'SR_B2']);

数据集有效像元数量

数据集的影像数量为num,计算每个像元位置有效值的数目(未被上一步maskL8sr函数掩膜掉);进行可视化,定义调色板(范围为0-影像数量,颜色越深值越大)

//数据集有效像元数量
var num = dataset.size().getInfo()
print("数据集图像数量", num)
var valueCount = dataset.select(0).count().clip(geometry)
var visParams1 = { min: 0, max: num, palette: ['FFFFFF', 'CE7E45', 'DF923D', 'F1B555', 'FCD163'] };
Map.addLayer(valueCount, visParams1, "数据集有效像元数量");

有效像元数量图:

数据合成

以单幅影像为实例,将数据集dataset中值合成,保留RGB三波段,真彩色显示;

//获取图像 中值合成
var l8_image = dataset.median().clip(geometry);//可视化
var visualization = {bands: ['SR_B4', 'SR_B3', 'SR_B2'],min: 0.0,max: 0.3,
};
Map.centerObject(geometry);
Map.addLayer(l8_image, visualization, 'True Color (432)',false);

真彩色(432) :去掉质量不佳像元影像有部分缺失

面积统计

借助gee的ee.Image.pixelArea()生成一幅图像,其中每个像素的值为该像素的面积(以平方米为单位)。返回的图像有一个单独的波段,称为“area”。

reduceRegion函数对特定区域的所有像素应用ee.Reducer.sum()求和计算,分别得到掩膜前后区域内的面积,求得面积比例

//面积比例
// Map.addLayer(ee.Image(1).updateMask(l8_image.select(0).mask()),"","掩膜")
var allArea = ee.Image.pixelArea().reduceRegion({reducer: ee.Reducer.sum(),geometry: geometry,scale: 30,maxPixels: 10e15,
}).get("area");
print("allArea m2", allArea)
var realArea = ee.Image.pixelArea().updateMask(l8_image.select(0).mask()).reduceRegion({reducer: ee.Reducer.sum(),geometry: geometry,scale: 30,maxPixels: 10e15,
}).get("area");
print("realArea m2", realArea)
print("面积比例", ee.Number(realArea).divide(allArea))

数量统计

reduceRegion函数对特定区域的所有像素应用ee.Reducer.count()求数量计算,分别得到掩膜前后区域内像元数量,求得数量比例

var allCount = ee.Image.pixelArea().reduceRegion({reducer: ee.Reducer.count(),geometry: geometry,scale: 30,maxPixels: 10e15,
}).get("area");
print("allCount", allCount)
var realCount = ee.Image.pixelArea().updateMask(l8_image.select(0).mask()).reduceRegion({reducer: ee.Reducer.count(),geometry: geometry,scale: 30,maxPixels: 10e15,
}).get("area");
print("realCount", realCount)
print("像元比例", ee.Number(realArea).divide(allArea))

结果

【GEE笔记】有效像元(面积、数量)统计相关推荐

  1. 种子数量统计,四种方法,(面积、周长、数据处理1、数据处理2)

    利用图像处理的额方法统计种子的个数 根据种子的特点,可以用的方法有:面积,周长.还有基于这两种方法的其他方案. 1.利用面积计算 clear all;close all;clc; img=imread ...

  2. 划痕实验 迁移面积自动统计_从Jupyter迁移到合作实验室

    划痕实验 迁移面积自动统计 If you want to use Google Colaboratory to perform your data analysis, for building dat ...

  3. ENVI计算分割像元面积

    有关ENVI密度分割(灰度分割)可参考这个博客 ENVI5.3.1使用Landsat 8影像进行灰度分割(密度分割) 在ENVI中进行密度分割(彩色分割)后,需要计算分割后类型的面积,步骤如下: 1. ...

  4. 数据分析案例:全球星巴克数量统计

    案例概述 本文为博主的数据分析学习笔记.此篇文章介绍使用星巴克数据统计中国和美国的星巴克数量,并统计中国各个省份的星巴克数量并作图. 本案例涉及到的知识点 Pandas之DataFrame分组 Pan ...

  5. 组队学习笔记Task1:论文数据统计

    数据分析第一次组队学习笔记--Lizzy @Datawhale Task1:论文数据统计 学习主题:论文数量统计(数据统计任务),统计2019年全年,计算机各个方向论文数量: 学习内容:赛题理解.Pa ...

  6. python中采用字典建立统,Python中使用Counter进行字典创建以及key数量统计的方法...

    这里的Counter是指collections中的Counter,通过Counter可以实现字典的创建以及字典key出现频次的统计.然而,使用的时候还是有一点需要注意的小事项. 使用Counter创建 ...

  7. python如何统计字典里面健的数量_Python中使用Counter进行字典创建以及key数量统计的方法...

    Python中使用Counter进行字典创建以及key数量统计的方法 来源:中文源码网    浏览: 次    日期:2018年9月2日 Python中使用Counter进行字典创建以及key数量统计 ...

  8. pyecharts查看版本_pyecharts v1 版本 学习笔记 折线图,面积图

    折线图 折线图 基本demo import pyecharts.options as opts from pyecharts.charts import Line c = ( Line() .add_ ...

  9. C#开发笔记之12-如何用C#统计子字符串出现的次数?

    本文由 比特飞 原创发布,欢迎大家踊跃转载. 转载请注明本文地址:C#开发笔记之12-如何用C#统计子字符串出现的次数? | .Net中文网. C#开发笔记概述 概述 本文介绍如何使用C#统计子字符串 ...

最新文章

  1. opencv java 灰度_如何使用Java将图像转换为灰度?
  2. 正则表达式之——exec,match
  3. MySQL中用户授权/删除授权的方法
  4. 读javascript百炼成仙笑死笔记一
  5. React 高级应用 -- 错误边界 Error Boundaries
  6. AIX双机调整DB2配置
  7. 深度学习:基于梯度下降不同优化算法的比较总结
  8. 推荐项目| 微信小程序富文本解析组件-wxParse
  9. Altium Designer软件绘图
  10. ECharts数据可视化(入门)
  11. java 硬盘序列号_如何使用Java获取硬盘序列号?
  12. discuz tools.php,Discuz!论坛Tools工具箱功能详解
  13. 必应壁纸php,自动下载每日必应壁纸到指定文件夹php源码
  14. 微信小程序音乐播放器源码【包调试运行】
  15. 逻辑回归实现鸢尾花分类
  16. 移动内部疯传的11篇VoLTE学习笔记,看懂了你也是技术大神(二)
  17. 交换机 VLAN 端口类型
  18. 统计笔记3:statistical inference
  19. ue4 开发动作游戏_ue4游戏开发虚幻4学习教程资源素材合集
  20. Python递归函数应用之计算阶乘

热门文章

  1. 【车位检测】基于计算机视觉实现停车场空位识别附matlab代码
  2. 谢孟媛老师英语拼读03(附我备注)
  3. 3天学完10套Python顶级教程,端午节技术人消失之谜
  4. 网站流量统计系统 phpMyVisites
  5. centos7开机启动进入紧急模式emergency mode
  6. [快讯]QCon北京2014 slides下载、视频发布排期通知
  7. 牛客网大厂在线笔试输入输出练习python3版
  8. 无internet访问权限解决办法
  9. my97datepicker日历展示出现中文乱码
  10. 数学模型奶制品生产c语言编程,数学模型 奶制品的生产与销售.ppt