GEE入门篇|栅格数据集概述(一):Image Collections(一组有组织的图像)

目录

1.理论介绍

2.实践部分

2.1 Image Collections:一组有组织的图像

2.1.1 查看Image Collections

2.1.2 过滤Image Collection


        栅格数据集概述这一章节内容的目的是向您介绍Google Earth Engine中可用的许多类型的图像集合,这些包括单独的卫星图像、预制合成图像(将多个单独的卫星图像合并成一个合成图像)、分类土地利用和土地覆盖(LULC)地图、天气数据,以及其他类型的数据集。

1.理论介绍

       前面的内容中向您介绍了图像,这是Google Earth Engine中遥感图像的核心构建块之一。在本期内容中,我们将通过介绍image collections来扩展图像的概念,Earth Engine中的Image collections将许多不同的图像组织到一个更大的数据存储结构中,Image collections包括关于每个图像的位置、收集日期和其他属性的信息,允许您筛选Image Collection以获得分析所需的确切图像特征。

2.实践部分

       在Earth Engine中有许多不同类型的Image Collections,这些数据包括单个卫星图像的集合、将多个图像组合成一个混合图像的预制复合图像、分类LULC地图、天气数据和其他非光学数据集。其中每一个都对不同类型的分析有用。例如,最近的一项研究调查了澳大利亚野火的驱动因素(Sulova和Jokar 2021)。研究小组使用了欧洲中期天气预报中心(ECMWF)制作的欧洲中期天气预报再分析中心(ERA5)数据集,该数据集可在Earth Engine中免费获得,我们将在后面的学习内容看到这个数据集。本期内容我们的实战任务是Image Collections 的查看以及过滤操作。

2.1 Image Collections:一组有组织的图像

       在前面的学习内容中,您看到了与单个ee交互的一些基本方法。然而,根据遥感平台运行的时间长短,可能会收集到数千或数百万张地球图像。在Earth Engine中,这些数据被组织到一个ImageCollection中,这是一个特殊的数据类型,在Earth Engine API中具有特定的操作。像单个图像一样,它们可以用Map.addLayer查看。

       本期内容您将学习在书中以复杂的方式使用图像集合,特别是在第四部分。现在,我们将向您展示如何查看和使用其最基本的属性,并使用这些技能来查看地球引擎中的一些主要类型的图像集合。本期内容将简要介绍地球引擎数据目录,其中包含数十年的卫星图像和更多。我们将在以下内容中查看一些不同类型的数据集,包括气候和天气数据、数字高程模型和其他地形数据、土地覆盖、农田、卫星图像等。

2.1.1 查看Image Collections

       美国国家航空航天局(NASA)和美国地质调查局(USGS)的(Landsat)地球资源卫星计划已经发射了一系列地球观测卫星,命名为“Landsat1”、“Landsat2”等。自1972年以来,陆地卫星一直在返回图像,使该图像集成为对地球表面持续时间最长的卫星观测。现在,我们将查看其中一个仍在增长的图像集的图像和基本信息:2013年发射的Landsat 8上的作战陆地成像仪拍摄的场景集。将以下代码复制并粘贴到中心面板中,然后单击Run。在访问庞大的图像目录时,可能需要几分钟才能在Map区域中看到结果。您可能会注意到正在绘制的单个“场景”,这相当于地球资源卫星程序将地球划分为“路径”和“行”的方式。如果看图片需要几分钟以上的时间,试着放大到一个特定的区域来加快这个过程。

/
// View an Image Collection
/
// Import the Landsat 8 Raw Collection.
var landsat8 = ee.ImageCollection('LANDSAT/LC08/C02/T1');
// Print the size of the Landsat 8 dataset.
print('The size of the Landsat 8 image collection is:',
landsat8
.size());
// Try to print the image collection.
// WARNING! Running the print code immediately below
produces an error because
// the Console can not print more than 5000 elements.
print(landsat8);
// Add the Landsat 8 dataset to the map as a mosaic. The
collection is
// already chronologically sorted, so the most recent pixel
is displayed.
Map.addLayer(landsat8,
{
bands: ['B4', 'B3', 'B2'],
min: 5000,
max: 15000
},
'Landsat 8 Image Collection')

      首先,让我们检查一下地图输出(图1)。

 图 1 USGS Landsat 8 collection 2 Tier 1 Raw Scenes collection

        注意大量的云覆盖和“分层”的外观,如果需要,缩小,这是因为Earth Engine正在绘制构成ImageCollection的每个图像,一个在另一个的上面,条纹装是是卫星收集图像的结果,图像之间的重叠和图像的个体性质意味着这些图像还没有完全准备好进行分析,我们将在以后的内容中讨论这个问题。 

       现在在控制台上检查打印的尺寸,它将表明数据集中有超过一百万张图像(图2)。如果你将来再来看,这个数字会更大,因为随着卫星收集到更多的图像,这个活跃的收集会不断增长,出于同样的原因,图 在您的地图上看起来可能会略有不同。

图 整个Landsat 8集合的大小,注意,这个数字在不断增长

       注意,打印Image Collection会返回一条错误消息(图3),因为在Image- Collection上调用print会将集合中每个图像的名称写入控制台。这是地球引擎中有意保护的结果。我们不希望看到数以百万计的图像名称打印到控制台!

图3 在屏幕上打印过多元素的名称和信息时遇到的错误

2.1.2 过滤Image Collection

       Earth Engine中的Image Collection数据类型有多种方法来过滤,这有助于确定您想要查看或分析的确切图像。

(1)按日期筛选:

       其中一个过滤器是filterDate,它允许我们缩小日期范围Image Collection的。将以下代码复制到中心面板(粘贴),它在你之前的代码之后):

// Filter an Image Collection
/
// Filter the collection by date.
var landsatWinter = landsat8.filterDate('2020-12-01',
'2021-03-01');
Map.addLayer(landsatWinter,
{
bands: ['B4', 'B3', 'B2'],
min: 5000,
max: 15000
},
'Winter Landsat 8');
print('The size of the Winter Landsat 8 image collection
is:',
landsatWinter.size());

 图4 Landsat 8冬季图像集合

      检查冬季绘制的地图(图4)。如前面内容所述,地图可视化参数中的5000和15000值。上面代码中的addLayer函数指的是显示值范围的最小值和最大值。现在,看看冬季Landsat 8收集的数据。这个数字明显低于整个集合中的图像数量。这就是结果将日期过滤到2020-2021年冬季的三个月。

(2)按位置选择:

       第二个常用的过滤工具是filterBounds。此过滤器基于位置(例如,点、多边形或其他几何形状)。复制并粘贴下面的代码,过滤并添加来自Landsat 8图像集的冬季图像到美国明尼苏达州明尼阿波利斯的一个点。注意下面的地图。使用一个空字典{}作为visParams参数,将pointMN添加到地图中。这只意味着我们没有为这个元素指定可视化参数,它是用默认参数添加到地图中的。

// Create an Earth Engine Point object.
var pointMN = ee.Geometry.Point([-93.79, 45.05]);
// Filter the collection by location using the point.
var landsatMN = landsatWinter.filterBounds(pointMN);
Map.addLayer(landsatMN,
{
bands: ['B4', 'B3', 'B2'],
min: 5000,
max: 15000
},
'MN Landsat 8');
// Add the point to the map to see where it is.
Map.addLayer(pointMN, {}, 'Point MN');
print('The size of the Minneapolis Winter Landsat 8 image
collection is: ',
landsatMN.size());

如果我们在图层下取消选中Winter Landsat 8图层,我们可以看到只有与我们的点相交的图像被选中(图5)。根据需要放大或缩小。注意明尼阿波利斯冬季系列的打印尺寸——我们只有7张图片。 

图5 按位置选择 按位置选择(明尼阿波利斯冬季收集过滤的界限。第一个仍然表示未应用缩放的地图。这个系列在红圈内。第二个仍然表示对该区域应用缩放后的地图。红色箭头表示用于根据边界进行过滤的点(黑色))

(3)选择第一张图像

       我们将探索的最后一个操作是第一个函数。这将选择ImageCollection中的第一张图像。这允许我们在屏幕上放置单个图像以供检查。复制并粘贴下面的代码,选择并查看明尼阿波利斯冬季陆地卫星8图像集的第一张图像。在本例中,由于图像按时间顺序存储在ImageCollection中,因此它将选择集合中最早的图像。

// Select the first image in the filtered collection.
var landsatFirst = landsatMN.first();
// Display the first image in the filtered collection.
Map.centerObject(landsatFirst, 7);
Map.addLayer(landsatFirst,
{
bands: ['B4', 'B3', 'B2'],
min: 5000,
max: 15000
},
'First Landsat 8');

       第一个命令取我们的位置过滤图像堆栈并选择第一个图像,当图层被添加到Map区域时,您可以看到只返回一张图像—记住取消选中其他图层以便能够显示完整的图像(图6)。我们使用了Map. centerObject将地图居中于landsatFirst图像,缩放级别为7(缩放级别从0到24),如图6。

图6 过滤后的第一张Landsat图像

  • 11
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值