基于GEE使用Landsat 8和Landsat 5影像进行分类

该博客介绍了如何使用Google Earth Engine(GEE)对2018年的Landsat 8和2000年的Landsat 5卫星影像进行分类。首先,通过筛选、云量过滤和按云量排序获取合适的数据集。然后,应用多种指数(如NDVI、NDBI等)和纹理特征(如GLCM)进行预处理。接着,使用随机森林分类器进行训练和测试,并探讨了不同决策树数量对分类准确性的影响。最后,展示了分类结果并计算了混淆矩阵、总体准确性和Kappa系数。
摘要由CSDN通过智能技术生成

2018年Landsat 8 影像分类

//数据集筛选 
var dataset1 = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2')
     .filterDate('2018-x-x', '2018-x-x')
     .filterBounds(roi)
     .filter(ee.Filter.lte('CLOUD_COVER',5))//云量设置
     .sort('CLOUD_COVER')//按云量排序
print(dataset1) 
var mos=dataset1.mosaic()
var image1 = mos.clip(roi)
print(image1,'lan')
//显示shp边界
Map.addLayer(roi,{color:'yellow',fillColor: "00000000", width: 1},'Naiman Boundary');

//显示ROI影像并且以321合成,后面命名
Map.addLayer(image1, {min: 0.0, max: 0.2, bands: ['SR_B4', 'SR_B3', 'SR_B2'],}, 'image432');

//外部导入的水体数据,去除影像集的水体
var jrc = jrcwater.select('b1')
var image = image1.updateMask(jrc.eq(1))
Map.addLayer(image, {min: 0.0, max: 0.2, bands: ['SR_B4', 'SR_B3', 'SR_B2'],}, 'image');

//index calculate
//var mndwi = image.normalizedDifference(['SR_B3', 'SR_B6']).rename('MNDWI');//计算MNDWI
var ndbi = image.normalizedDifference(['SR_B6', 'SR_B5']).rename('NDBI');//计算NDBI
var ndvi = image.normalizedDifference(['SR_B5', 'SR_B4']).rename('NDVI');//计算NDVI
var ndwi = image.normalizedDifference(['SR_B3', 'SR_B5']).rename('NDWI');//计算NDWI
var lswi = image.normalizedDifference(['SR_B5','SR_B6']).rename('LSWI')//计算冠层植被光曾冠层植被水份
var nbr2 = image.normalizedDifference(["SR_B6", "SR_B7"]).rename("NBR2")
//var baem = image.expression(
//'NDBI-NDVI-MNDWI', {
//'NDBI': ndbi,
//'NDVI': ndvi,
//'MNDWI':mndwi
//}).rename('BAEM')

var evi = image.expression(
'2.5 * ((NIR - RED) / (NIR + 6 * RED - 7.5 * BLUE + 1))', {
'NIR': image.select('SR_B5'),
'RED': image.select('SR_B4'),
'BLUE': image.select('SR_B2')
}).rename('EVI')

var rri = image.expression(
'BLUE/NIR', {
'NIR': image.select('SR_B5'),
'BLUE': image.select('SR_B2')
}).rename('RRI')

var awei = image.expression(
              '4*(green-SWIR1)-(0.25*NIR+2.75*SWIR2)',{
              green:image.select('SR_B3'),
              NIR:image.select('SR_B5'),
              SWIR1:image.select('SR_B6'),
              SWIR2:image.select('SR_B7'),
            }).float().rename('AWEI')

var dem_roi = dem.select('elevation').clip(roi).rename('DEM');
var nightlight = ee.ImageCollection("NOAA/VIIRS/DNB/MONTHLY_V1/VCMSLCFG")
                  .filterDate('2018-06-01','2018-08-01'); 
print(nightlight)
var nightlights2018 = ee.Image(nightlight.mean()).select("avg_rad").clip(roi).rename('NIGHTLIGHT');

//NDVI glcm纹理特征 
Map.addLayer(ndvi,{min:-1,max:1

  • 3
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
以下是使用Google Earth Engine (GEE) 对Landsat-8多幅影像进行批量地形校正的代码示例: ```javascript // Load Landsat 8 surface reflectance data. var collection = ee.ImageCollection('LANDSAT/LC08/C01/T1_SR') .filterDate('2019-01-01', '2019-12-31') .filterBounds(geometry) .select(['B4', 'B3', 'B2', 'B5', 'B6', 'B7']); // Function to apply terrain correction to a single image. var applyTerrainCorrection = function(image) { // Load elevation data. var elevation = ee.Image('USGS/SRTMGL1_003'); // Compute terrain correction parameters. var tc = ee.Terrain.hillShadow(elevation, image.metadata('sunAzimuth'), image.metadata('sunElevation')); // Apply terrain correction to the image. var corrected = image.addBands(tc.select(['hillshade'])); return corrected; }; // Apply terrain correction to the image collection. var correctedCollection = collection.map(applyTerrainCorrection); // Export the corrected images to Google Drive. Export.image.toDrive({ image: correctedCollection, description: 'Landsat8_terrain_corrected', folder: 'GEE_exports', scale: 30, region: geometry }); ``` 在上述代码中,我们首先加载了Landsat 8表面反射率数据,并使用`filterDate()`和`filterBounds()`函数对数据进行筛选。然后,我们定义了一个名为`applyTerrainCorrection`的函数,该函数接受一个影像作为输入,并返回已进行地形校正的影像。在函数中,我们加载了SRTM高程数据,并使用`ee.Terrain.hillShadow()`函数计算了地形校正参数。最后,我们将地形校正应用到了影像中,并使用`addBands()`函数将地形校正参数作为新波段添加到了影像中。 接下来,我们使用`map()`函数将`applyTerrainCorrection`函数应用到整个影像集合中,并将结果存储在名为`correctedCollection`的变量中。最后,我们使用`Export.image.toDrive()`函数将地形校正后的影像导出到Google Drive中。 需要注意的是,上述代码中的`geometry`变量需要根据实际情况进行设置,以指定影像的空间范围。此外,如果需要,还可以调整`scale`参数以控制导出影像的空间分辨率。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值