在遥感影像图像分割训练过程中,有些情况下,我们需要从一开始就准备自己的数据集,而如果没有合适的工具,这可能会很耗时。
1、在GEE中选择影像
首先,我们需要一个 GEE 平台的免费账户,可以在 https://signup.earthengine.google.com/ 上轻松获得。然后,我们将进入代码编辑器 (https://code.earthengine.google.com/),创建一个新的空脚本。在空白脚本中,复制并粘贴以下代码,然后点击运行。这样就可以直接放大到巴西东北部的奥罗斯水库。
var DMS_to_Decimal = function (d, m, s) {
var dec = Math.abs(d) + Math.abs(m/60) + Math.abs(s/3600);
return d/Math.abs(d)*dec;
}
var oros = ee.Geometry.Point(DMS_to_Decimal(-39, 0, 10),
DMS_to_Decimal(-6, 15, 12))
Map.addLayer(oros)
Map.centerObject(oros, 12)
下一步是为我们感兴趣的区域选择特定的图像。为此,我们将使用ee.ImageCollection(S2_SR 代表哨兵-2,地表反射率--2A 级产品)打开一个图像集合,然后过滤包含兴趣点且位于特定时间段内的图像。我们将考虑一个月的时间,并显示所有图像,以便直观地检查它们。这些图像可在图层工具中查看。
// Set period to search for images
var start_dt = ee.Date.fromYMD(2018, 12, 1)
var end_dt = ee.Date.fromYMD(2018, 12, 31)
var img_collection = ee.ImageCollection("COPERNICUS/S2_SR")
// Filter the collection
var filtered = img_collection.filterBounds(oros).filterDate(start_dt, end_dt)
var list = filtered.toList(filtered.size().getInfo())
for (var i = 0; i < list.length().getInfo(); i++) {
var img = ee.Image(list.get(i))
Map.addLayer(img, {'bands': ['B4', 'B3', 'B2'], 'min': 0, 'max': 3000})
print (i, img)
}
2、GEE图像分类
现在,我们将执行监督分类,以识别属于我们感兴趣的分割类别的像素。考虑到重点是水识别,在进行分类之前,我们将创建一些额外的指数来帮助分类器完成这项任务。这些指数是归一化水差异指数(NDWI)和修正归一化水差异指数(MNDWI)。这些指数使用 GEE 的归一化差分方法创建,并使用 addBands 添加到我们的图像中,具体如下:
// Creating the Water