Google earth engine如何实现我们时间列表的排列和选取
这个教程的主要目的是解决我们一个非常简单而且实用的功能,原有问题是这应该很简单,但我没有找到好的解决方案。我想创建一个包含两个日期中较早日期的变量,但我还没有找到一种方法来比较两个日期并提取较早的日期,因为 .min() 或 .first() 不适用于列表。
本文需要利用几个函数:
ee.Date.fromYMD(year, month, day, timeZone)
返回一个给定年、月、日的Date。
参数。
年 (整数)
月 (整数)
day (整数)
timeZone (String, default: null)。
时区(例如 "America/Los_Angeles");默认为UTC。
返回。日期
get(unit, timeZone)
返回这个日期的指定单位。
参数。
this:date (Date)
单位(字符串)。
年"、"月"(返回1-12)、"周"(1-53)、"日"(1-31)、"小时"(0-23)、"分钟"(0-59)或 "秒"(0-59)之一。
timeZone(字符串,默认为空)。
时区(例如:'America/Los_Angeles');默认为UTC。
返回。Long
sort(keys)
将列表按升序排序。如果提供了'keys'参数,那么它将被首先排序,'list'中的元素将以相同的顺序排列。
参数。
this:list (列表)。
要排序的列表。
keys (List, default: null):
可选的键值,用于排序。如果提供'keys',它的长度必须与'list'相同。
返回。列表
先看代码:
整体的解决思路就是将列表之合并,合并之后按照sort进行筛选,就可以得到时序的列表,而且是列表由低到高排好序的,所以我们只要列表被合并,您就可以排序然后选择第一个(或第 n 个)索引。如果您想将列表分开,然后比较并找到两个列表之间的相对位置(小于或大于),就可以了。
我们的默认列表:
我们的排序后的列表:
我们用get获取index,也就是列表的位置,get0 就代表着获取列表中的第一个参数:
这里时间是毫秒的表达过程。
同样我们也可将影像来进行获取,但是你得获取系统的id值来进行加载,或者我们可以进行云影像来筛选进行加载等等可以利用。
这个公开的github可以查看:GitHub - jdbcode/Snazzy-EE-TS-GIF: Apps for creating Landsat time series animations
(1307条消息) Google Earth Engine(GEE)——再GEE中为图像几何动画添加文本和图例信息_此星光明的博客-CSDN博客
(1307条消息) Google earth engine——在线展示动图ui.Thumbnail_此星光明的博客-CSDN博客
往期推荐:
Error: Image.clipToBoundsAndScale, argument 'input': Invalid
Google Earth Engine ——Landsat 5 TOA数据集中的QA_PIXEL和QA_RADSAT波段
Google Earth Engine(GEE)——神级辅助插件(开放地球引擎扩展 (OEEex))
- 点赞
- 收藏
- 关注作者
评论(0)