Gee系列:单元5遥感影像预处理【GEE网格预处理】
单元5:光栅预处理
1 简介
在本模块中,我们将讨论以下概念:
1.了解遥感影像中常用的数据校正类型。
2、如何直观比较同一数据集中不同预处理级别的空间数据。
- 如何在 Google Earth Engine for Landsat 8 地表反射图像中进行云遮蔽和云遮蔽评估。
2背景
什么是预处理?
您将在 Google 地球引擎 (GEE) 中找到的大部分数据都经过了一定程度的预处理。这涉及几种不同的质量控制方法,以确保网格集内的最高准确性和一致性。根据收集的不同,可能有不同级别的预处理可用,重要的是要了解差异,以便成功地将遥感数据整合到生态研究中。在 Gee 中提供数据之前,出版商一直在解决图像产品中三个常见的错误来源:大气(即空气化学)、地形(即高程)和几何形状(即像素一致性)。
大气校正
当太阳能从地球表面反弹并返回到我们在太空中的传感器时,大气在挡路方面做得很好。这以散射和吸收的形式发生(更多信息参见模块 3)。识别和纠正这些影响对于准确表示和解释真实的表面条件非常重要,例如树叶色素或城市和农业像素之间的差异。
地形和地形校正
坡度、坡向和高程的照明效果对遥感数据的收集和处理提出了额外的挑战。已经开发了多种校正方法,包括使用数字高程模型来预测有问题的地形。如果您的研究是在高海拔地区或地形陡峭的地区进行的,您会很高兴知道地形效果的预处理是专家的责任(尽管出于谨慎和谨慎的考虑确实存在手动方法)。
几何校正
此过程确保光栅图像的对齐是系统的,并且随着时间的推移和相对于其他图像的对齐。对于 Landsat,地理配准和正射影像校正过程是通过独立的地面控制点和先前创建的数字高程模型完成的。对于像 Landsat 这样的档案数据集,最重要的是确保像素年复一年地排列。否则,遥感科学家和生态学家将几乎没有能力进行多时态分析。
重要的是要记住,这些质量保证方法并非 100% 万无一失!遵循“了解您的数据”的座右铭,并从质量和数量方面仔细检查您的图像。我们将在模块后面展示几个示例。
3 在 Google Earth Engine 中使用 Landsat 8 进行预处理
在 Google 地球引擎(免费!)中提供数据之前,专门的支持和幕后工作是一个令人难以置信的优势。但是,您可能仍然发现有必要操作您感兴趣的数据集以促进特定的研究应用。在本模块中,我们将使用 Landsat 8 数据。下图详细介绍了不同处理级别的几个用例。

Young et al, 2017决策工作流显示了不同级别的 Landsat 数据预处理的推荐用例。
3.1 预处理级别示例。
为了定性地了解不同预处理水平之间的差异,我们可以查看2018年夏末俄勒冈州南部的几张真彩色图像。在这个时间范围内,我们的标准大气干扰是由于来自北加州卡尔火的干扰。为了评估我们的初始图像,我们将加载“原始”Landsat 8 集合。原始数据(也称为“传感器辐射”)尚未针对任何形式的潜在影响进行校正,通常不用于生态研究。但是,为即将到来的级别建立基线是有帮助的。运行以下脚本以生成类似于以下内容的图像。
注:除以下预处理级别外,Landsat 数据还分为两个质量级别,第 1 层和第 2 层。第 1 层是更高质量的选项。单击此处了解有关级别之间差异的更多信息。
<span styleu003d"color:#333333"><span styleu003d"background-color:#ffffff"><span styleu003d"color:#333333"><span styleu003d"background-color:#f8f8f8">< code><span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 以美国俄勒冈州南部为中心。</em></span></span>
<span styleu003d"color:inherit">地图<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">setCenter</span >(<span styleu003d"color:#ce5c00"><strong>-</strong></span><span styleu003d"color:#0000cf">122.3158</span><span styleu003d"color:#ce5c00 "><strong>,</strong></span> <span styleu003d"color:#0000cf">42.4494</span><span styleu003d"color:#ce5c00"><strong>,</strong>< /span> <span styleu003d"color:#0000cf">12</span>)<span styleu003d"color:#ce5c00"><strong>;</strong></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 导入 Tier 1 Raw Landsat 8 场景。</em></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#204a87"><strong>var</strong></span> 原始 <span styleu003d"color:#ce5c00"><strong>u003d </strong></span> ee<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">图片</span>(< span styleu003d"color:#4e9a06">'LANDSAT/LC08/C01/T1/LC08_045031_20180811'</span>)<span styleu003d"color:#ce5c00"><strong>;</strong>< /span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 定义真彩色与参数。</em></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#204a87"><strong>var</strong></span> rawvis <span styleu003d"color:#ce5c00"><strong>u003d </strong></span> {<span styleu003d"color:#204a87">乐队</span><span styleu003d"color:#ce5c00"><strong>:</strong></span> [ <span styleu003d"color:#4e9a06">'B4'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span><span styleu003d"color:#4e9a06 ">'B3'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span><span styleu003d"color:#4e9a06">'B2'</span> ]<span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#204a87">min</span><span styleu003d"color:#ce5c00 "><strong>:</strong></span> <span styleu003d"color:#0000cf">0.0</span><span styleu003d"color:#ce5c00"><strong>,</strong>< /span> <span styleu003d"color:#204a87">max</span><span styleu003d"color:#ce5c00"><strong>:</strong></span> <span styleu003d"color:# 0000cf">30000.0</span><span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#204a87">gamma</span><span style u003d"color:#ce5c00"><strong>:</strong></span> <span 样式u003d"color:#0000cf">1</span>}<span styleu003d"color:#ce5c00"><strong>;</strong></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 将原始图像添加到您的地图中。</em></span></span>
<span styleu003d"color:inherit">地图<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">addLayer</span >(raw<span styleu003d"color:#ce5c00"><strong>,</strong></span> rawvis<span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#4e9a06">'raw'</span>)<span styleu003d"color:#ce5c00"><strong>;</strong></span></span></code> </span></span></span></span>

来自俄勒冈州南部的原始 Landsat 8 图像。我们的图像以 MT McLoughlin (2893 m) 为中心,东面是 Upper Klamath Lake。如果放大,可以看到梅德福(西)和克拉马斯瀑布(东)这两个城市。
3.2 大气层顶(TOA)
下一级预处理使用我们的“原始”数据并校正太阳活动的影响,包括太阳辐照度、地球太阳距离和太阳高度。对于研究人员而言,大气层顶(TOA)通常适用于评估单个日期和单个场景的图像(即相对较小研究区域的土地覆盖分类)。这是因为不同程度的太阳效应取决于收集的日期、时间和纬度。将生成的图像附加到您的脚本,类似于以下内容。
<span styleu003d"color:#333333"><span styleu003d"background-color:#ffffff"><span styleu003d"color:#333333"><span styleu003d"background-color:#f8f8f8">< code><span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 要开始比较,请从 Tier 1 Landsat 8 Top of Atmosphere 引入图像。</em> </span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#204a87"><strong>var</strong></span> 到 <span styleu003d"color:#ce5c00"><strong>u003d </strong></span> ee<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">图片</span>(< span styleu003d"color:#4e9a06">'LANDSAT/LC08/C01/T1_TOA/LC08_045031_20180811'</span>)<span styleu003d"color:#ce5c00"><strong>;</strong ></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 定义真彩色与参数。</em></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#204a87"><strong>var</strong></span> toavis <span styleu003d"color:#ce5c00"><strong>u003d </strong></span> {<span styleu003d"color:#204a87">乐队</span><span styleu003d"color:#ce5c00"><strong>:</strong></span> [ <span styleu003d"color:#4e9a06">'B4'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span><span styleu003d"color:#4e9a06 ">'B3'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span><span styleu003d"color:#4e9a06">'B2'</span> ]<span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#204a87">min</span><span styleu003d"color:#ce5c00 "><strong>:</strong></span> <span styleu003d"color:#0000cf">0.0</span><span styleu003d"color:#ce5c00"><strong>,</strong>< /span> <span styleu003d"color:#204a87">max</span><span styleu003d"color:#ce5c00"><strong>:</strong></span> <span styleu003d"color:# 0000cf">0.4</span>}<span styleu003d"color:#ce5c00"><strong>;</strong></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 将 TOA 图像添加到您的地图。</em></span></span>
<span styleu003d"color:inherit">地图<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">addLayer</span >(toa<span styleu003d"color:#ce5c00"><strong>,</strong></span> toavis<span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#4e9a06">'toa'</span>)<span styleu003d"color:#ce5c00"><strong>;</strong></span></span></code> </span></span></span></span>

加载 TOA 集后,由于对太阳效应的影响进行了一些校正,一些图像看起来更清晰。但是,似乎还有工作要做!
3.3 表面反射率(SR)
这些数据已经过最高级别的预处理,以试图最好地代表地面的实际情况,其中一定量的太阳能反弹(反射)到空中和星载传感器。然而,即使是表面反射率产品也会受到低太阳角、过多云层和北纬 65 度以上覆盖位置的不利影响(Young 等人,2017 年)。尽管如此,还是建议使用 Landsat 表面反射率数据来分析多个日期(例如变化检测)或大地理范围(例如算法预测)。将最后一段代码添加到您的脚本中,以在您的地图查看器窗格中查看下面的图像。
<span styleu003d"color:#333333"><span styleu003d"background-color:#ffffff"><span styleu003d"color:#333333"><span styleu003d"background-color:#f8f8f8">< code><span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 最后,从 Tier 1 Landsat 8 表面反射获取图像。</em></span>< /跨度>
<span styleu003d"color:inherit"><span styleu003d"color:#204a87"><strong>var</strong></span> sr <span styleu003d"color:#ce5c00"><strong>u003d </strong></span> ee<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">图片</span>(< span styleu003d"color:#4e9a06">'LANDSAT/LC08/C01/T1_SR/LC08_045031_20180811'</span>)<span styleu003d"color:#ce5c00"><strong>;</strong ></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 定义真彩色与参数。</em></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#204a87"><strong>var</strong></span> srvis <span styleu003d"color:#ce5c00"><strong>u003d </strong></span> {<span styleu003d"color:#204a87">乐队</span><span styleu003d"color:#ce5c00"><strong>:</strong></span> [ <span styleu003d"color:#4e9a06">'B4'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span><span styleu003d"color:#4e9a06 ">'B3'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span><span styleu003d"color:#4e9a06">'B2'</span> ]<span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#204a87">min</span><span styleu003d"color:#ce5c00 "><strong>:</strong></span> <span styleu003d"color:#0000cf">0</span><span styleu003d"color:#ce5c00"><strong>,</strong>< /span> <span styleu003d"color:#204a87">max</span><span styleu003d"color:#ce5c00"><strong>:</strong></span> <span styleu003d"color:# 0000cf">3000</span><span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#204a87">gamma</span><span style u003d"color:#ce5c00"><strong>:</strong></span> <span styleu003d"colo r:#0000cf">1.4</span>}<span styleu003d"color:#ce5c00"><strong>;</strong></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 将表面反射率图像添加到您的地图中。</em></span></span>
<span styleu003d"color:inherit">地图<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">addLayer</span >(sr<span styleu003d"color:#ce5c00"><strong>,</strong></span> srvis<span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#4e9a06">'sr'</span>)<span styleu003d"color:#ce5c00"><strong>;</strong></span></span></code> </span></span></span></span>

大气校正的应用似乎大大提高了我们的图像清晰度,尤其是在克拉马斯湖上游和 Mt McGloughlin 以西的农业区。
Landsat图像对比3.4完整代码
这些示例的代码来自特定的 Landsat 影像,但您现在有了一个框架来调查任何感兴趣的区域(即您的研究区域)以比较不同级别的预处理。
<span styleu003d"color:#333333"><span styleu003d"background-color:#ffffff"><span styleu003d"color:#333333"><span styleu003d"background-color:#f8f8f8">< code><span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 以美国俄勒冈州南部为中心。</em></span></span>
<span styleu003d"color:inherit">地图<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">setCenter</span >(<span styleu003d"color:#ce5c00"><strong>-</strong></span><span styleu003d"color:#0000cf">122.3158</span><span styleu003d"color:#ce5c00 "><strong>,</strong></span> <span styleu003d"color:#0000cf">42.4494</span><span styleu003d"color:#ce5c00"><strong>,</strong>< /span> <span styleu003d"color:#0000cf">12</span>)<span styleu003d"color:#ce5c00"><strong>;</strong></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 导入 Tier 1 Raw Landsat 8 场景。</em></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#204a87"><strong>var</strong></span> 原始 <span styleu003d"color:#ce5c00"><strong>u003d </strong></span> ee<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">图片</span>(< span styleu003d"color:#4e9a06">'LANDSAT/LC08/C01/T1/LC08_045031_20180811'</span>)<span styleu003d"color:#ce5c00"><strong>;</strong>< /span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 定义真彩色与参数。</em></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#204a87"><strong>var</strong></span> rawvis <span styleu003d"color:#ce5c00"><strong>u003d </strong></span> {<span styleu003d"color:#204a87">乐队</span><span styleu003d"color:#ce5c00"><strong>:</strong></span> [ <span styleu003d"color:#4e9a06">'B4'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span><span styleu003d"color:#4e9a06 ">'B3'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span><span styleu003d"color:#4e9a06">'B2'</span> ]<span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#204a87">min</span><span styleu003d"color:#ce5c00 "><strong>:</strong></span> <span styleu003d"color:#0000cf">0.0</span><span styleu003d"color:#ce5c00"><strong>,</strong>< /span> <span styleu003d"color:#204a87">max</span><span styleu003d"color:#ce5c00"><strong>:</strong></span> <span styleu003d"color:# 0000cf">30000.0</span><span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#204a87">gamma</span><span style u003d"color:#ce5c00"><strong>:</strong></span> <span 样式u003d"color:#0000cf">1</span>}<span styleu003d"color:#ce5c00"><strong>;</strong></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 将原始图像添加到您的地图中。</em></span></span>
<span styleu003d"color:inherit">地图<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">addLayer</span >(raw<span styleu003d"color:#ce5c00"><strong>,</strong></span> rawvis<span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#4e9a06">'raw'</span>)<span styleu003d"color:#ce5c00"><strong>;</strong></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 要开始比较,请从 Tier 1 Landsat 8 Top of Atmosphere 引入图像。</em>< /span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#204a87"><strong>var</strong></span> 到 <span styleu003d"color:#ce5c00"><strong>u003d </strong></span> ee<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">图片</span>(< span styleu003d"color:#4e9a06">'LANDSAT/LC08/C01/T1_TOA/LC08_045031_20180811'</span>)<span styleu003d"color:#ce5c00"><strong>;</strong ></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 定义真彩色与参数。</em></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#204a87"><strong>var</strong></span> toavis <span styleu003d"color:#ce5c00"><strong>u003d </strong></span> {<span styleu003d"color:#204a87">乐队</span><span styleu003d"color:#ce5c00"><strong>:</strong></span> [ <span styleu003d"color:#4e9a06">'B4'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span><span styleu003d"color:#4e9a06 ">'B3'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span><span styleu003d"color:#4e9a06">'B2'</span> ]<span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#204a87">min</span><span styleu003d"color:#ce5c00 "><strong>:</strong></span> <span styleu003d"color:#0000cf">0.0</span><span styleu003d"color:#ce5c00"><strong>,</strong>< /span> <span styleu003d"color:#204a87">max</span><span styleu003d"color:#ce5c00"><strong>:</strong></span> <span styleu003d"color:# 0000cf">0.4</span>}<span styleu003d"color:#ce5c00"><strong>;</strong></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 将 TOA 图像添加到您的地图。</em></span></span>
<span styleu003d"color:inherit">地图<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">addLayer</span >(toa<span styleu003d"color:#ce5c00"><strong>,</strong></span> toavis<span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#4e9a06">'toa'</span>)<span styleu003d"color:#ce5c00"><strong>;</strong></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 最后,从 Tier 1 Landsat 8 表面反射获取图像。</em></span></跨度>
<span styleu003d"color:inherit"><span styleu003d"color:#204a87"><strong>var</strong></span> sr <span styleu003d"color:#ce5c00"><strong>u003d </strong></span> ee<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">图片</span>(< span styleu003d"color:#4e9a06">'LANDSAT/LC08/C01/T1_SR/LC08_045031_20180811'</span>)<span styleu003d"color:#ce5c00"><strong>;</strong ></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 定义真彩色与参数。</em></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#204a87"><strong>var</strong></span> srvis <span styleu003d"color:#ce5c00"><strong>u003d </strong></span> {<span styleu003d"color:#204a87">乐队</span><span styleu003d"color:#ce5c00"><strong>:</strong></span> [ <span styleu003d"color:#4e9a06">'B4'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span><span styleu003d"color:#4e9a06 ">'B3'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span><span styleu003d"color:#4e9a06">'B2'</span> ]<span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#204a87">min</span><span styleu003d"color:#ce5c00 "><strong>:</strong></span> <span styleu003d"color:#0000cf">0</span><span styleu003d"color:#ce5c00"><strong>,</strong>< /span> <span styleu003d"color:#204a87">max</span><span styleu003d"color:#ce5c00"><strong>:</strong></span> <span styleu003d"color:# 0000cf">3000</span><span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#204a87">gamma</span><span style u003d"color:#ce5c00"><strong>:</strong></span> <span styleu003d"colo r:#0000cf">1.4</span>}<span styleu003d"color:#ce5c00"><strong>;</strong></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 将 TOA 图像添加到您的地图。</em></span></span>
<span styleu003d"color:inherit">地图<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">addLayer</span >(sr<span styleu003d"color:#ce5c00"><strong>,</strong></span> srvis<span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#4e9a06">'sr'</span>)<span styleu003d"color:#ce5c00"><strong>;</strong></span></span></code> </span></span></span></span>
3.5云屏蔽
正如我们所发现的,当我们得到表面反射率产品时,大气、地形和几何校正的预处理已经完成。在 Google Earth Engine 中可用之前,Landsat 数据处理中未包括的一个非常重要的步骤是消除近地天气现象。这通常以云的形式发生。云在热带(即茂密的热带雨林)和水体中尤为常见。在本节中,我们将研究明尼苏达州东北部和安大略省西南部的 Quetico 优越地区,由于大片云层,该地区被数百个中小型湖泊部分覆盖。

夏季,奎蒂科省立公园的让湖上空云雾缭绕。图片来源:Tay schulke。
3.5.1 单张图像遮罩:第 1 部分
让我们从加载我们知道是多云的图像开始。这个地区有很多选择,但这张八月下旬的照片向我们展示了多种形式的云。另一件需要考虑的事情是云会在下面的土地上投下阴影,这进一步扩大了我们最终必须移除的地理范围。启动一个新脚本并运行以下代码以生成下图所示的图像。
<span styleu003d"color:#333333"><span styleu003d"background-color:#ffffff"><span styleu003d"color:#333333"><span styleu003d"background-color:#f8f8f8">< code><span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 加载初始图像以测试查看多云图像。</em></span></span >
<span styleu003d"color:inherit"><span styleu003d"color:#204a87"><strong>var</strong></span> sr <span styleu003d"color:#ce5c00"><strong>u003d </strong></span> ee<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">图片</span>(< span styleu003d"color:#4e9a06">'LANDSAT/LC08/C01/T1_SR/LC08_027026_20180829'</span>)<span styleu003d"color:#ce5c00"><strong>;</strong ></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 为真彩色图像定义 visparams。</em></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#204a87"><strong>var</strong></span> srvis <span styleu003d"color:#ce5c00"><strong>u003d </strong></span> {<span styleu003d"color:#204a87">乐队</span><span styleu003d"color:#ce5c00"><strong>:</strong></span> [ <span styleu003d"color:#4e9a06">'B4'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#4e9a06 ">'B3'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#4e9a06">'B2'</span> ]<span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#204a87">min</span><span styleu003d"color:#ce5c00 "><strong>:</strong></span> <span styleu003d"color:#0000cf">0</span><span styleu003d"color:#ce5c00"><strong>,</strong>< /span> <span styleu003d"color:#204a87">max</span><span styleu003d"color:#ce5c00"><strong>:</strong></span> <span styleu003d"color:# 0000cf">3000</span><span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#204a87">gamma</span><span style u003d"color:#ce5c00"><strong>:</strong></span> <span styleu003d"co lor:#0000cf">1.4</span>}<span styleu003d"color:#ce5c00"><strong>;</strong></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 将您的阴天图像添加到地图中。</em></span></span>
<span styleu003d"color:inherit">地图<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">addLayer</span >(sr<span styleu003d"color:#ce5c00"><strong>,</strong></span> srvis<span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#4e9a06">'single_scene'</span>)<span styleu003d"color:#ce5c00"><strong>;</strong></span></span>
<span styleu003d"color:inherit">地图<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">setCenter</span >(<span styleu003d"color:#ce5c00"><strong>-</strong></span><span styleu003d"color:#0000cf">91.8859</span><span styleu003d"color:#ce5c00 "><strong>,</strong></span> <span styleu003d"color:#0000cf">48.8936</span><span styleu003d"color:#ce5c00"><strong>,</strong>< /span> <span styleu003d"color:#0000cf">8.81</span>)<span styleu003d"color:#ce5c00"><strong>;</strong></span></span></code ></span></span></span></span>

Quetico 优越国家上空的多云图像。
3.5.2 单幅图像掩蔽:第 2 部分
现在让我们处理我们的云问题。 Landsat 提供了一个像素_QA 波段,简而言之,根据之前量化的特征(例如云和雾霾的可能性)分配不同的值。您会发现构建云遮罩的代码更加复杂,但它是一种简单、保守的方法,可以从图像中去除那些恼人的白点。将以下代码附加到现有脚本并重新运行它以查看类似于下图的图像。记得取消选中图层控件中的“single_scene”!
<span styleu003d"color:#333333"><span styleu003d"background-color:#ffffff"><span styleu003d"color:#333333"><span styleu003d"background-color:#f8f8f8">< code><span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 根据 'pixel_qa' 波段的值定义简单的云遮罩。</em>< /span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 本质上,322 u003d 土地,324 u003d 水。</em></span></span >
<span styleu003d"color:inherit"><span styleu003d"color:#204a87"><strong>var</strong></span> qa <span styleu003d"color:#ce5c00"><strong>u003d </strong></span> sr<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">选择</span>(< span styleu003d"color:#4e9a06">'pixel_qa'</span>)<span styleu003d"color:#ce5c00"><strong>;</strong></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#204a87"><strong>var</strong></span> 掩码 <span styleu003d"color:#ce5c00"><strong>u003d </strong></span> qa<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">eq</span>(< span styleu003d"color:#0000cf">322</span>)<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">或</span>(qa<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">eq</span>(<span style u003d"color:#0000cf">324</span>))<span styleu003d"color:#ce5c00"><strong>;</strong></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#204a87"><strong>var</strong></span> sr_cm <span styleu003d"color:#ce5c00"><strong >u003d</strong></span> sr<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">updateMask</span> (掩码)<span styleu003d"color:#ce5c00"><strong>;</strong></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 添加新地图以与多云图像进行比较。</em></span></span>
<span styleu003d"color:inherit">地图<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">addLayer</span >(sr_cm<span styleu003d"color:#ce5c00"><strong>,</strong></span> srvis<span styleu003d"color:#ce5c00"><strong>,</strong></ span> <span styleu003d"color:#4e9a06">'single_scene_masked'</span>)<span styleu003d"color:#ce5c00"><strong>;</strong></span></span>跨度></code></span></span></span></span>

云和云阴影已成功移除,但生成的图像不会留下很多可用像素。
3.5.3 屏蔽跨多个日期
在一个有云的陆地卫星场景中,我们失去了相当大的地理覆盖范围。但是还有另一种方法!我们还可以在多个日期范围内应用掩码。为此,我们需要创建一个函数,我们将在模块 9中详细介绍。现在,使用以下函数(以及其余代码)继续您的脚本。将代码附加到现有脚本。
虽然 Google Earth Engine 中确实有来自 Landsat 的预制 NDVI 图像集,但这些数据集仅在 2017 年之前可用。因此,我们还将计算 NDVI 并将其添加到我们的图像集合中。这将使我们能够为 2018 年整个生长季节的每个像素生成一个中值,以测量研究区域的植被健康状况。重新运行您的代码,生成的图像应如下所示。
<span styleu003d"color:#333333"><span styleu003d"background-color:#ffffff"><span styleu003d"color:#333333"><span styleu003d"background-color:#f8f8f8">< code><span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 定义你的 cloudMask 函数应该如何工作。</em></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#204a87"><strong>var</strong></span> cloudMask <span styleu003d"color:#ce5c00"><strong>u003d </strong></span> <span styleu003d"color:#204a87"><strong>功能</strong></span>(图片){</span>
<span styleu003d"color:inherit"> <span styleu003d"color:#8f5902"><em>// var mask u003d image.select('pixel_qa').eq(322).or(image. select('pixel_qa').eq(324));</em></span></span>
<span styleu003d"color:inherit"> <span styleu003d"color:#204a87"><strong>var</strong></span> 掩码 <span styleu003d"color:#ce5c00"><strong>u003d </strong></span> 图片<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">选择</span>(< span styleu003d"color:#4e9a06">'pixel_qa'</span>)<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color: #000000">eq</span>(<span styleu003d"color:#0000cf">322</span>)<span styleu003d"color:#ce5c00"><strong>;</strong></span> </span>
<span styleu003d"color:inherit"> <span styleu003d"color:#204a87"><strong>返回</strong></span>图片<span styleu003d"color:#ce5c00"><strong>。 </strong></span><span styleu003d"color:#000000">mask</span>(mask)<span styleu003d"color:#ce5c00"><strong>;</strong></span> </span>
<span styleu003d"color:inherit">}<span styleu003d"color:#ce5c00"><strong>;</strong></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 这次我们将看一个更注重生态的例子,使用 NDVI。</em></em></em>跨度></span>
<span styleu003d"color:inherit"><span styleu003d"color:#204a87"><strong>var</strong></span> 集合 <span styleu003d"color:#ce5c00"><strong>u003d </strong></span> ee<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">ImageCollection</span>(< span styleu003d"color:#4e9a06">"LANDSAT/LC08/C01/T1_SR"</span>)</span>
<span styleu003d"color:inherit"><span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">filterDate</span> (<span styleu003d"color:#4e9a06">'2018-06-01'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span><span styleu003d "color:#4e9a06">'2018-09-30'</span>)</span>
<span styleu003d"color:inherit"><span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">过滤器</span> (ee<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#c4a000">过滤器</span><span styleu003d"color:#ce5c00 "><strong>.</strong></span><span styleu003d"color:#000000">calendarRange</span>(<span styleu003d"color:#0000cf">140</span><span style u003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#0000cf">270</span>)) <span styleu003d"color:#8f5902">< em>// 大概是我们潜在的生长季节</em></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">filterMetadata</span> (<span styleu003d"color:#4e9a06">'WRS_PATH'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color :#4e9a06">'equals'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#0000cf">27</span >)</span>
<span styleu003d"color:inherit"><span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">filterMetadata</span> (<span styleu003d"color:#4e9a06">'WRS_ROW'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color :#4e9a06">'equals'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#0000cf">26</span >)</span>
<span styleu003d"color:inherit"><span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">地图</span> (cloudMask)</span>
<span styleu003d"color:inherit"><span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">地图</span> (<span styleu003d"color:#204a87"><strong>函数</strong></span> <span styleu003d"color:#000000">NDVI</span>(i){</span>
<span styleu003d"color:inherit"> <span styleu003d"color:#204a87"><strong>return</strong></span> i<span styleu003d"color:#ce5c00"><strong>。 </strong></span><span styleu003d"color:#000000">addBands</span>(i<span styleu003d"color:#ce5c00"><strong>.</strong></span>< span styleu003d"color:#000000">normalizedDifference</span>([<span styleu003d"color:#4e9a06">'B5'</span><span styleu003d"color:#ce5c00"><strong> ,</strong></span><span styleu003d"color:#4e9a06">'B4'</span>])<span styleu003d"color:#ce5c00"><strong>.</strong>< /span><span styleu003d"color:#000000">重命名</span>(<span styleu003d"color:#4e9a06">'NDVI'</span>)) <span styleu003d"color:#8f5902" ><em>// 生成 NDVI 波段</em></span></span>
<span styleu003d"color:inherit">})<span styleu003d"color:#ce5c00"><strong>;</strong></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#204a87"><strong>var</strong></span> 中位数 <span styleu003d"color:#ce5c00"><strong>u003d </strong></span> 集合<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">中位数</span>() <span styleu003d"color:#ce5c00"><strong>;</strong></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 红色 u003d 较低的值,深绿色 u003d 较高的值</em></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#204a87"><strong>var</strong></span> collectionVis <span styleu003d"color:#ce5c00"><strong>u003d </strong></span> {<span styleu003d"color:#204a87">乐队</span><span styleu003d"color:#ce5c00"><strong>:</strong></span> <span styleu003d"color:#4e9a06">'NDVI'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#204a87"> min</span><span styleu003d"color:#ce5c00"><strong>:</strong></span> <span styleu003d"color:#0000cf">0.5</span><span styleu003d"color :#ce5c00"><strong>,</strong></span> <span styleu003d"color:#204a87">max</span><span styleu003d"color:#ce5c00"><strong>:</ strong></span> <span styleu003d"color:#0000cf">0.95</span><span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d" color:#204a87">调色板</span><span styleu003d"color:#ce5c00"><strong>:</strong></span> [<span styleu003d"color:#4e9a06">'red' </span><span styleu003d"color:#ce5c00"><strong>,</strong></span><span styleu003d"color:#4e9a06">'yellow'</span><span styleu003d"颜色:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#4e9a06">'green'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span><span styleu003d"color:#4e9a06 ">'003300'</span>]}<span styleu003d"color:#ce5c00"><strong>;</strong></span></span>
<span styleu003d"color:inherit">地图<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">addLayer</span >(median<span styleu003d"color:#ce5c00"><strong>,</strong></span> collectionVis<span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#4e9a06">'NDVI'</span>)<span styleu003d"color:#ce5c00"><strong>;</strong></span></span></code> </span></span></span></span>

可视化 2018 年整个生长季节的 NDVI 中值。随意切换不同的背景层。您的图像可能与此处显示的图像不完全相同。
3.5.4 视觉图像计数
我们的 NDVI 图像看起来不错。但我们对这些价值观有多大信心?具体来说,重要的是评估实际上有多少图像构成了我们的中值。我们可以通过可视化在每个像素位置使用多少图像的总和来快速检查我们的 NDVI 中值在整个研究区域中是否具有代表性。将以下代码附加到您的脚本,然后单击运行。您应该看到类似于下图的图像。
对于计数层,如果我们在 NDVI 值中发现空间异常,有很多选择。我们可以扩大我们的季节性日期范围或选择包括多年数据。最后,我们可能会接受失败,认为天气太阴天无用,决定探索不同的数据集——这是完全可以接受的!
<span styleu003d"color:#333333"><span styleu003d"background-color:#ffffff"><span styleu003d"color:#333333"><span styleu003d"background-color:#f8f8f8">< code><span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 创建计数带。</em></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#204a87"><strong>var</strong></span> 计数 <span styleu003d"color:#ce5c00"><strong>u003d </strong></span> 集合<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">选择</span>(< span styleu003d"color:#4e9a06">'NDVI'</span>)<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000 ">计数</span>()<span styleu003d"color:#ce5c00"><strong>;</strong></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 通过获取初始图像集合的大小来找到我们潜在的最大计数。</em></span> </span>
<span styleu003d"color:inherit"><span styleu003d"color:#000000">打印</span>(collection<span styleu003d"color:#ce5c00"><strong>.</strong></跨度><span styleu003d"color:#000000">尺寸</span>())<span styleu003d"color:#ce5c00"><strong>;</strong></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 在这个调色板中,红色 u003d 较低的值,蓝色 u003d 较高的值。</em></span>< /跨度>
<span styleu003d"color:inherit"><span styleu003d"color:#204a87"><strong>var</strong></span> countVis <span styleu003d"color:#ce5c00"><strong>u003d </strong></span> {<span styleu003d"color:#204a87">min</span><span styleu003d"color:#ce5c00"><strong>:</strong></span> <span styleu003d"color:#0000cf">0</span><span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#204a87">max< /span><span styleu003d"color:#ce5c00"><strong>:</strong></span> <span styleu003d"color:#0000cf">6</span><span styleu003d"color:# ce5c00"><strong>,</strong></span> <span styleu003d"color:#204a87">调色板</span><span styleu003d"color:#ce5c00"><strong>:</strong> </span> [<span styleu003d"color:#4e9a06">'b2182b'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span><span style u003d"color:#4e9a06">'ef8a62'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span><span styleu003d"color:#4e9a06">' fddbc7'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span> </span>
<span styleu003d"color:inherit"> <span styleu003d"color:#4e9a06">'d1e5f0'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span> span><span styleu003d"color:#4e9a06">'67a9cf'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span><span styleu003d"color: #4e9a06">'2166ac'</span>]}<span styleu003d"color:#ce5c00"><strong>;</strong></span></span>
<span styleu003d"color:inherit">地图<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">addLayer</span >(counts<span styleu003d"color:#ce5c00"><strong>,</strong></span> countVis<span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#4e9a06">'counts'</span>)<span styleu003d"color:#ce5c00"><strong>;</strong></span></span></code> </span></span></span></span>

可视化用于计算每个像素中的图像数量。较深的红色具有较低的值,较深的蓝色具有较高的值。
3.5.5 生成和导出直方图
要了解计数值的定量分布,我们可以构建计数数据的直方图。如果我们的研究区域如此多云以至于平均值仅代表一两个值,我们可能需要重新考虑我们的源数据或收集年份。将此最终代码块添加到脚本中,您将能够在控制台选项卡中看到直方图。您将制作自己的几何图形(如果您需要查看如何执行此操作,请参阅模块 1)。你的直方图可能会根据你的形状略有不同,但包含图像就足够了,应该类似于下图中的分布。
<span styleu003d"color:#333333"><span styleu003d"background-color:#ffffff"><span styleu003d"color:#333333"><span styleu003d"background-color:#f8f8f8">< code><span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 绘制自己的矩形并尝试覆盖大部分 Landsat 场景和</em></span> </span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 然后我们将制作分布的直方图。因为场景区域</em></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 如此大的 GEE 需要我们执行一些聚合。但这会</em></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 让我们大致了解我们的分布情况。</em></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#204a87"><strong>var</strong></span> 直方图 <span styleu003d"color:#ce5c00"><strong>u003d </strong></span> ui<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#c4a000">图表</span><span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#c4a000">图片</span><span styleu003d"color:#ce5c00"><strong >.</strong></span><span styleu003d"color:#000000">直方图</span>(计数<span styleu003d"color:#ce5c00"><strong>,</strong></span > 几何<span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#0000cf">120</span>)<span styleu003d"color:# ce5c00"><strong>;</strong></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 显示直方图。</em></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#000000">打印</span>(直方图)<span styleu003d"color:#ce5c00"><strong>;</strong>< /span></span></code></span></span></span></span>

直方图函数用于量化来自计数层的值分布的数量。
4 结论
在本课中,我们回顾了应用于遥感图像的一些常见校正,这些校正有助于生成您将在 Google 地球引擎中找到的高质量产品。我们还介绍了一个简单的框架来可视化这些差异,并了解处理水平的变化如何影响俄勒冈州南部烟雾缭绕的夏季所产生的图像。最后,我们构建了一个工作流脚本,使用谷歌地球引擎从生长季节图像中去除云层,生成平均植被指数值,并评估使用图像的分布。
5个完整的云屏蔽代码
<span styleu003d"color:#333333"><span styleu003d"background-color:#ffffff"><span styleu003d"color:#333333"><span styleu003d"background-color:#f8f8f8">< code><span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 加载初始图像以测试查看多云图像。</em></span></span >
<span styleu003d"color:inherit"><span styleu003d"color:#204a87"><strong>var</strong></span> sr <span styleu003d"color:#ce5c00"><strong>u003d </strong></span> ee<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">图片</span>(< span styleu003d"color:#4e9a06">'LANDSAT/LC08/C01/T1_SR/LC08_027026_20180829'</span>)<span styleu003d"color:#ce5c00"><strong>;</strong ></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 为真彩色图像定义 visparams。</em></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#204a87"><strong>var</strong></span> srvis <span styleu003d"color:#ce5c00"><strong>u003d </strong></span> {<span styleu003d"color:#204a87">乐队</span><span styleu003d"color:#ce5c00"><strong>:</strong></span> [ <span styleu003d"color:#4e9a06">'B4'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#4e9a06 ">'B3'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#4e9a06">'B2'</span> ]<span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#204a87">min</span><span styleu003d"color:#ce5c00 "><strong>:</strong></span> <span styleu003d"color:#0000cf">0</span><span styleu003d"color:#ce5c00"><strong>,</strong>< /span> <span styleu003d"color:#204a87">max</span><span styleu003d"color:#ce5c00"><strong>:</strong></span> <span styleu003d"color:# 0000cf">3000</span><span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#204a87">gamma</span><span style u003d"color:#ce5c00"><strong>:</strong></span> <span styleu003d"co lor:#0000cf">1.4</span>}<span styleu003d"color:#ce5c00"><strong>;</strong></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 将您的阴天图像添加到地图中。</em></span></span>
<span styleu003d"color:inherit">地图<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">addLayer</span >(sr<span styleu003d"color:#ce5c00"><strong>,</strong></span> srvis<span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#4e9a06">'single_scene'</span>)</span>
<span styleu003d"color:inherit">地图<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">setCenter</span >(<span styleu003d"color:#ce5c00"><strong>-</strong></span><span styleu003d"color:#0000cf">91.8859</span><span styleu003d"color:#ce5c00 "><strong>,</strong></span> <span styleu003d"color:#0000cf">48.8936</span><span styleu003d"color:#ce5c00"><strong>,</strong>< /span> <span styleu003d"color:#0000cf">8.81</span>)<span styleu003d"color:#ce5c00"><strong>;</strong></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 根据 'pixel_qa' 波段的值定义简单的云遮罩。</em></em>跨度></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 本质上,322 u003d 土地,324 u003d 水。</em></span></span >
<span styleu003d"color:inherit"><span styleu003d"color:#204a87"><strong>var</strong></span> qa <span styleu003d"color:#ce5c00"><strong>u003d </strong></span> sr<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">选择</span>(< span styleu003d"color:#4e9a06">'pixel_qa'</span>)<span styleu003d"color:#ce5c00"><strong>;</strong></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#204a87"><strong>var</strong></span> 掩码 <span styleu003d"color:#ce5c00"><strong>u003d </strong></span> qa<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">eq</span>(< span styleu003d"color:#0000cf">322</span>)<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">或</span>(qa<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">eq</span>(<span style u003d"color:#0000cf">324</span>))<span styleu003d"color:#ce5c00"><strong>;</strong></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#204a87"><strong>var</strong></span> sr_cm <span styleu003d"color:#ce5c00"><strong >u003d</strong></span> sr<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">updateMask</span> (掩码)<span styleu003d"color:#ce5c00"><strong>;</strong></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 添加新地图以与多云图像进行比较。</em></span></span>
<span styleu003d"color:inherit">地图<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">addLayer</span >(sr_cm<span styleu003d"color:#ce5c00"><strong>,</strong></span> srvis<span styleu003d"color:#ce5c00"><strong>,</strong></ span> <span styleu003d"color:#4e9a06">'single_scene_masked'</span>)<span styleu003d"color:#ce5c00"><strong>;</strong></span></span>跨度>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 定义你的 cloudMask 函数应该如何工作。</em></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#204a87"><strong>var</strong></span> cloudMask <span styleu003d"color:#ce5c00"><strong>u003d </strong></span> <span styleu003d"color:#204a87"><strong>功能</strong></span>(图片){</span>
<span styleu003d"color:inherit"> <span styleu003d"color:#8f5902"><em>// var mask u003d image.select('pixel_qa').eq(322).or(image. select('pixel_qa').eq(324));</em></span></span>
<span styleu003d"color:inherit"> <span styleu003d"color:#204a87"><strong>var</strong></span> 掩码 <span styleu003d"color:#ce5c00"><strong>u003d </strong></span> 图片<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">选择</span>(< span styleu003d"color:#4e9a06">'pixel_qa'</span>)<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color: #000000">eq</span>(<span styleu003d"color:#0000cf">322</span>)<span styleu003d"color:#ce5c00"><strong>;</strong></span> </span>
<span styleu003d"color:inherit"> <span styleu003d"color:#204a87"><strong>返回</strong></span>图片<span styleu003d"color:#ce5c00"><strong>。 </strong></span><span styleu003d"color:#000000">mask</span>(mask)<span styleu003d"color:#ce5c00"><strong>;</strong></span> </span>
<span styleu003d"color:inherit">}<span styleu003d"color:#ce5c00"><strong>;</strong></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 这次我们将看一个更注重生态的例子,使用 NDVI。</em></em></em>跨度></span>
<span styleu003d"color:inherit"><span styleu003d"color:#204a87"><strong>var</strong></span> 集合 <span styleu003d"color:#ce5c00"><strong>u003d </strong></span> ee<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">ImageCollection</span>(< span styleu003d"color:#4e9a06">"LANDSAT/LC08/C01/T1_SR"</span>)</span>
<span styleu003d"color:inherit"><span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">filterDate</span> (<span styleu003d"color:#4e9a06">'2018-06-01'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span><span styleu003d "color:#4e9a06">'2018-09-30'</span>)</span>
<span styleu003d"color:inherit"><span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">过滤器</span> (ee<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#c4a000">过滤器</span><span styleu003d"color:#ce5c00 "><strong>.</strong></span><span styleu003d"color:#000000">calendarRange</span>(<span styleu003d"color:#0000cf">140</span><span style u003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#0000cf">270</span>)) <span styleu003d"color:#8f5902">< em>// 大概是我们潜在的生长季节</em></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">filterMetadata</span> (<span styleu003d"color:#4e9a06">'WRS_PATH'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color :#4e9a06">'equals'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#0000cf">27</span >)</span>
<span styleu003d"color:inherit"><span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">filterMetadata</span> (<span styleu003d"color:#4e9a06">'WRS_ROW'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color :#4e9a06">'equals'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#0000cf">26</span >)</span>
<span styleu003d"color:inherit"><span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">地图</span> (cloudMask)</span>
<span styleu003d"color:inherit"><span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">地图</span> (<span styleu003d"color:#204a87"><strong>函数</strong></span> <span styleu003d"color:#000000">NDVI</span>(i){</span>
<span styleu003d"color:inherit"> <span styleu003d"color:#204a87"><strong>return</strong></span> i<span styleu003d"color:#ce5c00"><strong>。 </strong></span><span styleu003d"color:#000000">addBands</span>(i<span styleu003d"color:#ce5c00"><strong>.</strong></span>< span styleu003d"color:#000000">normalizedDifference</span>([<span styleu003d"color:#4e9a06">'B5'</span><span styleu003d"color:#ce5c00"><strong> ,</strong></span><span styleu003d"color:#4e9a06">'B4'</span>])<span styleu003d"color:#ce5c00"><strong>.</strong>< /span><span styleu003d"color:#000000">重命名</span>(<span styleu003d"color:#4e9a06">'NDVI'</span>)) <span styleu003d"color:#8f5902" ><em>// 生成 NDVI 波段</em></span></span>
<span styleu003d"color:inherit">})<span styleu003d"color:#ce5c00"><strong>;</strong></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#204a87"><strong>var</strong></span> 中位数 <span styleu003d"color:#ce5c00"><strong>u003d </strong></span> 集合<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">中位数</span>() <span styleu003d"color:#ce5c00"><strong>;</strong></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 红色 u003d 较低的值,深绿色 u003d 较高的值。</em></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#204a87"><strong>var</strong></span> collectionVis <span styleu003d"color:#ce5c00"><strong>u003d </strong></span> {<span styleu003d"color:#204a87">乐队</span><span styleu003d"color:#ce5c00"><strong>:</strong></span> <span styleu003d"color:#4e9a06">'NDVI'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#204a87"> min</span><span styleu003d"color:#ce5c00"><strong>:</strong></span> <span styleu003d"color:#0000cf">0.5</span><span styleu003d"color :#ce5c00"><strong>,</strong></span> <span styleu003d"color:#204a87">max</span><span styleu003d"color:#ce5c00"><strong>:</ strong></span> <span styleu003d"color:#0000cf">0.95</span><span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d" color:#204a87">调色板</span><span styleu003d"color:#ce5c00"><strong>:</strong></span> [<span styleu003d"color:#4e9a06">'red' </span><span styleu003d"color:#ce5c00"><strong>,</strong></span><span styleu003d"color:#4e9a06">'yellow'</span><span styleu003d"颜色:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#4e9a06">'green'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span><span styleu003d"color:#4e9a06 ">'003300'</span>]}<span styleu003d"color:#ce5c00"><strong>;</strong></span></span>
<span styleu003d"color:inherit">地图<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">addLayer</span >(median<span styleu003d"color:#ce5c00"><strong>,</strong></span> collectionVis<span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#4e9a06">'NDVI'</span>)<span styleu003d"color:#ce5c00"><strong>;</strong></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 创建计数带。</em></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#204a87"><strong>var</strong></span> 计数 <span styleu003d"color:#ce5c00"><strong>u003d </strong></span> 集合<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">选择</span>(< span styleu003d"color:#4e9a06">'NDVI'</span>)<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000 ">计数</span>()<span styleu003d"color:#ce5c00"><strong>;</strong></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 通过获取初始图像集合的大小来找到我们潜在的最大计数。</em></span> </span>
<span styleu003d"color:inherit"><span styleu003d"color:#000000">打印</span>(collection<span styleu003d"color:#ce5c00"><strong>.</strong></跨度><span styleu003d"color:#000000">尺寸</span>())<span styleu003d"color:#ce5c00"><strong>;</strong></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 在这个调色板中,红色 u003d 较低的值,蓝色 u003d 较高的值。</em></span>< /跨度>
<span styleu003d"color:inherit"><span styleu003d"color:#204a87"><strong>var</strong></span> countVis <span styleu003d"color:#ce5c00"><strong>u003d </strong></span> {<span styleu003d"color:#204a87">min</span><span styleu003d"color:#ce5c00"><strong>:</strong></span> <span styleu003d"color:#0000cf">0</span><span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#204a87">max< /span><span styleu003d"color:#ce5c00"><strong>:</strong></span> <span styleu003d"color:#0000cf">6</span><span styleu003d"color:# ce5c00"><strong>,</strong></span> <span styleu003d"color:#204a87">调色板</span><span styleu003d"color:#ce5c00"><strong>:</strong> </span> [<span styleu003d"color:#4e9a06">'b2182b'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span><span style u003d"color:#4e9a06">'ef8a62'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span><span styleu003d"color:#4e9a06">' fddbc7'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span> </span>
<span styleu003d"color:inherit"> <span styleu003d"color:#4e9a06">'d1e5f0'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span> span><span styleu003d"color:#4e9a06">'67a9cf'</span><span styleu003d"color:#ce5c00"><strong>,</strong></span><span styleu003d"color: #4e9a06">'2166ac'</span>]}<span styleu003d"color:#ce5c00"><strong>;</strong></span></span>
<span styleu003d"color:inherit">地图<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#000000">addLayer</span >(counts<span styleu003d"color:#ce5c00"><strong>,</strong></span> countVis<span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#4e9a06">'counts'</span>)<span styleu003d"color:#ce5c00"><strong>;</strong></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 绘制自己的矩形并尝试覆盖大部分 Landsat 场景和</em></span>< /跨度>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 然后我们将制作分布的直方图。因为场景区域</em></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 如此大的 GEE 需要我们执行一些聚合。但这会</em></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 让我们大致了解我们的分布情况。</em></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#204a87"><strong>var</strong></span> 直方图 <span styleu003d"color:#ce5c00"><strong>u003d </strong></span> ui<span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#c4a000">图表</span><span styleu003d"color:#ce5c00"><strong>.</strong></span><span styleu003d"color:#c4a000">图片</span><span styleu003d"color:#ce5c00"><strong >.</strong></span><span styleu003d"color:#000000">直方图</span>(计数<span styleu003d"color:#ce5c00"><strong>,</strong></span > 几何<span styleu003d"color:#ce5c00"><strong>,</strong></span> <span styleu003d"color:#0000cf">120</span>)<span styleu003d"color:# ce5c00"><strong>;</strong></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#8f5902"><em>// 显示直方图。</em></span></span>
<span styleu003d"color:inherit"><span styleu003d"color:#000000">打印</span>(直方图)<span styleu003d"color:#ce5c00"><strong>;</strong>< /span></span></code></span></span></span></span>
6 参考文献
Young, NE, Anderson, RS, Chignell, SM, Vorster, AG, Lawrence, R., & Evangelista, PH (2017)。 Landsat 预处理生存指南。生态学,98(4),920-932。
更多推荐

所有评论(0)