GEE——用sentinel-2计算某地区EVI

//直接导入研究区范围即可,本文以yanjiuqu为例
var roi = ee.FeatureCollection(yanjiuqu);
var dataset = ee.ImageCollection('MODIS/006/MCD43A4');

//evi计算函数           
function modis_evi(image){
    var evi = img.expression('2.5 * (nir - red) / (nir + 6 * red - 7.5 * blue + 1)',
    {
        red: img.select('Nadir_Reflectance_Band1'),    
        nir: img.select('Nadir_Reflectance_Band2'),    
        blue: img.select('Nadir_Reflectance_Band3')    
    }).float();
    return image.addBands(evi.rename('MODIS_EVI'));
}

//选择日期、裁剪
var img = ee.Image(dataset.filterBounds(roi)
                         .filterDate("2020-1-01","2020-2-28").mean()).clip(roi);

//计算evi
var evi = modis_evi(img);

// 设置evi的显示颜色
var trueColorVis = {
  min: 0.0,
  max: 4000.0,
  gamma: 1.4,
};
// 设置中心点、加载ndvi和roi图层
Map.centerObject(roi,7);
Map.setCenter(110.9461, 29.4101);
Map.addLayer(roi,{},'cilixian_bound',1,1)
Map.addLayer(evi,trueColorVis,"EVI")

//导出
Export.image.toDrive({
  image: evi.toByte(),
  description: 'cilixian_EVI_0',
  folder:'cilixian_EVI',
  scale: 500,
  region:roi,
  maxPixels:1e13,
});

print("over")

GeoEye Enhanced (GEE) 提供了一个强大的平台来处理卫星遥感数据,包括Sentinel-2影像。为了从这些影像中提取水体,通常利用植被指数如Modified Normalized Difference Vegetation Index (MNDVI) 和 Enhanced Vegetation Index (EVI)。MNDVI侧重于陆地植被的识别,而EVI则考虑到大气的影响,对于水体检测可能不如MNDVI直接。 要实现MNDVI大于EVI的情况作为水体提取条件,你可以按照以下步骤操作: 1. **获取数据**:首先,从GEE库中下载 Sentinel-2 的 MNDVI 和 EVI 数据。使用GEE的`ImageCollection` API 获取特定时间范围内的图像,并计算MNDVI和EVI。 ```python import ee ee.Authenticate() ee.Initialize() collection = ee.ImageCollection('COPERNICUS/S2') image = collection.filterDate('YYYY-MM-DD', 'YYYY-MM-DD').mean() # 替换日期范围 mndvi = image.normalizedDifference(['B8', 'B4']).rename('MNDVI') evi = image.expression('2.5 * ((NIR - RED) / (NIR + 6 * RED - 7.5 * BLUE + 1))', { 'RED': image.select('B4'), 'NIR': image.select('B8'), 'BLUE': image.select('B2') }).rename('EVI') ``` 2. **设置阈值**:接着,你需要设定MNDVI大于EVI的阈值以及EVI大于0.1的条件。这一步可以根据经验或机器学习方法调整。 ```python water_mask = mndvi.gt(evi).And(evi.gte(0.1)) ``` 3. **可视化结果**:最后,将结果图层添加到地图上查看水体提取区域。 ```python vis_params = {'min': 0, 'max': 1, 'palette': ['blue', 'white']} map = gee.Map(center=[your_center_latitude, your_center_longitude], zoom=12) map.addLayer(mndvi.updateMask(water_mask), vis_params, 'Water Mask') ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Xren-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值