十一
变化检测
第 1 节准备图像
在开始变化检测工作流程之前,图像预处理至关重要。目标是确保每个像素随着时间的推移在同一位置记录相同类型的测量结果。这些步骤包括特别重要的多时相图像配准以及辐射和大气校正。大部分工作已经自动化,并已应用于 Earth Engine 中提供的图像。图像选择也很重要。选择考虑因素包括寻找具有低云量并代表相同物候的图像(例如,叶在或叶在)。
下面块中的代码访问 USGS Landsat 8 Level 2, Collection 2, Tier 1数据集并将其分配给变量landsat8为了提高使用 Landsat 8 ImageCollection时的可读性,代码选择波段2–7并将其重命名为波段名称而不是波段编号。
var landsat8=ee.ImageCollection(\''LANDSAT/LC08/C02/T1_L2\'')
.select(
[\''SR_B2\'', \''SR_B3\'', \''SR_B4\'', \''SR_B5\'', \''SR_B6\'', \''SR_B7\''],
[\''blue\'', \''green\'', \''red\'', \''nir\'', \''swir1\'', \''swir2\'']
);
接下来,你将把 Landsat 8 ImageCollection 分成两个集合,每个集合对应一个时间段,并应用一些过滤和排序来获取两个时间段中每个时间段的图像。在这个例子中,我们知道分析的几个月里几乎没有云;如果你在不同的区域工作,你可能需要应用一些云遮蔽或镶嵌技术。
首先,它创建一个新的几何变量来过滤图像集合的地理范围。接下来,它通过以下方式为事件前图像创建一个新变量:1,按感兴趣的日期范围(例如2013年6月)过滤集合。(2)按几何形状过滤集合。(3)按云量排序因此第一张图像的云量最少。(4)从集合中获取第一张图像。
现在重复上一步,但将其分配给事件后图像变量,并将过滤器日期更改为事件前图像日期范围之后的一段时间(例如,2020年6月)。
var point=ee.Geometry.Point([-123.64, 42.96]);
Map.centerObject(point, 11);
var preImage=landsat8
.filterBounds(point)
.filterDate(\''2013-06-01\'', \''2013-06-30\'')
.sort(\''CLOUD_COVER\'', true)
.first();
var postImage=landsat8
.filterBounds(point)
.filterDate(\''2020-06-01\'', \''2020-06-30\'')
.sort(\''CLOUD_COVER\'', true)
.first();
第2节 :创建假色复合材料
在运行任何类型的变化检测分析之前,首先将输入图像可视化以了解情况、目视检查可能发生变化的位置,并在进一步操作之前识别输入中的任何问题是很有用的。
假色合成物以旨在说明图像对比度的方式在红色、绿色和蓝色通道中从多光谱传感器绘制波段。下面,你将在红色通道中使用SWIR -2、在绿色通道中使用 NIR、在蓝色通道中使用红色生成假色合成图。
按照下面代码块中的格式,首先创建一个变量visParam 来保存显示参数,选择 SWIR-2、NIR 和红色波段,绘制的值介于7750 和 22200之间。接下来,添加预事件和将事件后图像添加到地图并单击运行。单击并前后拖动事件后图像图层上的不透明度滑块以查看两个图像之间的变化。
var visParam={
\''bands\'': [\''swir2\'', \''nir\'', \''red\''],
\''min\'': 7750,
\''max\'': 22200
};
Map.addLayer(preImage, visParam, \''pre\'');
Map.addLayer(postImage, visParam, \