GEE:关系、条件和布尔运算
创始人
2024-03-15 02:36:21

ee.Image对象具有一组用于构建决策表达式的关系、条件和布尔运算方法。这些方法可以用来掩膜、绘制分类地图和重新赋值。
本文记录了在GEE(Google Earth Engine)平台上的关系运算符和布尔运算符,分别应用到了三个不用的场景(筛选低 NDVI 和低 NDWI 区域、根据阈值分类夜光遥感数据、使用一景影像无云像素替换另一景影像云像素),并展示了结果。


文章目录

      • 一、关系运算符和布尔运算符
          • 示例1(筛选低 NDVI 和低 NDWI 区域)使用函数 lt 和 add
          • 示例2(根据阈值分类夜光遥感数据)使用函数 gt 和 add
      • 二、条件运算符
          • 示例3(根据阈值分类夜光遥感数据)使用函数 expression
          • 示例4(使用一景影像无云像素替换另一景影像云像素)使用函数 where


一、关系运算符和布尔运算符

关系运算函数包括:eq(),gt(),gte(),lt(),lte()

布尔运算函数包括:and(),or(),not()

示例1(筛选低 NDVI 和低 NDWI 区域)使用函数 lt 和 add
// 加载影像
var image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_125035_20220620');// 计算NDVI和NDWI指数
var ndvi = image.normalizedDifference(['B5', 'B4']);
var ndwi = image.normalizedDifference(['B3', 'B5']);// 使用关系运算创建一个二值图
var bare = ndvi.lt(0.2).and(ndwi.lt(0));// 掩码并显示二值图
Map.setCenter(111.5244, 36.0745, 12);
Map.setOptions('satellite');
Map.addLayer(bare.selfMask(), {}, 'bare');

示例1 结果展示:
来自山西临汾市 Landsat 8 的低 NDVI 和低 NDWI(白色)。

关系运算符和布尔运算符返回的二进制图像可以与数学运算符一起使用。此示例使用关系运算符和在夜间灯光图像中创建城市化区域add():

示例2(根据阈值分类夜光遥感数据)使用函数 gt 和 add
// 加入试验区边界
var roi = table// 加载2013年夜光遥感数据
var nl2013 = ee.Image('NOAA/DMSP-OLS/NIGHTTIME_LIGHTS/F182013').clip(roi);
var lights = nl2013.select('stable_lights');// 在稳定夜光波段定义任意阈值
var zones = lights.gt(30).add(lights.gt(55)).add(lights.gt(62));// 将北京天津的阈值图像显示为三个不同颜色
var palette = ['000000', '0000FF', '00FF00', 'FF0000'];
Map.setCenter(116.5166, 39.8548, 7);
Map.addLayer(zones, {min: 0, max: 3, palette: palette}, 'development zones');

示例2 结果展示:


二、条件运算符

示例3(根据阈值分类夜光遥感数据)使用函数 expression

示例3使用条件运算表达式来达到和示例2一样的效果。

// 加入试验区边界
var roi = table// 加载2013年夜光遥感数据
var nl2013 = ee.Image('NOAA/DMSP-OLS/NIGHTTIME_LIGHTS/F182013').clip(roi);
var lights = nl2012.select('stable_lights');// 创建表达式
var zonesExp = nl2013.expression("(b('stable_lights') > 62) ? 3" +": (b('stable_lights') > 55) ? 2" +": (b('stable_lights') > 30) ? 1" +": 0"
).clip(roi);
Map.addLayer(zonesExp,{min: 0, max: 3, palette: palette},'development zones (ternary)');

注意:在示例3的表达式中,使用的波段是使用b()函数引用的,而不是变量名字典。使用数学运算符或表达式将产生相同的结果。
下图展示了2012 年山西临汾的夜间灯光图像。

示例3 结果展示:

对图像实施条件操作的另一种方法是使用 where()运算符。
在示例4中,多云像素被无云图像中的像素替换,使用where():

示例4(使用一景影像无云像素替换另一景影像云像素)使用函数 where
// 加载一景多云哨兵影像
var image = ee.Image('COPERNICUS/S2_SR/20210114T185729_20210114T185730_T10SEG');
Map.addLayer(image,{bands: ['B4', 'B3', 'B2'], min: 0, max: 2000},'original image');// 加载另一景用于替代的无云影像
var replacement = ee.Image('COPERNICUS/S2_SR/20210109T185751_20210109T185931_T10SEG');// 将有云像素(大于5%的概率)用替代影像替换
var replaced = image.where(image.select('MSK_CLDPRB').gt(5), replacement);// 展示结果
Map.setCenter(-122.3769, 37.7349, 10);
Map.addLayer(replaced,{bands: ['B4', 'B3', 'B2'], min: 0, max: 2000},'clouds replaced');

示例4 结果展示:

原始影像:有云

替代影像(无云):


参考文档:https://developers.google.com/earth-engine/guides/image_relational#code-editor-javascript_2

相关内容

热门资讯

应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...