本文记录了农作物长势监测的原理和在GEE上实现的代码,记录了最简单的长势监测算法(更复杂的算法可以根据例子中的方法灵活转换)

详细代码:完整代码
https://code.earthengine.google.com/240f8c95f0f8e904cf362b48fca318f5?noload=true
长势监测原理如下图所示

1,距平模型

2,极值模型


第一部分:计算2015-2020年(每年8月份合成)的NDVI均值

首先建立一个空的列表用来存储影像

var col=ee.List([]);

筛选2015-2020年五年的影像集(每年选择8月份的影像合成)

for(var i=2015;i<2020;i++){var img=s2.filterDate(i+'-08-01',i+'-08-31').filterBounds(Ca);var ndvi_list=img.map(function(image){var image_mask=image.updateMask(mypaddies.mask());var ndvi = image_mask.normalizedDifference(['B8', 'B4']).rename('NDVI');return image_mask.addBands(ndvi)})var img_mean=ndvi_list.select("NDVI").mean();//将计算的均值影像作为一个波段添加到col影像集里面col=col.add(img_mean);}
//mypaddies指的是计算出来的NDVI图层,本文不做记录,读者可以先计算NDVI再试试。

现在将col列表转换为影像集,并且打印出来,发现col里储存的是2015-2020年的NDVI影像

col=ee.ImageCollection(col);
print(col);
var image_mean=col.mean();
print(image_mean)

然后求每个像素的5年的影像集的均值

var img_mean=ndvi_list.select("NDVI").mean();

第二部分:计算2020年(8月份合成)的NDVI均值

var s2_2020=s2.filterDate('2020-08-01','2020-08-31').filterBounds(Ca);var ndvi_2020=img.map(function(image){var image_mask=image.updateMask(mypaddies.mask());var ndvi = image_mask.normalizedDifference(['B8', 'B4']).rename('NDVI');return image_mask.addBands(ndvi)})

将2020年8月份几幅影像求NDVI的均值,并且打印出来

var img_mean_2020=ndvi_2020.select("NDVI").mean();
print(img_mean_2020)

第三部分:用2020年的均值与2015-2020年的均值做数学运算

两个影像做数学运算 (可以做的运算在最后面)

var compare=img_mean_2020.divide(image_mean)

将处理后的影像可视化显示出来

//定义可视化参数
var ndvi_vis={palette:['red','green']}
Map.addLayer(compare,ndvi_vis)

附加:一种简单的计算多年均值的方法

直接使用mean()函数,但是每一年并不是每天的数据都需要,所以有时候要筛选生长季节或者其他季节来做分析。

var l8toa = ee.ImageCollection("LANDSAT/LC8_L1T_TOA").filterDate('2013-01-01', '2020-12-31').filterBounds(table);
var meanL=l8toa.mean().clip(table);
print(meanL);
Map.addLayer(table);
Map.addLayer(meanL);

备注:1,针对影像集的每个像素的计算方法

求和、最大值、最小值、均值

2,两幅影响之间可以进行的运算

add() A影像加B影像(括号里面可以填数字)
/subtract() A影像减B影像
/multiply() A影像乘以B影像
/divide() A影像除以B影像

/max()
/min()
/mod()
/pow()
/hypot()
/first()
/and()
/first_nonzero()

GEE:使用Sentinel-2数据做基于NDVI的长势监测(求5年影像集的NDVI均值,和当前年份的NDVI,两个影像做数学运算)相关推荐

  1. GEE系列:第9单元 在GEE中生成采样数据【随机采样】

     GEE从入门到实战的10个系列单元: GEE系列:第1单元 Google地球引擎简介 GEE系列:第2单元 探索数据集 GEE系列:​第3单元 栅格遥感影像波段特征及渲染可视化 GEE系列:第4单元 ...

  2. ts获取服务器数据_基于Nginx的媒体服务器技术-线上公开课

    国内应用比较多的开源流媒体服务器nginx-rtmp-module一直存在功能少.集群化难度大等问题.在LiveVideoStack线上分享中,PingOS 开源项目组开发工程师.UCloud RTC ...

  3. 两个mapreduce 做topn_Apache Hive 是怎样做基于代价的优化的?

    上一篇文章 Apache Calcite 为什么能这么流行 末尾提到要单独开一篇文章,聊下 Hive 怎么利用 Calcite 做基于代价查询优化,现在兑现承诺. 基于代价的优化器 通常,我们把 SQ ...

  4. 爬虫mysql数据清洗_爬虫分析之数据存储——基于MySQL,Scrapy

    配置MySql 关于MySQL在Ubuntu的Pycharm上的配置,可以参考这篇文章中的第三部分 如果上面的步骤处理完毕后找不到你新建的数据库, 可以参照下图配置 勾选要显示的Schemas(数据库 ...

  5. Java读取和解析Excel数据:基于Apache POI(二)

    Java读取和解析Excel数据:基于Apache POI(二) 假设附录1文章中的test.xls是对员工的考勤记录表.需要根据这张excel表统计员工的加班时间,那么需要重点关注第五列的下班时候的 ...

  6. python爬取9000条京东内衣销售数据,最最最最基础的语言和语法;并利用这些数据,基于Aprior算法分析“是否罩杯大的人倾向于买贵一些的bra”

    47[TOC](爬取9000条京东内衣销售数据,最最最最基础的语言和语法,并利用这些数据,基于Aprior算法分析"是否罩杯大的人倾向于买贵一些的bra") 本人刚接触python ...

  7. R删除数据列基于dplyr包

    R删除数据列基于dplyr包 目录 R删除数据列基于dplyr包 按列名称移除数据列 删除列表中的列 移除范围内的列

  8. R行数据过滤基于dplyr包filter函数

    R行数据过滤基于dplyr包filter函数 目录 R行数据过滤基于dplyr包filter函数 筛选等于某个值的行 使用与操作筛选行

  9. 【NLP】如何利用BERT来做基于阅读理解的信息抽取

    信息抽取 (Information Extraction: IE)是把文本里包含的信息进行结构化处理,变成计算机能够处理的结构,实体抽取.关系抽取.事件抽取等都属于信息抽取的范畴.在NLP领域,信息抽 ...

最新文章

  1. 腾讯以及各大厂的 C++ 开发环境是什么样的?
  2. iOS基础 - 文本属性Attributes
  3. 浅析libcurl多线程安全问题
  4. c语言如何存储已编译内容,二级C语言教程章节测试13.编译预处理和动态存储分配...
  5. 免费电子书:Azure Web Apps开发者入门
  6. flex blazeds java spring_Flex+Java+Spring+BlazeDS 配置篇说明
  7. Android NDK之JNI陷阱
  8. JDBC系列 之 存储过程
  9. c# zxing条形码设置密度_C# 中 ZXing.Net 怎样突破 条形码 多识别 数量限制
  10. Hive实践(hive0.12)
  11. mysql自学完整_MySQL自学篇_MySQL
  12. 51单片机串行通信原理
  13. ART-Pi 实现音乐播放器 --播放《天空之城》
  14. 阳春三月,再送32本书,快来快来!
  15. angularJs监控页面加载完毕
  16. linux usb网卡驱动 ko,qf9700 USB网卡在x86 linux和arm linux上的驱动安装以及配置
  17. 初学者应该买什么样的吉他 |新手建议|新手必看
  18. 宽带认证计费系统的认证技术主要有哪些
  19. 近世代数--特征--环的特征,域的特征
  20. 你了解多少?空气净化器八大净化技术解读

热门文章

  1. 先参与创业,再主导创业:给想创业的毕业生的一封信
  2. ffmpeg、ffplay、ffprobe 常用命令详解(音视频必备)
  3. GDKOI2018爆零游记
  4. zf3 php,php – ZF3中的ServiceManager
  5. 位置式PID和增量式PID的区分
  6. 《留住那份你想留住的》#毕业季 | 致敬我们一生仅此一次的青春旅行!!#
  7. android spc 能卸载吗,S7700( V200R003C00SPC500)无法删除radius模板
  8. Oracle中国合作伙伴名单(一)
  9. Hi3518EV300-venc例程分析
  10. 19吉大计算机学院软件学院人工智能学院考研初试复试真题