Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Google Earth Engine(GEE)——3. 创建 NDVI 时序动画(R-GEE版)

Google Earth Engine(GEE)——3. 创建 NDVI 时序动画(R-GEE版)

作者头像
此星光明
发布于 2024-02-02 00:27:39
发布于 2024-02-02 00:27:39
29400
代码可运行
举报
运行总次数:0
代码可运行

安装并加载sf,然后初始化 Earth Engine R API

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(magick)
library(rgee)
library(sf)

ee_Initialize()

定义动画帧的区域边界和用于剪辑 NDVI 数据的掩膜。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#这里的语法略有不同
mask <- system.file("shp/arequipa.shp", package = "rgee") %>%
  st_read(quiet = TRUE) %>%
  sf_as_ee()
region <- mask$geometry()$bounds()

检索 MODIS Terra Vegetation Indices 16-Day Global 1km 数据集ee.ImageCollection并选择 NDVI 波段。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#选择影像集合波段
col <- ee$ImageCollection('MODIS/006/MOD13A2')$select('NDVI')

按合成日期对图像进行分组

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#获取相应的时间属性,按照天和年的标准进行筛选,最后设定一个新的doy时序属性
col <- col$map(function(img) {
  doy <- ee$Date(img$get('system:time_start'))$getRelative('day', 'year')
  img$set('doy', doy)
})
distinctDOY <- col$filterDate('2013-01-01', '2014-01-01')

定义一个过滤器,用于标识完整集合中的哪些图像与不同 DOY 集合中的 DOY 匹配。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#这个就相当于去两个的交集,也就是用刚才你设定的时间范围,再modis影像中获取这一段时间的影像
filter <- ee$Filter$equals(leftField = 'doy', rightField = 'doy')

定义一个连接;将生成的 FeatureCollection 转换为 ImageCollection。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#存储匹配后的机构所,然后应用
join <- ee$Join$saveAll('doy_matches')
joinCol <- ee$ImageCollection(join$apply(distinctDOY, col, filter))

在匹配的 DOY 集合中应用中位数减少。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#获取匹配后的结果然后求中值
comp <- joinCol$map(function(img) {
  doyCol = ee$ImageCollection$fromImages(
    img$get('doy_matches')
  )
  doyCol$reduce(ee$Reducer$median())
})

定义 RGB 可视化参数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#可是化参数设置,这里面和JS完全一样!
visParams = list(
  min = 0.0,
  max = 9000.0,
  bands = "NDVI_median",
  palette = c(
    'FFFFFF', 'CE7E45', 'DF923D', 'F1B555', 'FCD163', '99B718', '74A901',
    '66A000', '529400', '3E8601', '207401', '056201', '004C00', '023B01',
    '012E01', '011D01', '011301'
  )
)

创建用作动画帧的 RGB 可视化图像。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#创作一个动画函数,
rgbVis <- comp$map(function(img) {
  do.call(img$visualize, visParams) %>%
    ee$Image$clip(mask)
})

定义 GIF 可视化参数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#设置动画的参数和分辨率和坐标
gifParams <- list(
  region = region,
  dimensions = 600,
  crs = 'EPSG:3857',
  framesPerSecond = 10
)

获取月份名称

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dates_modis_mabbr <- distinctDOY %>%
  ee_get_date_ic %>% # 获取影像
  '[['("time_start") %>% # 选择时间列
  lubridate::month() %>% # 获取日期时间的月份部分
  '['(month.abb, .) # 月份缩写的子集

使用 ee_utils_gif_* 函数渲染 GIF 动画并添加一些文本。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#animation动画参数设定可以设定标题字号大小动态显示的时间等等
animation <- ee_utils_gif_creator(rgbVis, gifParams, mode = "wb")
animation %>%
  ee_utils_gif_annotate(
    text = "NDVI: MODIS/006/MOD13A2",
    size = 15, color = "white",
    location = "+10+10"
  ) %>%
  ee_utils_gif_annotate(
    text = dates_modis_mabbr,
    size = 30,
    location = "+290+350",
    color = "white",
    font = "arial",
    boxcolor = "#000000"
  ) # -> animation_wtxt

# ee_utils_gif_save(animation_wtxt, path = "raster_as_ee.gif")

2月 

 6月

 12月

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-02-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
气象编程 | Google Earth Engine for R——提供250+ 实例
之前有推送过关于GEE的文章,后台反馈的情况来看,很多人是想用,但是由于某些众所周知的原因无法使用GEE,还是那句话懂的人自然懂,想使用的人肯定想办法能用得上。就像中国第一封电子邮件富有深意的那句话:“Across the Great Wall we can reach every corner in the world.(越过长城,走向世界)”,今天推荐基于R语言的GEE”工具箱“!
气象学家
2020/07/23
1.7K0
气象编程 | Google Earth Engine for R——提供250+ 实例
Google Earth Engine(GEE)——R 语言 Google 地球引擎20个基本案例分析
Earth Engine 服务器对象是具有以ee(例如eeImage、eeReducer)开头的构造函数的对象,并且此类对象上的任何方法都是服务器函数。任何不是以这种方式构造的对象都是客户端对象。客户端对象可能来自 R Earth Engine 客户端(例如 Map)或 R 语言(例如 date、data.frame、c()、list())。
此星光明
2024/02/02
5240
Google Earth Engine(GEE)——R 语言 Google 地球引擎20个基本案例分析
Google Earth Engine(GEE)——当加载图表的时候出现错误No features contain non-null values of “system:time_start“.
Error generating chart: The image collection is empty.
此星光明
2024/02/02
2340
Google Earth Engine(GEE)——当加载图表的时候出现错误No features contain non-null values of “system:time_start“.
Google Earth Engine(GEE)——可视化动态图
getVideoThumbURL(params, callback) 为这个ImageCollection获取一个动画缩略图的URL。
此星光明
2024/02/02
2500
Google Earth Engine(GEE)——可视化动态图
Google Earth Engine(GEE)——容易犯的错误5(fastDistanceTransform()、reduceNeighborhood() 和iterate())
对于某些卷积运算,fastDistanceTransform()可能比reduceNeighborhood()或更有效convolve()。例如,要对二进制输入进行腐蚀和/或膨胀:
此星光明
2024/02/02
2520
Google Earth Engine(GEE)——容易犯的错误5(fastDistanceTransform()、reduceNeighborhood() 和iterate())
Google Earth Engine(GEE)——提取指定矢量集合中的NDVI值并附时间属性
本教程的主要目的是实现影像转化为数组,然后我们需要直到其转化为的数组的轴,然后根据轴的信息进行切片,切片后完成时间属性的标准转化,这里一定要对影像结果提取完成后再对矢量集合进行操作,最后就可以提取指定的属性信息。
此星光明
2024/02/02
6880
【GEE学习笔记】Landsat 8的NDVI指数计算
根据植被的光谱特性,将卫星可见光和近红外波段进行组合,形成了各种植被指数。植被指数是对地表植被状况的简单、有效和经验的度量,目前已经定义了40多种植被指数,广泛地应用在全球与区域土地覆盖、植被分类和环境变化,第一性生产力分析,作物和牧草估产、干旱监测等方面;并已经作为全球气候模式的一部分被集成到交互式生物圈模式和生产效率模式中;且被广泛地用于诸如饥荒早期警告系统等方面的陆地应用;植被指数还可以转换成叶冠生物物理学参数。
郭好奇同学
2021/05/28
5.5K0
【GEE学习笔记】Landsat 8的NDVI指数计算
谷歌地球引擎:利用8天合成MODIS反射率计算、下载逐年每八日NDVI
  本文介绍在谷歌地球引擎GEE中,基于8天的MODIS遥感影像数据,计算并下载全球每8天NDVI数据,并将每一景数据名称按照YYYYddd格式命名的方法。
疯狂学习GIS
2025/07/21
200
谷歌地球引擎:利用8天合成MODIS反射率计算、下载逐年每八日NDVI
Google Earth Engine(GEE)——如何进行NDVI和EVI指数的图表展示?
我们如何进行NDVI和EVI指数的图表展示,我们可以通过建立一个函数NDVI和EVI,然后用map遍历每一期影像,从而实现图表的展示,这我们使用sentinel2影像进行分析。
此星光明
2024/02/02
4470
Google Earth Engine(GEE)——如何进行NDVI和EVI指数的图表展示?
Google earth engine(GEE)——在GEE地图上加载图表
本次是加载一个折线图在地图上,主要是展现波段的平均值,重点是如何放在地图上,先看重点:
此星光明
2024/02/01
3150
Google earth engine(GEE)——在GEE地图上加载图表
GEE 案例:利用2001-2024年的MODIS数据长时序ndvi指数归一化后的结果分析
利用2001-2024年的MODIS数据长时序ndvi指数归一化后的结果分析,并加载时序图。
此星光明
2024/09/18
5170
GEE 案例:利用2001-2024年的MODIS数据长时序ndvi指数归一化后的结果分析
Google Earth Engine(GEE)——1.计算夜间灯的趋势(R-GEE版)
计算每个像素的一系列值的线性拟合,将 y 截距可视化为绿色,将正/负斜率可视化为红色/蓝色。
此星光明
2024/02/02
2250
Google Earth Engine(GEE)——1.计算夜间灯的趋势(R-GEE版)
Google Earth Engine(GEE)——2.提取降水值案例(R-GEE版)
绘制 2001 年的每幅图像以从Terraclimate 数据集中提取月降水量 (Pr)
此星光明
2024/02/02
4070
Google Earth Engine(GEE)——2.提取降水值案例(R-GEE版)
Google Earth Engine(趋势分析)
之前有小伙伴想让做一期利用GEE做植被指数变化的文章,可惜一直没什么时间去做。今天小编终于把这个给做好了。
气象学家
2020/06/29
3.3K0
Google Earth Engine(趋势分析)
Google Earth Engine(GEE)——MODIS/061/MOD09GQ数据缺失波段信息(官方引入数据超时)
​ 我注意到每日 MODIS 版本 061 (MODIS/061/MOD09GQ) 存在已弃用的数据集没有的问题 (MODIS/061/MOD09GQ)。
此星光明
2024/02/02
2470
Google Earth Engine(GEE)——MODIS/061/MOD09GQ数据缺失波段信息(官方引入数据超时)
GEE合成无云的Landsat-8和哨兵-2数据
Landsat-8(30m分辨率)和哨兵-2(10m分辨率)都是我们常用的遥感影像数据。
GIS与遥感开发平台
2022/04/29
6.6K0
GEE合成无云的Landsat-8和哨兵-2数据
GEE 案例:利用sentinel-2数据计算的NDVI指数对比植被退化情况
NDVI(Normalized Difference Vegetation Index,归一化植被指数)是通过计算红外波段和可见光波段的反射值之间的差异来评估植被的状况。利用NDVI指数可以监测植被的退化情况。
此星光明
2024/09/19
1.3K0
GEE 案例:利用sentinel-2数据计算的NDVI指数对比植被退化情况
Google Earth Engine(GEE)——R 语言图像概览
栅格数据在 Earth Engine中表示为Image对象。图像由一个或多个波段组成,每个波段都有自己的名称、数据类型、比例、遮罩和投影。每个图像都将元数据存储为一组属性。
此星光明
2024/02/02
3380
Google Earth Engine(GEE)——R 语言图像概览
Google Earth Engine(GEE)——ndvi.gt is not a function
我试图通过屏蔽值的上下 10 个百分位数来消除计算出的 NDVI 数据集中的异常值,但我在第 398 行中不断收到错误消息,显示第 398 行: ndvi.gt不是函数。 我怎样才能解决这个问题?
此星光明
2024/02/02
2030
Google Earth Engine(GEE)——ndvi.gt is not a function
Google Earth Engine(GEE)——哨兵数据中隐藏的秘密(卫星影像拍到的如来神掌)
本来尝试着用用分辨率较为粗的modis影像查看,但是因为影像分辨率太粗了,所以只能放弃,不错具体加载的图,也在下面:
此星光明
2024/02/02
2170
Google Earth Engine(GEE)——哨兵数据中隐藏的秘密(卫星影像拍到的如来神掌)
推荐阅读
气象编程 | Google Earth Engine for R——提供250+ 实例
1.7K0
Google Earth Engine(GEE)——R 语言 Google 地球引擎20个基本案例分析
5240
Google Earth Engine(GEE)——当加载图表的时候出现错误No features contain non-null values of “system:time_start“.
2340
Google Earth Engine(GEE)——可视化动态图
2500
Google Earth Engine(GEE)——容易犯的错误5(fastDistanceTransform()、reduceNeighborhood() 和iterate())
2520
Google Earth Engine(GEE)——提取指定矢量集合中的NDVI值并附时间属性
6880
【GEE学习笔记】Landsat 8的NDVI指数计算
5.5K0
谷歌地球引擎:利用8天合成MODIS反射率计算、下载逐年每八日NDVI
200
Google Earth Engine(GEE)——如何进行NDVI和EVI指数的图表展示?
4470
Google earth engine(GEE)——在GEE地图上加载图表
3150
GEE 案例:利用2001-2024年的MODIS数据长时序ndvi指数归一化后的结果分析
5170
Google Earth Engine(GEE)——1.计算夜间灯的趋势(R-GEE版)
2250
Google Earth Engine(GEE)——2.提取降水值案例(R-GEE版)
4070
Google Earth Engine(趋势分析)
3.3K0
Google Earth Engine(GEE)——MODIS/061/MOD09GQ数据缺失波段信息(官方引入数据超时)
2470
GEE合成无云的Landsat-8和哨兵-2数据
6.6K0
GEE 案例:利用sentinel-2数据计算的NDVI指数对比植被退化情况
1.3K0
Google Earth Engine(GEE)——R 语言图像概览
3380
Google Earth Engine(GEE)——ndvi.gt is not a function
2030
Google Earth Engine(GEE)——哨兵数据中隐藏的秘密(卫星影像拍到的如来神掌)
2170
相关推荐
气象编程 | Google Earth Engine for R——提供250+ 实例
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档