目录
1 方法原理
1.1 步骤一
1.2 步骤二
1.3 步骤三
1.4 步骤四
2 完整代码
3 运行结果
近年来,随着乡村振兴战略的提出,我国的农业种植模式呈现出多元化的趋势。白莲具有易种植、经济效益高的特点,由此被广泛种植,本文介绍如何使用GEE进行白莲种植范围的提取。
1 方法原理
荷花盛开的7-8月份,荷田、森林、早稻的光谱特征相似且近似平行,但荷田的反射率高于其他两者。反射峰出现在绿色和近红外波段,反射谷出现在蓝色和红色波段。
![](https://i-blog.csdnimg.cn/direct/62ff3ab2ea6d463db19d5c6a0e124d5e.png)
基于以上特性,设计四个步骤来提取白莲:
1.1 步骤一
步骤一:非繁殖信息的分离
利用特征的光谱反射特性,建立了非植被信息分离的数学模型F1:
1.2 步骤二
步骤二:莲田与其他地型差异的增强
计算F2,以提高荷花田和其他植被类型如森林或早稻之间的差异:
1.3 步骤三
步骤三:利用NDVI值进一步分离
不同类型的地貌和植被覆盖率不同的地貌往往表现出不同的NDVI值,因此经常使用NDVI提取植被:
1.4 步骤四
步骤四:将F1和F2分别二值化后得到F1’、F2’,与NDVI相乘,得到F3,F3值越大,则表示白莲的概率越大。
2 完整代码
var roi = ee.FeatureCollection("projects/ee-zhangkanghnust/assets/HuNan");
function maskS2clouds(image) {
var cloudProb = image.select('MSK_CLDPRB');
var cloud = cloudProb.lte(5);
var scl = image.select('SCL');
var shadow = scl.eq(3); // 3 = cloud shadow
var cirrus = scl.eq(10); // 10 = cirrus
// Cloud probability less than 5% or cloud shadow classification
var mask = cloud.and(cirrus.neq(1)).and(shadow.neq(1));
return image.updateMask(mask)
.select("B.*")
.copyProperties(image);
}
var s2c = ee.ImageCollection('COPERNICUS/S2_SR_HARMONIZED')
.filterDate("2024-7-1", "2024-8-31")
.filterBounds(roi)
.map(maskS2clouds)
.select("B2", "B3", "B4", "B8", "B11")
// .filter(ee.Filter.lte("CLOUDY_PIXEL_PERCENTAGE", 5))
.median()
.clip(roi);
Map.addLayer(s2c, { min: 0, max: 2000, bands: ["B4", "B3", "B2"] }, "S2C");
var calculateF1 = function(image) {
var red = image.select('B4');
var green = image.select('B3');
var nir = image.select('B8');
return image.expression(
'(red - green) / abs(red - green) * (red - nir) / abs(red - nir)',
{ 'red': red, 'green': green, 'nir': nir }
).rename('F1');
};
var F1 = calculateF1(s2c);
var F1new = F1.where(F1.eq(-1), 0);
print(F1new);
Map.addLayer(F1new, { min: 0, max: 1, palette: ["black", "white"] }, "F1");
var CalculateF2 = function(image) {
var red = image.select('B4');
var green = image.select('B3');
var nir = image.select('B8');
return image.expression(
'-(green * (nir - red) / (1 - red) / 100000)',
{ 'red': red, 'green': green, 'nir': nir }
).rename('F2');
};
var F2 = CalculateF2(s2c);
print(F2);
var F2new = F2.where(F2.gte(0.07).and(F2.lte(0.1233)), 1)
.where(F2.lt(0.07).or(F2.gt(0.1233)), 0);
Map.addLayer(F2new, { min: 0, max: 1, palette: ["white", "black"] }, "F2");
var CalculateF3 = function(image) {
var LSWI = s2c.normalizedDifference(['B8', 'B11']).rename('LSWI');
var NDVI = s2c.normalizedDifference(['B8', 'B4']).rename('NDVI');
return image.expression(
'F1new * F2new * NDVI',
{ 'F1new': F1new, 'F2new': F2new, 'NDVI': NDVI }
).rename('F3');
};
var F3 = CalculateF3(s2c);
var F3new = F3.where(F3.gte(0.764).and(F3.lte(0.852)), 1)
.where(F3.lt(0.764).or(F3.gt(0.852)), 0);
Map.addLayer(F3new, { min: 0, max: 1, palette: ["white", "green"] }, "lotus");
Map.centerObject(roi);
Export.image.toDrive({
image: F3new,
description: "lotusfuzhou",
scale: 10,
region: roi,
crs: "EPSG:32650",
maxPixels: 1e13
});
3 运行结果
![](https://i-blog.csdnimg.cn/direct/d735f8f9fc48479e9e0247b327510fbc.png)
![](https://i-blog.csdnimg.cn/direct/72692bbbd8d94c9c8c83caefc519c610.png)
![](https://i-blog.csdnimg.cn/direct/6164cc5c1cfd46f0a9b75e61119c9f13.png)
![](https://i-blog.csdnimg.cn/direct/ee7aecbfc51c46dfb0232f64bbf36c1c.png)
![](https://i-blog.csdnimg.cn/direct/f74981de3de945e6923a51e58975afd0.png)