基于gee的landsat8纹理特征提取

// compute glcm texture feature
var gray = img.expression(
      '(0.3 * NIR) + (0.59 * R) + (0.11 * G)', {
      'NIR': img.select('B5'),
      'R': img.select('B4'),
      'G': img.select('B3'),
}).rename('gray');
 
var glcm = gray.unitScale(0,0.30).multiply(100).toInt().glcmTexture({size: 1,kernel:null});

print('glcm',glcm)

// Normalized
var band_glcm = glcm.select(['gray_asm','gray_contrast','gray_corr','gray_var','gray_idm',
                             'gray_savg','gray_svar','gray_sent','gray_ent']);
// calculate the min and max value of an image
var minMax = band_glcm.reduceRegion({
  reducer: ee.Reducer.minMax(),
  geometry: chongming,
  scale: 30,
  maxPixels: 1e16,
});
 
var glcm = ee.ImageCollection.fromImages(
  band_glcm.bandNames().map(function(name){
    name = ee.String(name);
    var band = band_glcm.select(name);
    return band.unitScale(ee.Number(minMax.get(name.cat('_min'))), ee.Number(minMax.get(name.cat('_max'))))
})).toBands().rename(band_glcm.bandNames());
 
Map.addLayer(glcm.select('gray_asm'),{max:1})

//add texture feature into image
var data = img.addBands(glcm)
print('data',data)

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要基于Google Earth Engine (GEE) 计算Landsat 8 的地表温度(LST)数据,可以按照以下步骤进行操作。 首先,登录GEE的网站,在代码编辑器中选择一个新的脚本。接下来,在脚本中输入以下代码来导入Landsat 8数据。 ```javascript var imageCollection = ee.ImageCollection('LANDSAT/LC08/C01/T1_8DAY_LST'); var filteredCollection = imageCollection.filterDate('2019-01-01', '2019-12-31'); var selectedImage = filteredCollection.median(); // 添加选定的图像到地图中 Map.addLayer(selectedImage, {min: 13000, max: 16000, palette: ['white', 'yellow', 'red']}, 'LST'); ``` 在这段代码中,首先通过ee.ImageCollection方法导入了Landsat 8的地表温度数据集,并用filterDate方法筛选了指定时间范围内的数据。然后,通过median方法选择了这段时间内的中值图像,并用Map.addLayer方法将其添加到地图中。 接下来,可以通过ee.Algorithms.Landsat.simpleCloudScore() 方法来去除云,并使用ee.Algorithms.Landsat.simpleLST() 方法计算地表温度。 ```javascript var cloudMasked = ee.Algorithms.Landsat.simpleCloudScore(selectedImage).select('BQA').lt(25); var lst = ee.Algorithms.Landsat.simpleLST({image: selectedImage, emissivity: 0.95, cloudMask: cloudMasked}); Map.addLayer(lst, {min: 14000, max: 16000, palette: ['white', 'yellow', 'red']}, 'LST with Cloud Mask'); ``` 在这段代码中,通过simpleCloudScore方法对选定的图像进行云掩蔽,并选择云掩蔽后的图像进行地表温度计算。最后,用Map.addLayer方法将计算得到的地表温度图像添加到地图中。 通过以上步骤,就可以在GEE上利用Landsat 8数据计算地表温度,并将结果呈现在地图上。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值