显示湖泊

为了计算湖泊面积随时间的变化,将比较 1984 至 2014 年间 Landsat 卫星对所拍摄的湖泊影像。 Landsat 卫星计划已经实施了 40 多年,其影像对于监测地球上的重大变化至关重要。 首先,您需要设置工程并对影像进行视觉比较。

打开工程

您需要下载该工程并在 ArcGIS Pro 中将其打开。

  1. 下载 Lake Poyang Project 包文件。 在计算机上找到已下载的文件,然后将文件移动到便于查找的位置,例如 Documents 文件夹。
    注:

    开始下载前,根据 web 浏览器的不同,系统可能会提示您选择文件的位置。 大多数浏览器将默认下载到计算机的 Downloads 文件夹下。

  2. 如果您拥有 ArcGIS Pro,请双击 Lake_Poyang_Project.ppkx 工程包以将其打开。 如果收到系统提示,请使用您获得许可的 ArcGIS 帐户或 ArcGIS Enterprise 帐户登录。
    注:

    如果您没有 ArcGIS Pro 的访问权限或者 ArcGIS 组织帐户,请参阅软件访问权限选项

    默认工程

    工程打开的默认区域为中国中东部。 为了使您明确方向,系统将打开三个图层(和底图):Three Gorges Dam(三峡大坝)、Yangtze River(长江)以及 Lake Poyang(鄱阳湖)的简单表示。 Lake Poyang 位于三峡大坝下游的几百英里处。

对鄱阳湖随时间的变化进行视觉比较

工程还包括三个影像图层,目前处于关闭状态。 这些图层显示了 1984 年、2001 年和 2014 年处于雨季高峰期的鄱阳湖。 您需要对影像进行视觉比较,以了解该湖泊的形状是如何随时间变化的。

  1. 内容窗格中,右键单击 Lake Poyang 图层,然后选择缩放至图层

    鄱阳湖

    鄱阳湖的大部分水域比较狭长,从长江向南延伸。 狭窄的形状意味着湖泊水域面积稍有收缩就会导致水生环境破裂。 此外,湖边的几座城市依赖于该湖泊提供的渔业和运输业。 在全国范围内,该湖泊是中国最大的淡水资源。 该湖泊的收缩会对生态和经济带来灾难性的后果。

  2. 内容窗格中,取消选中 Three Gorges DamYangtze RiverLake Poyang 图层旁边的框以将它们关闭。

    已关闭图层

  3. 内容窗格中,选中 June 1984.tif 图层旁边的复选框将其打开。
  4. 在地图上使用鼠标进行平移和缩放,以便可以看到整个图像。

    1984 年的鄱阳湖

    该影像显示了 1984 年 6 月的湖泊。 该影像由 Landsat 5 卫星拍摄。

    注:

    陆地资源卫星计划是美国地质勘探局 (USGS) 和美国国家航空航天局 (NASA) 这两个美国政府机构之间的联合计划。 您可以在 USGS 美国陆地资源卫星任务页面上了解有关 Landsat 计划的详细信息。

    该影像明显而清楚地区分出了蓝色的湖泊和附近绿色的植被。 虽然这些颜色看起来很自然,但它们实际上是由正常情况下人眼不可见的电磁波谱上的颜色组合而成的。

  5. 内容窗格中,单击 June 1984.tif 图层旁边的箭头。

    鄱阳湖波段组合

    Landsat 影像在电磁波谱上具有不同的颜色波段。 根据具体的 Landsat 类型,每个影像将具有多达 7 到 11 个波段,如下表中所示。

    波段Landsat 5Landsat 7Landsat 8

    1

    沿海气溶胶

    2

    绿色

    绿色

    3

    红色

    红色

    绿色

    4

    近红外 1

    近红外 1

    红色

    5

    近红外 2

    远红外

    近红外

    6

    Thermal

    Thermal

    远红外 1

    7

    中红外

    远红外 2

    远红外 2

    8

    全色

    全色

    9

    卷云

    10

    热红外 1

    11

    热红外 2

    由于无法同时呈现所有波段,您通常需要选取三个波段的组合,并通过人眼可见的红色、绿色和蓝色通道进行显示。 正如您能够在图例中看到的那样,1984 年的影像为红色通道使用了近红外 2,为绿色通道使用了近红外 1,并为蓝色通道使用了红色。

    工程中的三个影像均使用突显植被的波段组合,这使湖泊和周围地貌的边界更清晰明显。 下一步,将 1984 年的影像与之后的影像对比,以查看湖泊发生了怎样的变化。

  6. 选中 June 2001.tif 图层旁边的复选框将其打开。

    2001 年的鄱阳湖

    该影像由 Landsat 7 拍摄(而非 Landsat 5),所以颜色不同。 不做并排对比很难看出具体的变化。 您需要使用卷帘工具并排对比这两个影像。

  7. 内容窗格中,单击 June 2001.tif 图层以将其选中。
  8. 在应用程序顶部的功能区上,单击栅格图层选项卡。 在比较组中,单击卷帘

    卷帘工具

    当您在地图上移动指针时,指针会变成箭头的形状。

  9. 向箭头所指的方向拖动地图。

    在地图上滑动

    所选图层将隐藏于拖动指针的地方。 现在可以比较两个影像了。 将卷帘工具前后拖动(或上下拖动)时,可以看见大部分的变化发生在湖泊的南部和东部。 湖泊退去的区域大体上是暗橙色,因为那里没有植被。 总体来讲,2001 年的湖泊面积显然比 1984 年小了。 这两张影像均拍摄于 2003 年三峡大坝开闸之前,所以这一期间湖泊缩小可能是由于干旱或其他气象趋势导致。

  10. 内容窗格中,打开 May 2014.tif 图层。

    2014 年的鄱阳湖

    该影像由 Landsat 8 拍摄。 由于植被生长,2001 年的影像中表示湖泊退却显露的裸露地表的橙色区域现在显示成了亮绿色,这表明了长期水位变化。

  11. 内容窗格中,单击 May 2014.tif 图层以将其选中。
  12. 使用卷帘工具比较 2014 年和 2001 年的影像。

    湖泊看起来失去了更多的水域面积,大多是在湖的南部和西部。 可以明显看出湖泊在 1984 年和 2014 年之间变小了(至少在拍摄三个影像的雨季时期变小了),虽然具体变小多少并不清楚。

  13. 在功能区地图选项卡的导航组中,单击浏览按钮以退出卷帘模式。

    随后您即可再次正常浏览地图。

下一步是更为精确地量化面积丢失。


执行土地覆被分类以识别湖泊

为了量化 1984 年到 2014 年湖泊表面面积的变化,您需要对两个影像中的土地覆被进行分类、识别被水体覆盖的区域并将其与其他土地覆被(例如植被或城区)区分开来。 在多光谱影像(例如 Landsat)中,影像中的每个单独的像素(或像元)对于每个光谱波段都有一个值。 正如您在鄱阳湖的鲜艳影像中所看到的那样,所有种类的色调和色度都可能有很多颜色值。 然而,所有代表同一种土地覆被的像素往往具有相似的光谱值。 通过对影像进行分类,您将识别值相似的像素并将其分组到一起,以表示较少数量的类,例如水体、植被或城区。

您将使用一种特定的分类技术(称为非监督分类),软件将使用统计分析来确定哪些值彼此之间足够相似,以便将其分组到同一类中。 您只需要指定要获取的类的数量,该工具就会生成确切数量的类。 您将使用的工具为“Iso 聚类非监督分类”。

对 1984 年的土地覆被进行分类

首先,您需要对 1984 年的影像进行分类。

  1. 在功能区上,单击分析选项卡。 在地理处理组中,单击工具

    工具按钮

    将出现地理处理窗格。

  2. 地理处理窗格的搜索框中输入 Iso 聚类非监督分类。 单击具有相同名称的结果。

    Iso 聚类工具搜索结果

    将打开 Iso 聚类非监督分类工具。 该工具将对影像图层或您选择的栅格运行非监督分类。 它使用 Iso 聚类算法确定像元自然分组的特征,并根据您需要的类数创建一个输出图层。 您需要对 1984 年影像图层运行该工具。

    您需要将 1984.tif 影像的像素仅分为四类,原因是您主要希望查看湖泊,因此不需要大量用于区分多个土地覆被类型的类。

  3. Iso 聚类非监督分类工具参数中,选择以下值:
    • 对于输入栅格波段,选择 June 1984.tif
    • 对于类数目,键入 4
    • 对于输出分类栅格,在 poyang.gdb 位置的末尾处输入 Iso_1984
    • 保留其他参数不变。

    Iso 聚类工具的参数

  4. 单击运行

    该工具运行结束后,会将输出图层添加到地图中。 您地图上的颜色可能与示例影像中的颜色有所不同。

    已分类的 1984 年影像

    新图层类似于 1984 年 6 月的原始影像,但现在只有四种颜色,分别用于代表分类工具所生成的四个类中的一个。 所有影像图层由像素网格(称为像元)组成,但在原始影像中像素有几千种不同颜色。 Iso 聚类非监督分类工具获取了原始影像中的所有像素,并根据它们的光谱相似性将其分成了四个值类。 随后该工具随机选择了四种颜色,用于对每个类进行符号化。 似乎所有水体像元都被划分为一类(值 1),而植被、云量以及其他土地覆被类型则被归入其他三类。

  5. 内容窗格中的 Iso_1984 图层下,右键单击值 1 并将颜色更改为优格蓝

    优格蓝色

  6. 将其他值(2、3 和 4)更改为无颜色

    仅水体值是可见的。 与原始的 June 1984 影像对比,以确保分类正确。

  7. 内容窗格中,关闭 May 2014.tifJune 2001.tif 图层。

    地图上的分类和影像

  8. 单击 Iso_1984 图层以将其选中。 在功能区的栅格图层选项卡上,打开卷帘工具以比较两个 1984 年的图层。

    虽然湖泊边界大体吻合,但已分类的值还包括湖边较小的水体。 您将在下一部分中移除一部分这些小水体。 由于云覆盖,还有一部分湖泊未与其余湖泊分为一类值。

    影像中的云

    云经常在卫星影像中遮挡地面要素。 该影像中的云覆盖相对较小,所以不会对分析造成重大影响,但使用云覆盖更少的影像可以改善分析。

  9. 在功能区的地图选项卡中,重新激活浏览工具。
  10. 内容窗格中,关闭 Iso_1984June 1984.tif 图层。

对 2014 年的土地覆被进行分类

下一步,您将对 2014 年的影像进行分类,以查看湖泊随时间的变化。 已为 Iso 聚类非监督分类工具打开地理处理窗格,所以在重新运行工具前您仅需更改参数即可。

  1. 内容窗格中,打开 May 2014.tif 图层。
  2. 地理处理窗格中,更改以下参数:
    • 对于输入栅格波段,将 June 1984.tif 更改为 May 2014.tif
    • 对于输出分类栅格,在 poyang.gdb 位置的末尾处输入 Iso_2014
    • 保留其他参数不变。

    Iso 聚类工具的参数

  3. 单击运行

    分类的 2014 年影像

    像之前一样,水体像元分类在新图层的值 1 中。

  4. 内容窗格的 Iso_2014 图层中,将值 1 的颜色更改为浅苹果绿

    浅苹果绿色

  5. 将其他值(2、3 和 4)更改为无颜色
  6. 在功能区的栅格图层选项卡上,打开卷帘工具以比较两个 2014 年的图层。

    同样,水体分类似乎非常准确。

  7. 内容窗格中,关闭 May 2014.tif 图层,然后打开 Iso_1984 图层。

    两个分类过程的结果

    看到的蓝色区域表示 1984 年覆有水体而 2014 年没有水的区域,同时更清楚地显示了这两个时间点之间湖泊的缩减情况。

  8. 快速访问工具栏上单击保存按钮。

    “保存”按钮

    注:

    如果您收到一则消息,告诉您该工程是使用该软件的较早版本创建的,请单击以继续。

您对 1984 和 2014 年的影像进行了分类以显示土地覆被,从原始影像的许多水体值创建了一个水体值。 接下来,您将对湖边界进行平滑处理,并移除鄱阳湖周围已分类的许多较小水体要素。


清除分类

现在,您将使用综合分析工具清理已分类的影像,以便删除一些小的错误或湖泊周围面积较小的水体。 您还将平滑湖泊边界。

过滤各个像素

首先,您需要清理被分类为水体但不属于鄱阳湖的小型孤立像素。 其中的一些像素属于小型池塘或水体,而其他的则属于分类错误。 无论是哪一种,计算鄱阳湖面积时都不应该将它们计算在内,因此您需要运行地理处理工具尽可能多地将它们删除。

  1. 如有必要,请在 ArcGIS Pro 中打开 Poyang Land Cover 工程。
  2. 在功能区上,单击分析选项卡,然后单击工具以打开地理处理窗格。
  3. 地理处理窗格中,单击返回按钮以返回到搜索框。

    “返回”按钮

  4. 在“搜索”框中,输入众数滤波。 单击众数滤波工具。

    “众数滤波”搜索结果

    众数滤波工具是数据概化工具。 它根据相邻像元数据值的众数替换影像或栅格图层中的像元。 如果某像元被分类为类 1(水体),但其四个相邻像元中的三个被分类为类 2,则该工具将更改像元值以适应周围的值(即将其更改为类 2)。 您需要运行该工具两次,每次针对一个分类的影像。

  5. 众数滤波工具中,对于输入栅格,选择 Iso_1984
  6. poyang.gdb 位置末尾的输出栅格名称更改为 Filter_1984

    其他参数允许您选择该工具要使用的相邻像元的数量,以及相邻像元的众数是否必须为同一值或者只需半数即可。 要概化各个像素的最大数量并创建更为平滑的效果,您需要使用半数相邻像元。

  7. 对于替换阈值,选择半数

    众数滤波工具

  8. 单击运行

    已过滤的 1984 影像

    概化移除了许多单个像素,但仍会保留一些。 可能需要运行其他概化工具,但概化也会带来移除您想保留的数据的风险;换句话说,您可能会丢失代表鄱阳湖的像元。 当您稍后平滑边界时,可能需处理一些遗留问题,但是现在,您需要在其它影像图层上运行该工具。

  9. 地理处理窗格中,将输入栅格更改为 Iso_2014 并将输出栅格的名称更改为 Filter_2014
  10. 单击运行

    概化的 2014 年影像随即被添加到地图中。

    由于您已经拥有这两个分类影像的概化版本,您不再需要地图上的原始分类影像,因此可以将其移除。

  11. 内容窗格中,右键单击 Iso_2014 图层,然后选择移除

    “移除”选项

  12. 利用同样的方式将 Iso_1984 图层移除。

    如果您需要再次访问这些图层,您可以在目录窗格中的 poyang.gdb 数据库中找到它们(以及您在此工程中创建的其他所有图层)。

清除影像边界

您已经删除了每景影像中的一些单个像素。 接下来,您将清理每景影像中像素值之间的边界,以删除像素化、细粒度的边缘。

  1. 地理处理窗格中,单击后退按钮。
  2. 搜索并打开边界清理工具。

    通过扩展边界,再缩小至原来的大小,边界清理工具能够使各类之间的边界平滑。 这样做通常会删除个别像素并用它们周围的像素值替换它们。 它与众数滤波工具能够实现相似的效果,但将侧重于类边界。

  3. 边界清理参数中,选择以下值:
    • 对于输入栅格,请选择 Filter_1984
    • 输出栅格的名称更改为 Clean_1984

    边界清理工具

    排序类型参数确定扩展期间大面积还是小面积的值优先,并且该复选框还确定流程运行的次数。 您需要接受这些参数的默认选项。

  4. 单击运行

    已清理的 1984 影像

    新的 1984 图层将添加到地图中。 有一些细微差异,但是值之间的边界处理得十分平滑。 另外,移除了散布在影像中的更多的单个小像素。 剩余的只是一小部分,栅格综合工具对影像进行了大幅清理。 如果您想要看到差异,请尝试使用卷帘工具并放大至与影像很近的距离进行对比。 接下来,您要在其他影像上运行边界清理工具。

  5. Filter_2014 栅格上运行边界清理工具。 将输出栅格的名称更改为 Clean_2014

    新的 2014 年图层随即被添加到地图中。 已不再需要由众数滤波工具创建的影像,可将其移除。

  6. 内容窗格中,移除 Filter_2014Filter_1984 图层。
  7. 保存工程。

您已经清理了原始的已分类影像以移除大量微小错误或偏离像素分组。 接下来,您需要计算 1984 年和 2014 年的湖泊面积,并确定这两个日期之间所丢失的湖泊表面面积。


计算随时间变化的面积

现在,您需要计算 1984 年和 2014 年鄱阳湖的面积(以公顷为单位)。 首先,您需要决定合适的公式。

创建面积计算公式

您需要进行调查以确定如何计算湖泊面积。

  1. 内容窗格中,右键单击 Clean_1984 图层并选择属性表

    随即显示该表。

    属性表

    (对应四个类的)四个图层值分别具有一个像素计数。 值 1,对应的是“水”,大约有 300 万像素。 像素很多,但是在现实世界中一个像素到底是多大呢? 您可以通过检查影像的分辨率找到答案,因为分辨率可以测量一个单独的像素对应于多少个实际单位。

    注:

    仅当您使用不会过度造成面积畸变的投影坐标系时,方可直接根据属性表中列出的像素数派生出要素的面积(正如您接下来要做的那样)。 稍后您将看到,这里使用的坐标系是 WGS 1984 UTM Zone 50N,而这是可以接受的。 其他系统(例如 Web 墨卡托)通常用于 Web 地图,这是不可接受的。

  2. 保持属性表的打开状态。 在内容窗格中,右键单击 Clean_1984 图层并选择属性

    随即出现图层属性窗口。

  3. 图层属性窗口的左侧,单击

    “源”选项卡

    选项卡包含关于图层数据类型、图层数据在计算机上的位置、数据范围以及将数据投影到地图上的方法的信息。

  4. 单击栅格信息

    “栅格信息”部分

    像元大小 X像元大小 Y 参数指每个像元或像素的长度 (X) 和高度 (Y)。 在本案例中,地图上的每个像素与现实世界中 30 单位乘以 30 单位的面积大小相对应。 但是,您仍然不知道测量单位是什么。 是 30 英寸? 还是 30 千米? 您想要计算公顷数,因此知道测量单位十分重要。

  5. 再次单击栅格信息可将其关闭。 单击空间参考

    “空间参考”部分

    线性单位参数指的是默认情况下涉及图层使用的所有空间计算的测量单位。 在此实例中,单位是米,这意味着每个像素代表现实世界中 30 米乘以 30 米(或 900 平方米)的面积。

    空间参考下方,您还可以看到所使用的投影坐标系WGS 1984 UTM Zone 50N,如前所述。

  6. 关闭图层属性窗口。

    要知道影像中每个值的面积,您要将像素计数乘以 900,将其转换为平方米。 然后,用所得结果除以 10,000 即得出一公顷的平方米数。 总公式如下:

    Hectares = (Count × 900) / 10,000

    现在您已经创建了公式,且需要将其用于计算湖泊面积。

计算缩减的湖泊面积(以公顷为单位)

您现在需要计算 1984 年和 2014 年的湖泊面积(以公顷为单位)。 然后,您需要得出这两个日期之间缩减的公顷数。

  1. Clean_1984 属性表中,单击添加字段按钮。

    “添加字段”按钮

    打开字段视图,您可以管理属性表中的字段。 新字段将添加到列表的末尾。

  2. 对于新字段,将字段名的值更改为公顷。 将数据类型更改为浮点型

    “公顷”字段

    “浮点型”是一种允许数字带有小数的数据类型。

  3. 在功能区字段选项卡的更改组中,单击保存

    “保存”按钮

  4. 关闭字段:Clean_1984 视图以返回至属性表。

    该表目前包含 Hectares 字段,但是不含任何值。 接下来,您可以使用之前讨论的转换公式计算每个类值的公顷数。

  5. 右键单击公顷字段的标题并选择计算字段

    “计算字段”选项

    随即显示计算字段工具。

  6. 计算字段工具中,确认以下内容。
    • 对于输入表,该值为 Clean_1984
    • 对于字段名称(现有或新建),该值为 Hectares
    • 对于表达式类型,该值为 Python
  7. Hectares = 下,创建表达式 (!Count! * 900 / 10000
    提示:

    您可以通过双击字段框中的计数计数字段添加到该表达式中。

    用于计算公顷数的表达式

  8. 单击确定

    公顷字段值

    使用影像中每个值的公顷面积填充属性表中的公顷字段。 值 1,代表“水”,大约为 270,000 公顷,对应于 1984 年湖泊的面积。

  9. 关闭属性表。

    现在,您需要利用同样的方式来计算 2014 年湖泊的面积(以公顷为单位)。 由于两个影像的空间分辨率和其他特性均相同,您将使用与之前相同的公式。

  10. 内容窗格中,右键单击 Clean_2014 图层并选择属性表。 在属性表中单击添加字段按钮。
  11. 对于新字段,将字段名称更改为 Hectares,并将数据类型更改为浮点型
  12. 在功能区字段选项卡的更改组中,单击保存。 关闭字段:Clean_2014 视图以返回至属性表。
  13. 右键单击公顷字段的标题并选择计算字段。 确认输入表Clean_2014字段名称(现有或新建)Hectares,且表达式类型Python
  14. Hectares = 下,创建表达式 (!Count! * 900 / 10000。 单击确定

    2014 年地图的公顷数

    将填充属性表中的 Hectares 字段,且用于显示水体的值 1 约为 200,000 公顷。 该值即为 2014 年的湖泊面积。

  15. 关闭属性表。

    1984 年的湖泊面积大约为 270,000 公顷,而 2014 年的湖泊面积大约为 200,000 公顷。 在 1984 年至 2014 年间,鄱阳湖的面积几乎缩减了 70,000 公顷,平均每年都减少近 2,300 公顷。

    注:

    还有其他方法可用于在分类完成后计算面积。 例如,您可以先使用栅格转面工具来生成湖泊的面要素(其中包括以平方米为单位的面积)。 然后,您可以将该面积除以 10,000,从而将其转换为公顷。

  16. 保存工程。

在本教程中,您对鄱阳湖的 Landsat 影像进行了视觉比较和分类,以了解该湖泊的面积随时间的推移发生了多少变化。 您的发现表明了一个严峻的问题:该湖泊仅在 30 年内已缩减数千公顷。 您的计算并没有揭露鄱阳湖面积缩减的原因,但是的确为这一严峻的问题提供了事实根据,并为环境科学家和其他人员进行更深入的研究提供了一个切入点。

注:

如果您希望更多地了解鄱阳湖在这 30 年期间的变化速度,您可以对中间日期的影像(例如 2001 年 6 月的影像)执行相同的分析。 通过这种方式,您可以绘制出随时间推移的变化,并弄清这个变化速度是稳定的还是呈现出加速趋势。

您可以在影像和遥感简介页面上找到更多此类课程。

您可以在教程库中找到更多教程。