GEE 输入样本范围生成随机点,并进行监督分类的实例代码。
时间: 2023-08-20 22:07:17 浏览: 211
gee-Landsat影像 随机森林分类代码
5星 · 资源好评率100%
以下是一个基于Google Earth Engine的随机点生成并进行监督分类的示例代码:
```javascript
// 定义区域和时间范围
var region = ee.Geometry.Rectangle([xmin, ymin, xmax, ymax]);
var startDate = ee.Date('2018-01-01');
var endDate = ee.Date('2018-12-31');
// 加载 Landsat 8 行政区划数据集
var adminLevel2 = ee.FeatureCollection('FAO/GAUL_SIMPLIFIED_500m/2015/level2');
// 筛选行政区划数据集,仅保留指定区域内的行政区划
adminLevel2 = adminLevel2.filterBounds(region);
// 加载 Landsat 8 数据集
var l8 = ee.ImageCollection('LANDSAT/LC08/C01/T1_TOA')
.filterBounds(region)
.filterDate(startDate, endDate)
.sort('CLOUD_COVER', false);
// 定义分类标签和颜色
var classes = {
'urban': 'ff0000', // 红色
'vegetation': '00ff00', // 绿色
'water': '0000ff' // 蓝色
};
// 选择 Landsat 8 影像中的三个波段作为输入样本
var bands = ['B4', 'B3', 'B2'];
// 生成随机点,并对每个点进行分类
var samples = adminLevel2.map(function(feature) {
var randomPoints = ee.FeatureCollection.randomPoints({
region: feature.geometry(),
pointsPerArea: 0.1 // 每平方千米生成 0.1 个点
});
// 为每个随机点添加分类标签
var labeledPoints = randomPoints.map(function(point) {
var value = l8.filterDate(startDate, endDate)
.filterBounds(point.geometry())
.first()
.select(bands)
.reduce(ee.Reducer.mean())
.toArray();
var label = ee.Image.pixelLonLat().addBands(value)
.reduceRegion(ee.Reducer.mode(), point.geometry(), 30)
.get('array')
.getInfo();
return point.set('label', label);
});
return labeledPoints;
}).flatten();
// 在地图上显示随机点
Map.centerObject(region, 12);
Map.addLayer(samples, {}, 'Random points');
// 定义分类器
var classifier = ee.Classifier.randomForest(10);
// 训练分类器
var trainedClassifier = classifier.train({
features: samples,
classProperty: 'label',
inputProperties: bands
});
// 对整个区域进行分类,并在地图上显示结果
var classifiedImage = l8.first().select(bands).classify(trainedClassifier);
Map.addLayer(classifiedImage, classes, 'Classification Result');
```
这段代码的核心步骤如下:
1. 定义区域和时间范围,加载 Landsat 8 影像和行政区划数据集。
2. 生成随机点并为每个点添加分类标签,其中分类标签是根据每个点所在位置的 Landsat 8 波段值进行分类。
3. 定义分类器,并使用随机森林算法训练分类器。
4. 对整个区域进行分类,并在地图上显示分类结果。
需要注意的是,这段代码中的分类器和波段选择等参数都可以根据具体的应用场景进行调整。
阅读全文