准备深度学习

训练模型以自动分类卫星影像要求您的计算机上有适当的深度学习库。 首先,您将需要验证您的系统是否具有正确的设置和库。然后,您将下载 Landsat 8 影像,并创建在影像中指示红树林所在位置的训练标注。 最后,您将导出这些标注以训练像素分类深度学习模型。

设置并下载教程数据

验证您的计算机是否已正确设置以进行深度学习,然后您将下载本教程所需的数据。 其中包括 Landsat 8 影像和来自联合国 Global Mangrove Watch 的红树林位置。

  1. 在使用深度学习工具之前,请确保您的计算机已准备就绪。

    注:

    ArcGIS Pro 中使用深度学习工具需要在计算机上安装正确的深度学习库。 如果您未安装这些文件,请确保已关闭 ArcGIS Pro,然后按照ArcGIS Pro 中为深度学习做好准备中提供的步骤说明操作。 在这些说明中,您还可以了解如何检查您的计算机硬件和软件能否运行深度学习工作流,以及获取其他有用的提示。 完成后,您即可继续本教程。

  2. 将本教程的 Classify_Mangroves_Tutorial_Data.zip 文件下载到计算机上的合适位置并解压缩其内容。
  3. 文件资源管理器中,打开 Classify_Mangroves_Tutorial_Data。 打开 Classify Mangroves
  4. 双击 Classify Mangroves ArcGIS Pro 工程文件。

    Classify Mangroves 工程

    ArcGIS Pro 随即打开,显示印度孟买的区域地图。

  5. 单击功能区上的视图选项卡。 在窗口组中,单击目录窗格按钮。

    “目录窗格”按钮

    随即显示目录窗格。

  6. 目录窗格中,展开文件夹。 展开 Classify Mangroves

    文件夹目录

    此为工程文件夹目录。

  7. 展开 Landsat 8 imagery 文件夹,然后展开 Landsat imagery 2016 文件夹。

    已展开的文件夹

    Landsat 影像通过一系列文件的形式提供。

    注:

    可以从美国地质勘探局的 EarthExplorer 应用程序下载其他 Landsat 8 影像。可以从 Global Mangrove Watch 下载其他红树林位置。

  8. 展开 LC08_L2SP_148047_20160128_20200907_02_T1_MTL.txt 项目。
    注:

    它是文件夹中的第二个项目,使用卫星图标表示。

    Landsat 影像文件

    可以看到不同的 Landsat 产品,并可将其添加到地图。 您将使用 Surface Reflectance,此为彩色影像。

  9. 右键单击 Surface Reflectance 并选择添加到当前地图

    “添加到当前地图”选项

  10. 如果出现计算统计数据窗口,单击

    计算统计数据后,Landsat 影像将添加到地图和内容窗格。

    “内容”窗格中的 Landsat 影像

  11. 内容窗格中,双击 Surface Reflectance_LC08_L2SP_148047_20160128_20200907_02_T1_MTL 图层。

    随即出现图层属性窗口。 您将重命名图层以缩短其名称。

  12. 常规选项卡中,对于名称,输入 Surface Reflectance 2016

    “图层属性”窗口

    接下来,您将观察 Landsat 影像的分辨率。 当您准备训练深度学习模型时,分辨率十分重要。

  13. 图层属性窗口中,单击选项卡。
  14. 展开栅格信息

    栅格像元大小

    像元大小 X 像元大小 Y 旁,您可以看到栅格分辨率为 30 x 30。 接下来,您将确定像元大小的测量单位。

  15. 展开空间参考

    “空间参考”属性

    线性单位值为。 栅格的分辨率为 30 米。 这意味着 Landsat 影像中的每个像素为地面上的 30 米乘 30 米范围。

  16. 单击确定
  17. 快速访问工具栏上,单击保存

    “保存”按钮

您已下载一个 ArcGIS Pro 工程并向其中添加了 Landsat 8 影像。 接下来,您将使用这些数据集训练一个将用于自动分类红树林的模型。


训练深度学习模型

训练深度模型要求将 GIS 数据转换为可用于分类影像的格式。 首先,您将使用 2016 年的影像手动标记红树林的位置。 这些已标记位置称为标注。 您识别的这些标注后续将用于训练模型。 创建模型后,您会将模型应用于 2021 年的影像以自动分类红树林。

注:

已为您提供来自联合国的红树林位置数据。 您可以选择使用提供的数据集或按照以下步骤创建自己的标注。 如果您想要使用提供的红树林数据集,请跳转到本教程的“导出训练数据”部分。

准备训练标注

首先,您将创建标注。 这些标注是影像上您已知包含红树林的区域。 可以通过数字化或在影像上绘制面的方式创建标注。

  1. 单击功能区上的地图选项卡。 在导航组中,单击书签,然后选择 Mangroves

    Mangroves 书签

    地图上随即显示一个包含红树林的区域。

    地图上的红树林

  2. 单击功能区上的影像选项卡。 在影像分类组中,单击分类工具并选择训练样本管理器

    “分类工具”下拉菜单

    随即显示影像分类窗格。 通过使用此模板,您可以为模型要在影像中分类的各种要素创建不同的类。 您将添加用于红树林的类。 此类将存储在自定义方案中。

  3. 影像分类窗格中,单击创建新方案

    “创建新方案”按钮

    默认方案已移除。

  4. 单击添加新类按钮。

    “添加新类”按钮

    注:

    如果您看不到添加新类按钮,请增加影像分类窗格的宽度。

    首先,您将为类命名。

  5. 对于名称,输入 mangrove

    名称参数

    接下来,您将为此类分配一个值。 在训练模型时,计算机将读取此值。 红树林将被定义为值 1。

  6. 对于,输入 1

    “值”参数

    最后,您将设置类的颜色。 在影像上对红树林区域进行数字化时,将使用此颜色。 黑色在此工程的影像上清晰可见。

  7. 对于颜色,选择黑色

    “颜色”参数

  8. 单击确定

    新的红树林要素类

    红树林类在新方案中现已可用。 您将在使用之前保存对方案所做的更改。

  9. 新建方案上方,单击保存

    将新类保存到方案。

  10. 对于名称,输入 Mangrove classification

    名称参数

  11. 对于描述,输入用于从 Landsat 8 影像中标注红树林的方案

    “描述”参数

  12. 对于输出位置,浏览至 lassify Mangroves 文件夹,然后单击确定

    “输出位置”参数

  13. 单击保存

    新方案和红树林类已保存。

  14. 保存工程。

    方案已保存,可供其他用户使用或用于其他工程。

创建训练标注

您已经创建了一个新要素类,您将使用它来数字化地图中的红树林区域。

  1. Mangrove classification 下,单击 mangrove

    选择红树林类。

    类变为活动状态。 接下来,您将选择如何数字化影像上的红树林区域。

  2. 单击多边形工具。

    面工具

    您已选择红树林类和适当的绘制工具。 现在可以开始在影像上标记红树林区域。

  3. 在地图上,单击一次以开始描绘红树林区域。 继续单击以添加折点并创建一个闭合区域。 在第一个区域绘制完成时双击。
    注:

    要在数字化的同时取消面,可按 Esc 键。

    数字化红树林区域

    完成的要素具有黑色轮廓。

    完成的红树林面

    为了使最终模型具有最佳结果,建议您尽可能多地数字化红树林区域。 您可能还想确保数字化的区域仅包含红树林。

    继续描绘影像中红树林的区域。 完成对标注的数字化后,您要将结果保存在地理数据库中。

  4. 影像分类窗格中的上方,单击保存

    保存已数字化的要素

    系统将提示您将面保存为要素类。 您要将其保存到工程的默认地理数据库。

  5. 保存当前训练样本窗口中的工程下,展开数据库。 单击 Classify Mangroves.gdb

    选择一个数据库。

  6. 对于名称,输入 mangrove 并单击保存

    已数字化区域已保存。 您现在将从地图上移除训练样本。

  7. 关闭影像分类窗格。

    随即显示训练样本管理器窗口询问您是否保存编辑内容。

  8. 单击

    您的地理数据库需要刷新才能显示新的要素类。

  9. 目录窗格中,展开数据库。 展开 Classify Mangroves.gdb
  10. 选择 Classify Mangroves.gdb,然后按 F5

    工程地理数据库中的要素类

    您的地理数据库已刷新,红树林图层现在显示为要素类。 但是,此数据需要转换为适用于模型训练的格式。

导出训练数据

训练数据现已创建,您将使用导出训练数据进行深度学习地理处理工具将数据转换为可用于深度学习的格式。 此过程的输出称为影像片。 Landsat 影像将被拆分为这些将用于训练模型的影像片或小切片。 第一个地理处理工具将确定如何生成这些影像片。

  1. 在功能区的命令搜索中,输入导出训练数据进行深度学习。 在搜索结果列表中,选择导出训练数据进行深度学习

    命令搜索中的搜索结果

    将出现地理处理窗格。 首先,您将选择要用于训练的影像。

  2. 对于输入栅格,选择 Surface Reflectance 2016

    “输入栅格”参数

    接下来,您将创建一个文件夹以存储训练数据。

  3. 对于输出文件夹,浏览至 Classify Mangroves 文件夹。 右键单击 Classify Mangroves,然后选择文件夹

    创建新文件夹。

  4. 对于文件夹名称,输入 MangroveTrainingData

    为文件夹命名。

  5. 选择文件夹,然后单击确定

    接下来,您将选择之前创建的要素类,该要素类定义了影像上的红树林区域。

  6. 对于输入要素类或分类栅格或表,浏览至 Classify Mangroves 地理数据库,然后选择 mangrove 要素类。
    注:

    如果您未使用“训练样本管理器”创建您自己的红树林要素类,则请使用 MangroveForest 要素类。

    红树林要素类

  7. 单击确定

    “输入要素类或分类栅格或表”参数

  8. 对于类值字段,选择 Classvalue
    注:

    如果您正在使用 MangroveForest 要素类,请选择 pxlval 字段。

    “类值字段”参数

    下一组参数切片大小将保留其默认值。 同时,这些值可用于使此工具创建的影像片更大或更小。 默认大小为 256x256 像素。 步幅决定在创建的影像片之间有多少重叠。 默认情况下,每个影像片重叠 128 个像素或 50%。 增加重叠度可能增加创建的影像切片数量。

    此工具的最后一个参数是元数据格式。 参数可确定您可以生成的深度学习模型的类型。 由于您正在执行红树林的像素分类,您将选择已分类切片格式。

  9. 对于元数据格式,选择已分类切片

    最后,您要将训练数据的输出像元大小设置为 30 米。 此分辨率与 Landsat 8 影像的分辨率相同。

  10. 导出训练数据进行深度学习下,单击环境选项卡。

    “环境”选项卡

  11. 栅格分析下,对于像元大小,输入 30
  12. 单击运行

    地理处理工具将使用适用于像素分类的正确格式将影像切分为影像片。 分割是十分必要的,因为完整影像可能无法一次性全部存储在大多数计算机的内存中。 此工具也可以基于您数字化的区域了解影像中的哪些区域是红树林。

    接下来,您将浏览工具的输出。

  13. 目录窗格中,展开 MangroveTrainingData 文件夹和 images 文件夹。

    影像文件夹

    影像文件为之前创建的影像片。

  14. 右键单击 000000000.tif 文件并选择添加到当前地图
  15. 如果出现计算统计数据窗口,单击
  16. 内容窗格中,右键单击 000000000.tif,然后选择缩放至图层

    “缩放至图层”按钮

    切片在地图上可见。 这是 Landsat 影像的一个小切片。

    注:

    显示的图片基于使用 MangrovesForest 要素类作为导出训练数据进行深度学习工具的输入。 如果您选择数字化自己的红树林区域,则影像片的外观会有所不同。 您可能需要添加一些影像片,才能发现一些表示红树林的白色区域。

    地图中的影像片

训练模型

目前为止,您已数字化红树林区域并将其导出为可用于训练的格式。 现在,您将训练模型。

注:

训练模型可能需要多达几个小时的时间,具体取决于您的计算机硬件。 建议您的计算机配备专用的图形处理单元 (GPU)。 如果您不想训练模型,我们已在 Classify Mangroves 文件夹中为您提供深度学习包,您可以跳至下一阶段,部署深度学习模型。

  1. 在功能区上的命令搜索中,输入训练深度学习模型。 在搜索结果列表中,选择训练深度学习模型

    将出现地理处理窗格。 首先,您将选择您的训练数据,然后设置一些深度学习模型参数。

  2. 对于输入训练数据,浏览至 Classify Mangroves 文件夹然后单击 MangroveTrainingData 文件夹。 单击确定

    “输入训练数据”参数

    接下来,您将选择保存深度学习模型的位置。

  3. 对于输出模型,浏览到 Classify Mangroves 文件夹。 创建新文件夹,并将其命名为 MangroveClassifier
  4. 选择 MangroveClassifier 文件夹,然后单击确定

    选择一个文件夹

    现在,您将确定模型将运行的迭代数,称为轮数。

  5. 对于最大轮数,请确认值为 20

    “最大轮数”参数

    基于您之前导出的训练数据的格式,您将设置一个特定于像素分类的模型类型。

  6. 展开模型参数并确认模型类型U-Net(像素分类)

    “模型类型”参数

    U-Net 是使用语义分割分类栅格中像素的深度学习模型。 此模型用于土地覆盖分类。

    接下来,您将设置每个训练时要处理的训练样本数。 增加批量大小可以更快地处理您的训练数据。

  7. 对于批量大小没输入 16

    “批量大小”参数

    接下来,您将更改一个参数以确保训练针对所有 20 个轮数运行。

  8. 展开高级并取消选中当模型停止改进时停止复选框。

    “当模型停止改进时停止”参数

    最后,如果您具有 GPU,可将此工具设置为在电脑的 GPU 上运行,从而使处理更快。 否则,跳过下一步。

  9. 如果您的计算机具有 GPU,可以单击环境选项卡。 对于处理器类型,选择 GPU

    “处理器类型”参数

  10. 单击运行
    注:

    如果模型运行失败,您可能需要调整 批量大小参数。 处理较大批量数据的能力取决于您的计算机 GPU。 如果您具有功能强大的 GPU,则可以同时处理多达 64 个训练样本。 如果您具有功能没那么强大的 GPU,可能不得不将此参数设置为 842 并重新运行工具。

    在工具运行时,您可以查看训练过程。

  11. 单击查看详细信息

    查看地理处理详细信息。

    随即出现详细信息窗口。

  12. 单击消息选项卡。

    “训练深度学习模型”详细信息

    对于运行的 20 轮中的每一个,消息都将显示模型性能。 尤其是,您将开始看到模型的准确度增加或向 1 靠近。

    注:

    由于每次运行此工具时模型的训练情况都不同,因此模型的消息可能与上图有所不同。

  13. 关闭训练深度学习模型窗口。

    关闭“训练深度学习模型”窗口。

    地理处理工具运行完成时,您将看到其输出。

  14. 文件浏览器中,浏览至工程的文件夹。 打开 MangroveClassifier 文件夹。

    已训练的模型输出

    文件夹包含多个输出,您可以将其用于分类影像:

    • MangroveClassifier.pth 是经过训练的模型,通常以 PyTorch 格式保存。
    • MangroveClassifier.emd 是模型定义文件,包含关于切片大小、类和模型类型的模型信息。
    • model_metrics.html 包含有关使用的学习率和模型最终精度的详细信息。
    • MangroveClassifier.dlpk 是存储在模型输出文件夹中的所有文件的完整文件包,包括经训练的模型、模型定义文件和模型指标文件。 包可以作为项目共享至 ArcGIS OnlineArcGIS Enterprise 以供其他用户访问。

    您可以浏览 model_metrics 以查看模型的执行方式。

  15. 打开 model_metrics 文件。

    随即出现您的默认 Web 浏览器。 此页面上是有关您的模型的信息,以及它使用您的输入训练数据对红树林进行分类的能力。

    训练和验证损失部分显示了训练模型期间出现的错误量图表。 当模型运行时,您的一些输入数据用于训练模型,而另一些数据则用于验证模型或测试模型以确定其准确性。 理想情况下,您会看到在 20 轮的过程中,这些值随着已处理影像数量的增加而减少。

    模型训练和验证损失图

    模型分析显示数据类的精度。 从技术角度而言,您的模型具有两个类:一个为红树林,一个为 NoData。 更高的精度值意味着模型对其结果更有信心。

    模型的按类指标输出

    最后,此页面显示一些与原始红树林训练数据对比的样本影像片,实际地表位于左侧,而模型的预测位于右侧。 理想情况下,预测应与原始实际地表高度匹配。

    模型实际地表和预测

  16. 在 Web 浏览器上关闭 model_metrics 页面。
  17. 关闭文件资源管理器

    在部署模型之前,您应该清除 GPU 的缓存以确保其中有足够的内存来分类 2021 Landsat 影像。 如果您的电脑上没有 GPU,则可以跳过此步骤。

  18. ArcGIS Pro 中的目录中,展开工具箱。 展开 Classify Mangroves.tbx

    展开 Classify Mangroves 工具箱。

    此工具箱中提供的脚本不具有任何输入。

  19. 打开清除缓存脚本,然后单击运行
  20. 保存工程。

通过数字化 2016 年拍摄的 Landsat 8 影像中的红树林区域,您已创建了一个训练模型。 然后,您将红树林要素类转换为适用于训练深度学习模型的格式,并将其用于创建深度学习包。 接下来,您将使用新模型自动分类 2021 年拍摄的 Landsat 8 影像中的红树林。


应用模型

创建深度学习模型后,可将其重复用于快速分类感兴趣区域中的土地覆盖。 您将采用创建的模型并将其用于分类与原始训练数据相同的地理区域中的红树林。 但是,将使用最近的 Landsat 影像。

部署深度学习模型

现在,您将采用 2021 年的 Landsat 影像,并使用深度学习模型推断或分类影像,并确定红树林的范围。

注:

如果您在之前的模块中未训练模型,可使用 Classify Mangroves 文件夹中为您提供的深度学习包。

影像分类是一个 GPU 密集型进程,可能需要一段时间才能完成,具体取决于您的计算机硬件。 已在 Classify Mangroves.gdb 中为您提供红树林位置的已分类栅格。 如果您选择不分类影像,则可以直接跳至“探索结果”部分。

  1. 内容窗格中,移除 Surface Reflectance 2016 图层。
  2. 目录窗格中,展开 Landsat 8 imagery 文件夹。 展开 Landsat imagery 2021 文件夹。
  3. 展开 LC08_L2SP_148047_20201224_20210310_02_T1_MTL.txt 文件。
    注:

    它是文件夹中的第二个项目,使用卫星图标表示。

  4. Surface Reflectance 栅格添加到地图。 如果系统询问是否您计算统计数据,请单击
  5. 内容窗格中,将 Surface Reflectance_LC08_L2SP_148047_20201224_20210310_02_T1_MTL 图层重命名为 Surface Reflectance 2021
  6. 右键单击 Surface Reflectance 2021 并选择缩放至图层

    地图上的 Landsat 影像

    您的 2021 年影像位于地图上并可用于分类。 您将使用使用深度学习分类像素地理处理工具将您的深度学习模型应用于此影像。

  7. 在功能区的命令搜索中,输入使用深度学习分类像素。 在搜索结果列表中,选择使用深度学习分类像素
  8. 对于输入栅格,选择 Surface Reflectance 2021

    “输入栅格”参数

  9. 对于输出栅格数据集,输入 MangroveExtent2021

    “输出栅格数据集”参数

  10. 对于模型定义,浏览至 MangroveClassifier 文件夹。 单击 MangroveClassifier 深度学习包。

    MangroveClassifier 深度学习包

    注:

    如果您未训练深度学习模型,请浏览至 Classify Mangroves 文件夹,然后打开 Deep learning package 文件夹。 单击 MangroveClassifier

  11. 单击确定

    “模型定义”参数

    您还可以根据需要设置其他模型参数以改进模型。 这些参数在您训练模型时进行代入。

  12. 参数下,对于 batch_size,输入 16

    batch_size 参数

    最后,您将设置工具环境。

  13. 单击环境选项卡。
  14. 栅格分析下,对于像元大小,输入 30
  15. 处理器类型下,将处理器类型设置为 GPU
  16. 单击运行
    注:

    是否可以将批量大小设置为 16 取决于您的 GPU。 如果工具运行失败,请尝试将此参数更改为 842

    工具运行完成后,结果将添加到地图。

    深度学习分类结果

    注:

    您的结果可能因模型精度而有所不同。 颜色可能也会不同。

探索结果

对一段时间内的红树林覆盖范围进行对比之前,您将探索模型的结果与图像的对比情况。

注:

如果您在之前部分中未运行使用深度学习分类像素工具,可使用为您提供的结果。 在目录窗格中,展开 Classify Mangroves.gdb。 将 MangroveExtent2021 栅格添加到地图。

  1. 转至 Mangroves 书签。

    已分类像素

  2. 内容窗格中,将 MangroveExtent2021 重命名为 Mangrove Extent 2021 并使图层保持选中状态。
  3. 在功能区上,单击栅格图层选项卡。 在比较组中,单击卷帘

    卷帘工具

    您可使用卷帘工具单击并移动地图以隐藏一个图层,从而显示其下方的图层。

  4. 在地图上,拖动以显示 Mangrove Extent 2021 图层下方的 Surface Reflectance 2021 图层。

    影像和已分类红树林的卷帘比较

    滑动地图并比较两个图层有助于可视化模型结果。

    注:

    您可以垂直或水平滑动,具体取决于您的指针在屏幕上的放置位置。

    在继续之前,您将切换回“浏览”工具,以便在地图上移动。

  5. 单击功能区上的地图选项卡。 在导航组中,单击浏览按钮。

    “浏览”按钮

  6. 保存工程。

现在您已经完成了训练和使用深度学习工作流的过程,您需将这些结果与 2016 年的红树林范围进行比较。


检测变化

为了更好地了解红树林受威胁或生长的情况及位置,您将对 2016 年和 2021 年之间的红树林范围执行栅格分析,以了解这些森林的生长或消退位置。

栅格化训练标注

要查看红树林覆盖范围发生变化的位置,您需要两个红树林图层均为栅格格式。 深度学习模型的输出图层已经是一个栅格,但 Global Mangrove Watch 提供的 2016 年红树林范围数据不是栅格。 您需将 2016 年红树林的面图层转换为栅格。

  1. 内容窗格中,打开 Mangrove Forest 图层,并关闭 Mangrove Extent 2021 图层。

    您可以看到 2016 年红树林覆盖范围的轮廓。

    Mangrove Forest 面图层

    此为您将转换为栅格的图层。

  2. 单击功能区上的影像选项卡。 在分析组中,单击栅格函数按钮。

    栅格函数按钮

    随即显示栅格函数窗格。 您可通过栅格函数创建和分析栅格数据集。

  3. 在搜索框中,输入栅格化要素。 按 Enter 键。

    栅格函数搜索

  4. 转换下,单击栅格化要素

    “栅格化要素”按钮

    随即显示栅格化要素栅格函数。 首先,您将选择一个栅格并设置输出栅格的范围和分辨率。

  5. 对于栅格,选择 Surface Reflectance 2021

    “栅格”参数

    接下来,您将选择要转换为栅格的面图层。

  6. 对于输入要素,选择Mangrove Forest

    “输入要素”参数

    您将设置一个字段,该字段使用值 1 将每个面要素分类为红树林。

  7. 对于字段,选择 pxlval

    字段参数

  8. 单击新建图层
  9. 关闭 Mangrove Forest 图层。

    2016 年红树林的新栅格图层随即添加到地图中。

    栅格化的 2016 年红树林范围

  10. Rasterize Features_Surface Reflectance 2021 重命名为 Mangrove Extent 2016

比较红树林范围

现在您拥有表示 2016 年和 2021 年红树林范围的两个栅格,您将使用预构建模板中的栅格函数比较两个红树林范围,以了解哪里的红树林增加、减少或保持不变。 运行模板之前,您将探索其运行方式。

首先,您将导入栅格函数模板。

  1. 栅格函数窗格中,清除搜索内容。

    清除搜索内容。

  2. 单击自定义选项卡。

    “自定义”选项卡

  3. 指向 Custom1,然后单击导入函数

    “导入”按钮

  4. 浏览至 Classify Mangroves 文件夹。 选择 Compute Mangrove Cover Change 栅格函数模板。 单击确定

    选择栅格函数模板。

    模板随即添加到 Custom1 下。

  5. Custom1 下,右键单击 Compute Mangrove Cover Change。 单击编辑

    “编辑”选项

    函数编辑器窗口打开并显示 Compute Mangrove Cover Change 模板。

    Compute Mangrove Cover Change 模板

    模板从左侧的绿色元素开始。 它们表示您将要比较的两个红树林栅格。 两个栅格均链接到为空栅格函数。 此函数将读取输入栅格并确定分类为红树林和分类为无数据的区域。 接下来,条件栅格函数会将无数据区域转换为值为 0。 红树林值仍为 1,即您在此教程之前部分中构建训练样本时设置的值。 此时仍存在两个栅格,一个为 2016 年栅格而另一个为 2021 年栅格,但是现在它们为二进制栅格,其中红树林区域已分配值 1 而非红树林区域值为 0。 最终函数计算变化将从 2016 年栅格中减去 2021 年红树林栅格。 由于红树林和非红树林区域已转换为 0 和 1,因此输出显示红树林覆盖范围增加的区域(值为 1)、红树林覆盖范围减少的区域(值为 -1)和无变化的区域(值为 0)。

  6. 关闭函数编辑器窗口。
  7. 栅格函数窗格中,单击 Compute Mangrove Cover Change 模板。

    该栅格函数随即出现。 您将配置此工具,使工具采用与地理处理工具相同的方式运行。

  8. 为空下,将 2016 Mangroves 设置为 Mangrove Extent 2016

    2016 Mangroves 输入

  9. 为空下,将 2021 Mangroves 设置为 Mangrove Extent 2021

    2021 Mangroves 输入

  10. 单击新建图层

    新图层即会被添加到地图中。 其中使用紫色表示红树林覆盖范围增加的区域,用绿色表示红树林消失的区域。 白色区域没有任何变化。 您将调整符号系统以使其更加清晰。

    红树林覆盖范围的变化

    注:

    根据您的深度学习模型,此处结果可能有所不同。

  11. 内容窗格中,将 Compute Mangrove Cover Change_Mangrove Extent 2016_Mangrove Extent 2021 重命名为 Mangrove Cover Change
  12. 右键单击 Mangrove Cover Change 图层,然后单击符号系统

    “符号系统”选项

    随即显示符号系统窗格。 接下来,您将配置符号系统并移除值为 0 的白色区域。

  13. 单击掩膜选项卡。

    “掩膜”选项卡

  14. 选中显示背景值复选框。

    “显示背景值”选项

    地图符号系统随即更新。

  15. 内容窗格中,关闭 Mangrove Extent 2016 图层。

    红树林覆盖范围增加和减少的区域

    最终结果可见,但很难在影像上看到。 您需要更改影像的透明度,从而使结果更清晰。

  16. 内容窗格中,选择 Surface Reflectance 2021 图层。
  17. 在功能区上,单击栅格图层选项卡。 在效果组中,对于透明度,输入 50 并按 Enter 键。

    透明度选项

    现在最终结果更容易看到。

    透明影像上的最终结果

    此分析的结果显示在 2016 和 2021 年之间红树林覆盖范围增加和减少的区域。 选择正确的符号系统会揭示这些模式,从而更容易看到这些土地覆盖随时间的变化。

    注:

    ArcGIS NotebooksArcGIS API for Pythonarcgis.learn 模块配合使用也可以导出样本、训练模型和部署深度学习模型。 要查看有关如何使用这些地理处理工具在笔记本环境中处理影像的示例,请转到目录窗格并展开 Notebooks 文件夹。 您将看到四个示例笔记本,它们使用的流程与您在本教程中应用的流程相同。

在本教程中,您使用影像创建了一个深度学习模型并对其进行应用。 首先,您创建了一个训练数据集,此数据集随后转换为像素分类格式。 您训练了一个模型以识别 Landsat 8 影像中的红树林。 然后,您将此模型应用至最近的影像。 最终,红树林中的变化显示在地图上,使树种扩大和缺失的区域清晰可见。 这些结果有助于规划红树林恢复和保护工作。 此外,您的深度学习模型可用于分类世界各地的红树林栖息地

除了对红树林进行分类外,Esri 还在 ArcGIS Living Atlas 中提供了许多预训练模型,以加快分类影像和检测对象的过程。 这些模型可以免费下载,您可以直接在兼容的影像输入上部署它们。 您还可以根据自己的训练数据对这些预训练模型进行微调;这通常比从头开始训练模型花费的时间更少。

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