Google Earth Engine(GEE)——容易犯的错误3(请在select之前使用filter )和(用updateMask()代替mask())、组合reducer的使用!

简介: Google Earth Engine(GEE)——容易犯的错误3(请在select之前使用filter )和(用updateMask()代替mask())、组合reducer的使用!

首先过滤再select()

通常,在对集合执行任何其他操作之前,按时间、位置和/或元数据过滤输入集合。在选择性较少的过滤器之前应用更多选择性过滤器。空间和/或时间过滤器通常更具选择性。例如,请注意select()之前filter()应用: map()

var images = ee.ImageCollection('COPERNICUS/S2_SR');
var sf = ee.Geometry.Point([-122.463, 37.768]);
// 归约图像邻域功能。
var reduceFunction = function(image) {
  return image.reduceNeighborhood({
    reducer: ee.Reducer.mean(),
    kernel: ee.Kernel.square(4)
  });
};
var bands = ['B4', 'B3', 'B2'];
// Select and filter 首先进行,然后再进行MAP之类或者计算的操作!
var reasonableComputation = images
    .select(bands)
    .filterBounds(sf)
    .filterDate('2018-01-01', '2019-02-01')
    .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 1))
    .aside(print) // Useful for debugging.
    .map(reduceFunction)
    .reduce('mean')
    .rename(bands);
var viz = {bands: bands, min: 0, max: 10000};
Map.addLayer(reasonableComputation, viz, 'resonableComputation');


使用updateMask()代替mask()

updateMask()和 之间的区别在于mask()前者and()对参数(新掩码)和现有图像掩码进行逻辑处理,而mask()只是用参数替换图像淹没掉。后者的危险在于您可能会无意中取消屏蔽像素。在此示例中,目标是屏蔽小于或等于 300 米高程的像素。正如您所看到的,使用 mask()会导致很多像素被掩盖,这些像素不属于感兴趣的图像:

var l8sr = ee.ImageCollection('LANDSAT/LC08/C01/T1_SR');
var sf = ee.Geometry.Point([-122.40554461769182, 37.786807309873716]);
var aw3d30 = ee.Image('JAXA/ALOS/AW3D30_V1_1');
Map.centerObject(sf, 7);
var image = l8sr.filterBounds(sf)
    .filterDate('2019-06-01', '2019-12-31')
    .first();
var vis = {bands: ['B4', 'B3', 'B2'], min: 0, max: 3000};
Map.addLayer(image, vis, 'image', false);
var mask = aw3d30.select('AVE').gt(300);
Map.addLayer(mask, {}, 'mask', false);
// NO!  Don't do this!
var badMask = image.mask(mask);
Map.addLayer(badMask, vis, 'badMask');
//这样做比较好
var goodMask = image.updateMask(mask);
Map.addLayer(goodMask, vis, 'goodMask', false);


组合reducer

如果您需要来自单个输入(例如图像区域)的多个统计信息(例如均值和标准差),则组合减速器会更有效。例如,要获取图像统计信息,请按如下方式组合 reducer:这里用到了平均数和标准差之间的计算这样就不同再单独罗列和再次写一次reducer了

var image = ee.Image('COPERNICUS/S2/20150821T111616_20160314T094808_T30UWU');
// 通过组合减速器获得每个波段的均值和标准差
var stats = image.reduceRegion({
  reducer: ee.Reducer.mean().combine({
    reducer2: ee.Reducer.stdDev(),
    sharedInputs: true
  }),
  geometry: ee.Geometry.Rectangle([-2.15, 48.55, -1.83, 48.72]),
  scale: 10,
  bestEffort: true // Use maxPixels if you care about scale.
});
print(stats);
// 将平均值和 SD 提取到图像。
var meansImage = stats.toImage().select('.*_mean');
var sdsImage = stats.toImage().select('.*_stdDev');

在这个例子中,请注意均值归约器与标准偏差归约器相结合,并且sharedInputs能够单次通过输入像素。在输出字典中,reducer 的名称附加到带名称。要获得均值和 SD 图像(例如对输入图像进行归一化),您可以将值转换为图像并使用正则表达式分别提取均值和 SD,如示例中所示。



相关文章
|
3天前
|
数据可视化 定位技术 Sentinel
如何用Google Earth Engine快速、大量下载遥感影像数据?
【2月更文挑战第9天】本文介绍在谷歌地球引擎(Google Earth Engine,GEE)中,批量下载指定时间范围、空间范围的遥感影像数据(包括Landsat、Sentinel等)的方法~
692 0
如何用Google Earth Engine快速、大量下载遥感影像数据?
|
3天前
|
机器学习/深度学习 算法 数据可视化
基于Google Earth Engine云平台构建的多源遥感数据森林地上生物量AGB估算模型含生物量模型应用APP
基于Google Earth Engine云平台构建的多源遥感数据森林地上生物量AGB估算模型含生物量模型应用APP
112 0
|
3天前
|
存储 编解码 数据可视化
Google Earth Engine获取随机抽样点并均匀分布在栅格的不同数值区中
【2月更文挑战第14天】本文介绍在谷歌地球引擎(Google Earth Engine,GEE)中,按照给定的地表分类数据,对每一种不同的地物类型,分别加以全球范围内随机抽样点自动批量选取的方法~
275 0
Google Earth Engine获取随机抽样点并均匀分布在栅格的不同数值区中
|
3天前
|
API Go 网络架构
GEE Colab——如何从本地/Google云盘/Google Cloud Storage (GCS)上传和下载
GEE Colab——如何从本地/Google云盘/Google Cloud Storage (GCS)上传和下载
102 4
|
3天前
|
机器学习/深度学习 存储 人工智能
GEE Colab——初学者福音快速入门 Google Colab(Colaboratory)
GEE Colab——初学者福音快速入门 Google Colab(Colaboratory)
83 3
|
3天前
|
编解码 人工智能 算法
Google Earth Engine——促进森林温室气体报告的全球时间序列数据集
Google Earth Engine——促进森林温室气体报告的全球时间序列数据集
33 0
|
3天前
|
编解码 人工智能 数据库
Google Earth Engine(GEE)——全球道路盘查项目全球道路数据库
Google Earth Engine(GEE)——全球道路盘查项目全球道路数据库
48 0
|
3天前
|
编解码
Open Google Earth Engine(OEEL)——matrixUnit(...)中产生常量影像
Open Google Earth Engine(OEEL)——matrixUnit(...)中产生常量影像
23 0
|
3天前
Google Earth Engine(GEE)——导出指定区域的河流和流域范围
Google Earth Engine(GEE)——导出指定区域的河流和流域范围
53 0
|
3天前
|
传感器 编解码 数据处理
Open Google Earth Engine(OEEL)——哨兵1号数据的黑边去除功能附链接和代码
Open Google Earth Engine(OEEL)——哨兵1号数据的黑边去除功能附链接和代码
28 0

热门文章

最新文章