本文主要是介绍GEE案例——如何进行重采样(分辨率由高分辨率降为低分辨率)以sentinel2为例重采样到1000米,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
简介:
如何正确的将高分辨率影像降低为低分辨率?
这里我们使用sentinel2影像数据作为研究,并最终将影像转化为1000米分辨率的影像
聚合像素
要在地球引擎中聚合像素,必须使用 reduceResolution() 函数。有关该函数的更多信息,请参阅《Earth Engine 用户指南》。现在我们来看看如何将人口栅格聚合到较低分辨率的栅格中。首先,我们必须按所需分辨率计算投影参数。投影由 CRS 和 CRS 变换组成。变换由 6 个参数组成:[xScale, xShearing, xTranslation, yShearing, yScale, yTranslation]。我们可以使用辅助函数 atScale() 在给定的比例下使用正确的变换来计算新的投影。
得到新投影后,我们可以使用 reduceResolution() 函数,使用给定的缩放器函数聚合像素。在使用 ee.Reducer.sum() 进行聚合时,需要使用非加权减速器 ee.Reducer.sum().unweighted()。这里使用非加权聚合的原因是地球引擎的内部工作原理,在这里和这里都有解释。
问题
我们将其中的一个波段转化为500m分辨率和1km分辨率的影像。将结果分批次,这样解决分辨率超限的问题。
reduceResolution 功能有 1024 个像素的限制。这意味着单步聚合最多可以将 1024 个像素合并到一个像素中。如果源像素尺寸和目标像素尺寸相差很大,可能会出现 "每个输出像素的输入像素过多 "这样的错误。
这里会有一个问题,主要的问题就是我们无法一下将60m分辨率的影像重分类后的结果则是会出现下面的结果ComputedObject (Error)
Too many input pixels per output pixel. Need 2501
这篇关于GEE案例——如何进行重采样(分辨率由高分辨率降为低分辨率)以sentinel2为例重采样到1000米的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!