下一章 上一章 目录 设置
2、二识 第1节访问 ...
-
第1节访问图像
首先,你将使用代码编辑器构建一个图像。
首先,复制并粘贴以下内容:
var first_image=ee.Image(
\'LANDSAT/LT05/C02/T1_L2/LT05_118038_20000606\');
当你单击“运行”时,Earth Engine 将加载 Landsat 5卫星于2000年6月 6日捕获的图像。你还不会看到任何输出。
你可以通过多种方式探索图像。首先,你可以通过将图像打印到代码编辑器的控制台面板来检索元数据(有关图像的描述性数据):
print(first_image);
在控制台面板中,你可能需要单击展开箭头才能显示信息。你应该能够看出该图像由19个不同的波段组成。对于每个频段,元数据列出了四个属性,但现在我们只需注意第一个属性是用引号括起来的频段的名称或标签。例如,第一个频段的名称是“SR_B1”
Landsat 5等卫星传感器可测量电磁频谱不同部分的辐射强度。图像中的前六个波段(“SR_B1”到“SR_B7”)包含光谱的六个不同部分的测量值。前三个波段测量光谱的可见部分,或蓝光、绿光和红光的数量。其他三个波段测量光谱中人眼不可见的红外部分。
图像带是栅格数据模型的一个示例,栅格数据模型是一种在二维像素网格或图片元素中存储地理数据的方法。在遥感中,每个像素存储的值通常称为数字数或DN根据传感器的不同,像素值或 DN 可以表示一系列可能的数据值。
我们可以在元数据中看到其中一些信息,例如带的名称及其尺寸(宽像素数乘高像素数)。其他信息,例如每个频段中测量的频谱部分以及可能的数据值范围,可以通过地球引擎数据目录(将在之后描述)或使用其他地球引擎方法找到。
第2节:可视化图像
现在让我们将其中一个波段作为图层添加到地图中,以便我们可以看到它。
Map.addLayer(
first_image,// dataset to display
{
bands:[\'SR_B1\'],// band to display
min:8000,// display range
max:17000
},
\'Layer 1\'// name to show in Layer Manager
);
Map.addLayer(
first_image.select(\'SR_B1\'),// dataset to display
{
min:8000,// display range
max:17000
},
\'Layer 1\'// name to show in Layer Manager
);
这里的代码使用了代码编辑器中地图的addLayer方法。上面的命令有四个重要的组成部分:
1.first_image :这是要在地图上显示的数据集。
2.band :这些是数据集中要在地图上显示的特定波段。在我们的示例中,我们显示了一个名为“SR_B1”的带区。
3.min 、max :这些代表要在屏幕上显示的“SR_B1”值的下限和上限。默认情况下,提供的最小值(8000)映射为黑色,提供的最大值(17000)映射为白色。最小值和最大值之间的值线性映射到黑白之间的灰度。低于8000的值绘制为黑色。高于17000的值绘制为白色。band、min 和 max 参数一起定义可视化参数或数据显示的指令。
4.“Layer 1”:这是要在图层管理器中显示的地图图层的标签。该标签出现在地图右上角的图层下拉菜单中。
让我们使用检查器工具来探索该图像。当你单击代码编辑器右侧的“检查器”选项卡时,你的光标现在应该看起来像十字准线。当你单击图像中的某个位置时,检查器面板将按以下三个类别报告该位置的数据:
点:有关地图上位置的数据。这包括地理位置(经度和纬度)以及有关地图显示的一些数据(缩放级别和比例)。
像素:有关图层中像素的数据。如果展开它,你将看到地图图层的名称、数据源的描述和条形图。在我们的示例中,我们看到“第1层”是从包含19个波段的图像数据集中绘制的。在图层名称下,图表显示你为数据集中每个波段单击的位置处的像素值。当你将光标悬停在某个条上时,会弹出一个面板,显示波段名称和“波段值”(像素值)。要查找“SR_B1”的像素值,请将光标悬停在左侧第一个条上。或者,单击“Layer 1”右侧的蓝色小图标,你会将显示从条形图更改为报告每个波段的像素值的字典。
对象:有关源数据集的数据。在这里,你将找到有关该图像的元数据,该元数据与你之前指示 Earth Engine 将图像打印到控制台时检索到的内容非常相似。
让我们在地图上再添加两个波段。
Map.addLayer(
first_image,
{
bands:[\'SR_B2\'],
min:8000,
max:17000
},
\'Layer 2\',
0,// shown
1// opacity
);
Map.addLayer(
first_image,
{
bands:[\'SR_B3\'],
min:8000,
max:17000
},
\'Layer 3\',
1,// shown
0// opacity
);
在上面的代码中,请注意我们在Map中添加了两个附加参数。addLayer 调用。有一个参数控制绘制图层时该图层是否显示在屏幕上。它可以是1(显示)或0(未显示)。另一个参数定义图层的不透明度,或“透视”地图图层的能力。不透明度值的范围可以在0(透明)和1(不透明)之间。
对于第2层,我们将显示的参数设置为0。对于第3层,我们将不透明度参数设置为0。因此,当我们第一次运行代码时,两个层都不可见。我们可以使用地图上图层管理器清单中的控件(右上角)使每个图层可见。展开此列表,你应该会看到我们将每个图层添加到地图时为其指定的名称。每个名称都位于复选框和不透明度滑块之间。要使第2层可见,请单击复选框。要使第3层可见,请将不透明度滑块向右移动。
通过操作这些控件,你应该注意到这些层显示为堆栈,即一层位于另一层之上。例如,通过将不透明度滑块一直推到右侧,将每层的不透明度设置为1。然后确保选中每个图层旁边的每个框,以便显示所有图层。现在,你可以通过选中和取消选中每个层来识别哪个层位于堆栈顶部。如果一个图层位于另一个图层之上,则取消选中顶层将显示下面的图层。如果堆栈中的一个图层位于另一个图层下方,则取消选中底层将不会改变显示(因为顶层将保持可见)。如果你在我们的堆栈上尝试这个,你应该看到列表顺序反映了堆栈顺序,这意味着位于图层列表顶部的图层出现在堆栈的顶部。现在将列表中层的顺序与脚本中的操作顺序进行比较。
第3节真彩色复合
使用图层管理器中的控件,探索这些图层并检查每个波段中的像素值有何不同。第2层(显示“SR_B2”波段的像素值)通常是否比第1层(“SR_B1”波段)更亮?与第2层相比,第3层(“SR_B3”波段)的海水是否在北部显得更暗,而在南部显得更亮?
我们可以使用颜色将每个带层像素值的这些视觉差异作为RGB 复合材料一次性进行比较。此方法使用三种基色(红色、绿色和蓝色)来显示三个波段中每个像素的值。
要尝试此操作,请添加此代码并运行它。
Map.addLayer(
first_image,
{
bands:[\'SR_B3\', \'SR_B2\', \'SR_B1\'],
min:8000,
max:17000
},
\'Natural Color\');
结果看起来就像我们看到的世界,被称为自然色彩合成,因为它自然地配对图像波段的光谱范围来显示颜色。该图像也称为真彩色合成图,显示带有红色阴影的红色光谱带、带有绿色阴影的绿色光谱带和带有蓝色阴影的蓝色光谱带。我们简单地通过列表中波段的顺序指定配对:B3、B2、B1。由于 Landsat5的波段 3、2和1对应于现实世界的红色、绿色和蓝色颜色,因此该图像类似于我们在飞机窗外或低空飞行的无人机上看到的世界。
第4节假彩色复合材料
正如你在打印波段列表时所看到的,Landsat 图像包含的波段远多于三个真彩色波段。我们可以制作 RGB 合成图来显示任何波段的组合,甚至是人眼可见范围之外的波段。例如,波段4代表近红外波段,位于人类视觉范围之外。由于其在区分环境条件方面的价值,该波段甚至被包含在20世纪70年代最早的陆地卫星中。例如,它在针叶林和落叶林中具有不同的值,并且可以指示作物的健康状况。要查看此示例,请将此代码添加到你的脚本中并运行它。
Map.addLayer(
first_image,
{
bands:[\'SR_B4\', \'SR_B3\', \'SR_B2\'],
min:8000,
max:17000
},
\'False Color\');
在这种假色复合材料中,显示颜色不再与条带自然配对。这个特殊的例子,更准确地称为彩色红外复合材料,是一个我们无法用眼睛观察到的场景,但你可以学习阅读和解释。通过思考传递到红色、绿色和蓝色通道的内容,可以从逻辑上解读其含义。
总的来说,假彩色合成图像比真彩色图像提供了更多的对比度,有助于理解场景中的差异。这表明其他波段也可能包含更多有用的信息。我们之前看到我们的卫星图像由19个波段组成。其中六个代表电磁波谱的不同部分,其中三个超出可见光谱,可用于制作不同的假色复合材料。使用下面的代码探索显示短波红外、近红外和可见绿光的复合材料。
Map.addLayer(
first_image,
{
bands:[\'SR_B5\', \'SR_B4\', \'SR_B2\'],
min:8000,
max:17000
},
\'Short wave false color\');
第5节位置属性
到目前为止,我们已经探索了波段作为存储卫星测量的电磁频谱切片数据的方法。现在,我们将致力于将加色系统应用于存储非光学和更抽象的地理位置属性的波段。
首先,将此代码添加到你的脚本中并运行它。
var lights93=ee.Image(\'NOAA/DMSP-OLS/NIGHTTIME_LIGHTS/F101993\');
print(\'Nighttime lights\', lights93);
Map.addLayer(
lights93,
{
bands:[\'stable_lights\'],
min:0,
max:63
},
\'Lights\');
此代码加载全球夜间灯光的图像并向地图添加一个新图层。请查看我们打印到控制台面板的元数据。你应该看到图像由四个带组成。该代码选择“stable_lights”波段以显示为地图的图层。显示值的范围(0–63)表示该图像中的最小和最大像素值。如前所述,你可以在地球引擎数据记录中或使用其他地球引擎方法找到此范围。
全球夜间灯光图像表示一个日历年每个像素夜间灯光的平均亮度。对于我们这些在夜间乘坐飞机降落到目的地时坐在窗边的人来说,这个场景可能看起来有点熟悉。但图像在很大程度上是一种抽象。它为我们提供了从飞机甚至太空中永远无法看到的地球景观。夜晚将整个星球笼罩在黑暗之中。没有云。在“稳定光”波段,不存在短暂的光源。雷击、野火和其他短暂的灯光已被移除。
使用地图上的缩放控件,你可以缩小地图以查看上海的亮点、首尔北部和东部的大块区域、朝鲜除平壤小点之外的黑暗区域以及密密麻麻的条状区域。日本和台湾西海岸的灯光。
第6节:抽象 RGB 复合材料
现在我们可以使用加色系统来制作 RGB 合成图,以比较三个不同时间段的稳定夜间灯光。将以下代码添加到你的脚本中并运行它。
var lights03=ee.Image(\'NOAA/DMSP-OLS/NIGHTTIME_LIGHTS/F152003\')
.select(\'stable_lights\').rename(\'2003\');
var lights13=ee.Image(\'NOAA/DMSP-OLS/NIGHTTIME_LIGHTS/F182013\')
.select(\'stable_lights\').rename(\'2013\');
var changeImage=lights13.addBands(lights03)
.addBands(lights93.select(\'stable_lights\').rename(\'1993\'));
print(\'change image\', changeImage);
Map.addLayer(
changeImage,
{
min:0,
max:63
},
\'Change composite\');
这段代码做了一些事情。首先,它创建两个新图像,每个图像代表不同的时间片段。对于这两者,我们使用select 方法来选择一个乐队(“stable_lights”),并使用rename 方法来更改乐队名称以指示它代表的年份。
接下来,代码使用addBands 方法创建一个新的三波段图像,我们将其命名为“changeImage”。它通过将一个图像 (lights13) 作为第一个波段、使用另一个图像 (lights03) 作为第二个波段、以及前面看到的 light93 图像作为第三个波段来实现此目的。第三条带在放入图像中时被命名为“1993”。
最后,代码将元数据打印到控制台,并使用Map 将图层作为 RGB 合成添加到地图中。添加图层。如果你查看打印的元数据,你应该会在“更改图像”标签下看到我们的图像由三个带组成,每个带以年份命名。你还应该注意到图像中波段的顺序:2013、2003、1993。此顺序决定了用于表示合成中每个时间片段的颜色通道:2013年为红色,2003年为绿色,1993年为蓝色。
我们现在可以读取图层上显示的颜色,以解释二十年来地球上夜间灯光的不同类型的变化。呈现白色的像素在这三年中都具有高亮度。你可以使用检查器面板来确认这一点。单击“检查器”面板将光标更改为十字准线,然后单击显示为白色的像素。在检查器面板的像素类别下查找“更改复合”图层。每个波段的像素值应该很高(等于或接近63)。
许多白色像素块代表城市核心。如果放大上海,你会发现白色核心的外围呈淡黄色,终端边缘呈淡红色。黄色代表2013年和2003年明亮但1993年黑暗的位置。红色代表2013年明亮但2003年和1993年黑暗的位置。如果缩小,你将看到白色核心到黄色外围到红色边缘的渐变情况围绕全球许多城市,显示了20年来城市扩张的全球模式。
当你缩小上海时,你可能会注意到每次更改缩放级别时每个地图图层都会重新绘制。为了更有效地探索更改复合图层,请使用图层管理器面板不显示(取消选中)除“更改复合图层”之外的所有图层。现在,当你缩放和平移时,地图的响应速度会更快,因为它只会刷新单个显示的显示图层。
除了城市变化之外,该图层还显示了产生明亮灯光的资源开采活动的变化。通常,这些活动产生的光在一年内保持稳定(因此包含在“稳定光”范围内),但不会持续十年或更长时间。例如,在韩国海峡(韩国和日本之间),你可以看到捕鱼船队的地理变化,这些船队使用明亮的卤素灯吸引鱿鱼和其他海洋生物游向水面并进入其渔网。蓝色像素可能在1993年捕捞较多,到2003年使用频率降低,而绿色像素可能在2003年捕捞较多,到2013年使用频率降低。