曲线救国|GEE逐像元分析方法详解

文摘   2024-09-02 23:30   美国  

我们知道,GEE中的栅格数据类型包括了Image和它的集合ImageCollection。相应的,也出现了很多基于Image和ImageCollection开发的函数。然而,在GEE中,却几乎没有找到基于Pixels的函数类型。因此,如何开展逐像元分析,成为了GEE算法构建的难点。

01

GEE中栅格数据的构建


在GEE中,栅格数据的构建是以波段(Band)为最小单元构成影像(Image),而一个影像(Image)包含多个波段(Band),多个影像组合成为了影像集合(ImageCollection)。因此,可以说GEE中的栅格数据分析几乎都是以影像为单元开展的。然而,在很多研究中,我们需要对逐像元开展分析,包括变化分析、邻域分析、叠加分析等等。如何开展这类研究成为了一个难点。下图为栅格数据的关系图:

02

GEE像元分析的线索


慢慢的,我们不满足于仅仅是开展整幅影像的处理、分析以及建模。我们需要对像元数据开展分析,最常用的就是采样!例如土地利用分类、生物量估算、碳汇估算等,因此有了如下的代码:
// 对影像进行采样var samplePoints = image.sample({  region: roi,           // 感兴趣区域  scale: 30,             // 采样尺度(单位:米)  numPixels: numSamples, // 采样点数量  seed: 42,              // 随机种子,保证结果可重复  geometries: true       // 保留点的几何信息});
当然,我们有时候也会对影像中的像元进行卷积分析,这里就涉及核运算了。GEE中确实提供了不少的核算子,我们以最常用的正方形为例:
// 定义正方形的核 (kernel)var squareKernel = ee.Kernel.square({  radius: 2,    // 半径,以像素为单位  units: 'pixels',  normalize: true // 归一化,使得核的值之和为1});// 对影像进行卷积运算var convolvedImage = image.convolve(squareKernel);
然而,以上并没有解决我们对于逐像元的分析需求,只能满足部分需求,远远达不到我们想构建自己的模型。

03

GEE逐像元分析|曲线救国


我们换个思路。GEE的影像的像元由一个一个正方形组成,它是不是和矢量数据的一个一个点组成Feature很相似?恰巧的是,GEE提供了Sample函数,它刚好可以将栅格数据转换成一个一个的点数据,而基于Feature的函数分析,GEE是提供了海量的API的,这就为GEE逐像元分析提供了思路!因此,引出本文想表达的一个观点,GEE逐像元分析,不就是将像元分析转换成点分析吗?大不了最后再将点数据再转换成栅格数据嘛!!!其流程如下图所示:

此后,我们可以开展任意基于像元的操作了。基于这个思路,我想至少可以开发几十种不同的算法了。

GEE遥感训练营
分享GEE遥感领域实用教程、最新科研成果及资讯,交流、合作等事宜请加V:GeeStudy_2020
 最新文章