GEE训练——如何检查GEE中数据集的最新日期
创作时间:
作者:
@小白创作中心
GEE训练——如何检查GEE中数据集的最新日期
引用
CSDN
1.
https://blog.csdn.net/qq_31988139/article/details/137541248
本教程主要的目的是实现影像加载并且获取影像的最新日期,并按照指定的格式将影像时间打印到控制台中。其实这里最基本的操作步骤就是影像数据预处理,将我们影像的时间进行筛选,然后将百万毫秒单位转化为指定的时间格式,这样方便我们查询数据集的日期。
在Google Earth Engine (GEE) 中检查数据集的最新日期,可以通过以下步骤实现:
- 登录GEE账户:首先,您需要登录到您的Google Earth Engine账户。如果您尚未创建账户,您可以在GEE的官方网站上注册一个账户。
- 访问GEE代码编辑器:在登录成功后,您可以访问GEE的代码编辑器。在这个编辑器中,您可以编写和运行地理空间分析的代码。
- 寻找数据集:根据您的需求,选择您想要检查最新日期的数据集。您可以通过GEE的数据目录、GEE的开放数据仓库或者其他数据提供者的数据目录来查找适合您需求的数据集。
- 导入数据集:使用GEE的代码编辑器,您可以导入您选择的数据集。在导入数据集之前,请确保您已经了解数据集提供者的数据格式和许可要求。
- 使用GEE函数获取最新日期:GEE提供了一些函数和方法来获取数据集的最新日期。其中一种方法是使用
ee.ImageCollection
,该方法可以根据时间范围和过滤条件获取图像集合。另一种方法是使用ee.Image
,它可以获取单个影像的日期。 - 在代码编辑器中编写代码:使用GEE的代码编辑器,您可以编写代码来获取数据集的最新日期。最后,我们使用
print
函数将结果打印到控制台。 - 运行代码和结果:在GEE的代码编辑器中,您可以运行代码并查看结果。请确保您已经正确导入了数据集,并且代码没有任何错误。最新日期将输出在控制台中。
通过上述步骤,在GEE中检查数据集的最新日期。请注意,具体的代码和步骤可能因数据集和需求的不同而有所变化。在实际使用中,您可能需要根据数据集的特定属性和格式进行进一步的调整和定制。
函数
ee.Date(date, tz)
Constructs a new Date object.
Arguments:
- date (ComputedObject|Date|Number|String): The date to convert, one of: a number (number of milliseconds since the epoch), an ISO Date string, a JavaScript Date or a ComputedObject.
- tz (String, optional): An optional timezone only to be used with a string date.
Returns: Date
getNumber(key)
Extracts a named number value from a dictionary.
Arguments:
- this:dictionary (Dictionary)
- key (String)
Returns: Number
format(format, timeZone)
Convert a date to string.
Arguments:
- this:date (Date)
- format (String, default: null): A pattern, as described at DateTimeFormat (Joda time 2.2 API); if omitted will use ISO standard date formatting.
- timeZone (String, default: null): The time zone (e.g. 'America/Los_Angeles'); defaults to UTC.
Returns: String
floor()
On an element-wise basis, computes the largest integer less than or equal to the input.
Arguments:
- this:input (Array): The input array.
Returns: Array
代码
//加载指定研究区
var geometry=ee.Geometry.Rectangle(-97.4, 40.96, -88.08, 34.87);
// 使用此脚本可帮助比较 Earth Engine 存档与提供商的
// 针对给定产品、区域和日期范围的存档。
// 导入图像集(本例中为哨兵-2 Level-1C TOA 反射率)。
// 本例中为 Sentinel-2 Level-1C TOA 反射率)。请确保导入的集合具有正确的层级和处理级别。
//var imgCol = ee.ImageCollection('COPERNICUS/S2_SR_HARMONIZED');
var imgCol = ee.ImageCollection('NOAA/VIIRS/001/VNP21A1D');
//var imgCol = ee.ImageCollection('projects/satromo-int/assets/COL_S2_SR_HARMONIZED_SWISS');
// 2.通过有限的感兴趣区域过滤图像集。绘制区域
// 或定义一个 ee.Geometry 对象。这里,一个点已从绘图工具中导入。
imgCol = imgCol.filterBounds(geometry);
// 或者,通过足迹或平铺来定义感兴趣的区域。例如
// 下面一行根据 "MGRS_TILE "属性过滤集合。
// imgCol = imgCol.filter(ee.Filter.eq('MGRS_TILE', '10SEG'));
// 3.根据感兴趣的狭窄日期窗口过滤图像集。请注意
// 第二个日期是排他性的(返回的集合将包含给定日期之前的图像,但不包括给定日期)。
imgCol = imgCol.filterDate('2024-02-01', '2024-04-08');
// 4.添加摄入日期属性。
imgCol = imgCol.map(function(img) {
var ingestTime = ee.Date(img.getNumber('system:version').divide(1000));
var ingestDate = ingestTime.format('YYYY-MM-dd HH:mm:ss');
var productTime = img.date();
var productDate = productTime.format('YYYY-MM-dd HH:mm:ss');
// 以毫秒为单位计算差值
var timeDifference = ingestTime.millis().subtract(productTime.millis());
// 将毫秒转换为小时
var hours = ee.Number(timeDifference.divide(1000 * 60 * 60)).floor();
// 格式化差值
var differenceFormatted = ee.String(hours.format('%02d'));
return img.set({
'Product_Date': productDate,
'Ingest_Date': ingestDate,
'Difference': differenceFormatted,
'ID': img.id()
});
});
// 将图像产品日期、摄取日期和地球引擎 ID 的列表打印到控制台。
var props = ee.List(['Product_Date', 'Ingest_Date', 'Difference', 'ID']);
var lists = ee.List(imgCol.reduceColumns({
reducer: ee.Reducer.toList().repeat(props.size()),
selectors: props
}).get('list'));
print('Product Date, Ingest Date, Difference (HH), ID');
print(ee.List(lists.get(0)).zip(ee.List(lists.get(1))).zip(ee.List(lists.get(2))).zip(ee.List(lists.get(3))));
// 6.在地图上加载显示集合。
Map.centerObject(imgCol.first(), 6);
Map.addLayer(imgCol, {bands: ['Emis_14', 'Emis_15', 'Emis_16']});
// 7. 打印集合中第一个图像的产品日期、摄取日期和差值。
var firstImage = imgCol.first();
print(firstImage);
var firstProductDate = ee.String(firstImage.get('Product_Date'));
var firstIngestDate = ee.String(firstImage.get('Ingest_Date'));
var firstDifference = ee.String(firstImage.get('Difference'));
print('Ingest Date (First Image):', firstIngestDate);
print('Product Date (First Image):', firstProductDate);
print('Difference (in hours) (First Image):', firstDifference);
热门推荐
手鞠寿司创意摆盘大赛,你敢挑战吗?
脑清片的副作用有哪些?一文详解常见不良反应
相对论:物理学的革命与哲学的重塑
1919:一场改变科学史的日全食观测
爱因斯坦相对论,原来这么简单?
GPS定位竟然离不开相对论!
表面活性剂揭秘:玻璃清洁黑科技
年末大扫除,牙膏+酒精让你家玻璃焕然一新!
史维克斯教你专业汽车玻璃清洁技巧
2025年开年三部曲:《误杀3》《小小的我》《“骗骗”喜欢你》谁主沉浮?
花海摄影技巧大揭秘:15个绝美姿势
2025开年大剧:京剧与《天下大足》的文化盛宴
北海道富田农场:薰衣草花海打卡圣地
宝宝咳嗽中医调理,这些药膳很管用!
细支气管炎来袭,这些居家护理方法请收好!
冬季儿童咳嗽怎么办?专家教你几招
冬春交替,宝宝咳嗽这样补营养最有效!
舌尖上的南阳:六种特色小吃带你领略千年古城的美食文化
南京大学:百年鼓楼与现代仙林的对话
南京大学新生地铁通勤指南
南京博物院到南大:最快路线全攻略
生动表达,让你的故事更吸睛
如何写出深入人心的角色心理?
藏头诗的起源研究报告
强力定眩片:一种同时具有降压、降脂、定眩作用的中成药
Nature子刊:间充质干细胞治疗瘫痪,临床试验结果积极
同是间充质干细胞,临床效果为什么不一样?关注干细胞的异质性
广西花山汽车营地获“国字号”认证,崇左露营新宠上线!
周末打卡南京博物院:一院六馆全攻略
周末打卡南京博物院,最新开放时间出炉!